The 'problem' is with the de driver...Basically SIMH flags something wrong
with all incoming packets, and the driver thinks they are all corrupt...
in the procedure derecv
if ((rp->r_flags &
(RFLG_ERRS|RFLG_FRAM|RFLG_OFLO|RFLG_CRC))||
(rp->r_flags&(RFLG_STP|RFLG_ENP)) !=
(RFLG_STP|RFLG_ENP) ||
(rp->r_lenerr & (RERR_BUFL|RERR_UBTO|RERR_NCHN)) ||
len < ETHERMIN || len > ETHERMTU) {
something here is being passed wrong.. I've just changed the statement to
if(1==2) to keep the logic flow...
Anyways the same issue cropped up with 4.2 BSD & the VAX 11/780
On my pdp-11 the ini I'm using is:
set cpu 11/94 4M
set cpu cis
set cpu idle
set xu ena
att xu slirp
;attach tm0 211bsd.tap
attach tm0 ircii-4.4.source.tap
set rp0 rp06
attach rp0 auto.dsk
set rq dis
set rk dis
set rl dis
set hk dis
set rx dis
set tq dis
set dz lines=8
att dz 1000
boot rp0
I'm also using a version of SIMH that I've replaced the libpcap with SLiRP
from Qemu.. It's basically a user mode ip stack to do NAT. The advantage is
that they always have the same ip address, and it doesn't
require escalated privileges to run.
On Wed, Aug 11, 2010 at 5:45 AM, Johnny Billquist <bqt(a)softjar.se> wrote:
Jason Stevens <neozeed(a)gmail.com> wrote:
I managed to get 2.11 installed on SIMH, and hacked the de driver to work
(pretty much the same thing I did for 4.2 BSD on
the 11/780) and now I've
gotten it networking.
Huh? What did you hack with the qe driver? Was that in 2.11BSD? I didn't
know there was any problems with it in the first place.
Or is there some problem in simh that you fixed?
I'll admit I'm not all that swift on the pdp-11, but I get the impression
that the maximum exe size is 128kb with 64kb of instructions, and 64kb of
data? Isn't there something that can be done with overlays or some other
linker thing to act like an 8086/80286 with the large memory model (ie
multiple segments...?)
Yes and no. In principle, the maximum size of a program is 64K instruction
and 64K data. That's as much as is directly addressable. With overloays you
can extend that somewhat, but there are limitations and restrictions.
I've been trying to build ircII-4.4 and I can't figure out how to link
something that big... I've tried the -Z and
-O flags to ld to no avail.
Clearly I'm doing either something wrong, or impossible or stupid.
FWIW, here is the size of the same program on the VAX
myname# ls -l irc-4.4
-rwxr-xr-x 1 root 413696 Jun 8 08:46 irc-4.4*
myname# size irc-4.4
text data bss dec hex
293888 67584 20784 382256 5d530
I have a feeling that 300kb of text, along with 67kb of data is just too
much...?
Any pointers would be appreciated!
You'll need to trim some fat off.
Points to remember:
64K data is the max. There is no way to use overlays to get more data
space. Overlays can only extend the instruction space.
Overlays and the main program share the same address space. That is, the
size of the main code and the largest overlay segment together must not
exceed 64K. So, overlays is just a way to move parts of the program in and
out of your basic 64K address space.
When you link a program, you'll be able to see the sizes of all segments as
well as the main program.
As an example, this is how tcsh looks like:
Test:/# size /bin/tcsh
text data bss dec hex
48960 14844 11986 75790 1280e total text: 140864
overlays: 15424,16000,14144,14016,16256,16064
Notice how text+max(sizeof overlays) is less than 64K.
All that said, you can easily find IRC clients who are much smaller than
that... :-)
Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: bqt(a)softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol