[Simh] Ultrix 1.0
Jason Stevens
jsteve at superglobalmegacorp.com
Thu Jun 26 22:35:15 EDT 2014
I wonder if it's related to the BSD driver for the network card.... Years
ago I was playing with 4.2 and 4.3BSD and I never could get the network card
to work, so I started to play with the driver, and I found this:
In the if_de.c driver there is some error checking, that always seems to
come back with errors.
------8<------8<------8<------8<------8<------8<------8<------8<------8<----
--8<
/*
* Ethernet interface receiver interface.
* If input error just drop packet.
* Otherwise purge input buffered data path and examine
* packet to determine type. If can't determine length
* from type, then have to drop packet. Othewise decapsulate
* packet based on type and pass to type specific higher-level
* input routine.
*/
derecv(unit)
int unit;
{
register struct de_softc *ds = &de_softc[unit];
register struct de_ring *rp;
int len;
rp = &ds->ds_rrent[ds->ds_rindex];
while ((rp->r_flags & RFLG_OWN) == 0) {
ds->ds_if.if_ipackets++;
if (ds->ds_deuba.iff_flags & UBA_NEEDBDP)
UBAPURGE(ds->ds_deuba.iff_uba,
ds->ds_ifr[ds->ds_rindex].ifrw_bdp);
len = (rp->r_lenerr&RERR_MLEN) - sizeof (struct
ether_header)
- 4; /* don't forget checksum! */
/* check for errors */
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) {
ds->ds_if.if_ierrors++;
if (dedebug)
printf("de%d: ierror, flags=%b lenerr=%b
(len=%d)\n",
unit, rp->r_flags, RFLG_BITS, rp->r_lenerr,
RERR_BITS, len);
} else
------8<------8<------8<------8<------8<------8<------8<------8<------8<----
--8<
if_dereg.h:#define RFLG_ERRS 0x40 /* Error summary */
if_dereg.h:#define RFLG_FRAM 0x20 /* Framing error */
if_dereg.h:#define RFLG_OFLO 0x10 /* Message overflow
*/
if_dereg.h:#define RFLG_CRC 0x08 /* CRC error */
if_dereg.h:#define RFLG_STP 0x02 /* Start of packet
*/
if_dereg.h:#define RFLG_ENP 0x01 /* End of packet */
if_dereg.h:#define RERR_BUFL 0x8000 /* Buffer length
error *
if_dereg.h:#define RERR_UBTO 0x4000 /* UNIBUS tiemout */
if_dereg.h:#define RERR_NCHN 0x2000 /* No data chaining
*/
Now I don't know if Ultrix still has the driver source code... but this was
a quick enough fix for me. And I recall if_de.c being the same from 4.2BSD
into 4.3BSD as it was the same fix I used to get them all working on SIMH.
The patch was something like this...
------8<------8<------8<------8<------8<------8<------8<------8<------8<----
--8<
500c500
< if ((rp->r_flags & (RFLG_ERRS|RFLG_FRAM|RFLG_OFLO|RFLG_CRC))
||
---
> /*** if ((rp->r_flags & (RFLG_ERRS|RFLG_FRAM|RFLG_OFLO|RFLG_CRC))
||
503a504,505
> ***/
> if(1==5){
------8<------8<------8<------8<------8<------8<------8<------8<------8<----
--8<
_____
From: Henry Bent [mailto:hbent at oberlin.edu]
Sent: Friday, June 27, 2014 9:09 AM
To: simh at trailing-edge.com
Subject: [Simh] Ultrix 1.0
I had success booting the Unix Archive's floppy distribution of Ultrix 1.0
on the MicroVAX 1 simulator. It appears that the distribution there was
only meant for a dual-RX50 MicroVAX 1 with an RD drive, and will not boot on
any other machine. RQ0 needs to be an RD51 or RD52, and RQ1 and RQ2 need to
be RX50s. TTI and TTO need to be 7 bit. To boot the installer, put
32m-1.0-bin/01 on RQ1 and 32m-1.0-bin/02 on RQ2. The install goes cleanly,
albeit with quite a bit of disk swapping - the installation disk set is 13
floppies.
The QVSS is supported and will display some output on boot. I haven't yet
looked into what is needed to use it as the console (if that's possible?).
The kernel seems to support what I assume is the DEQNA - it has references
to a qe device - but I can't figure out how to get it recognized.
Unfortunately there are no kernel config files in the distribution, so I
have no idea if the stock kernel is expecting the controller at a
non-standard address. Any help with this would be greatly appreciated,
-Henry
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.trailing-edge.com/pipermail/simh/attachments/20140627/951fbf52/attachment-0002.html>
More information about the Simh
mailing list