Digital DEC MicroVAX 3100
Digital DEC MicroVAX 3100
I bought this as a fully working machine.
Series BA42A board and KA41A CPU. So this is a Microvax 3100-10. 16MB RAM. The machine contains two harddrives. One contains a VMS operating system, the other one a NetBSD installation. So it can run both VMS and UNIX.
Contains a DHW-42-AA (also called: DSH32-B?) extension board. It offers 8 additional serial lines (for terminals) and 2 synchronous lines RS-423.
Contains also a 12MB RAM module MS42-BA (54-18287-BA). With the 4MB on board, it has in total 16MB.
From Internet sources I saw that there is also an Ultrix 4.x available, DECs flavour of UNIX.
Connectors: Multiterminal extension"4-11" (8 serial lines) on the top left, “B1” connector for “synchronous (RS-423) communication” . At the bottom from the left: AUI Network, Network switch, BNC network connector. With network switch, one of the two connectors can be enabled. Halt-Button, Terminal lines 1,2,3 with western connectors 6 pin.
Connectors, from left: External SCSI at the top. At bottom: Terminal lines 1,2,3 and an additional serial 25 pin DB connector, used for modem hardware. Switch to set console to Terminal 1 or modem. Then there are eight tiny LEDs to give some feedback during booting up. Power connector, mains switch.
Mainboard. RAM mezzanine board at bottom. The built-in 4MB RAM at bottom right. Clock battery is partly to be seen at bottom right. This is already a replacement for the leaky old NiCD ones.
Main CPU KA41. Date code week 17 1991. A mystery chip with no label (with golden hat) and a 27C1024 EEPROM are also visible. I suppose that EEPROM contains boot code.
The DSH32-B board. This board contains the logic for synchronous/asynchronous external connectors. Furthermore, it also offers two SCSI connectors for both SCSI busses.
This board with part number 54-18858-01 is also described as DSH32-A Distribution Board
Another mezzanine board. This is the main logic board DSH32-BA, part number 54-18905-01, which drives the DSH32-B board. There is also an unused blue connector, wonder what this is for. Maybe a non-SCSI Floppy drive connector (2x17)? Have to research on this.
From ebay sources with different boards I can see that this is also labelled as “54-18905-01 50-18904-01 C1 L1 Combo controller”. This label is printed on a PCB photo I saw. First I thought that this board also contains SCSI controller logic, but from documents I read this seems not to be the case. Also, I found no hint that the blue connector could be a floppy drive connector. Actually I found no hint at all regarding this connector.
Hardware needed to use the machine
For the network connection, I bought a AUI to RJ45 adapter, the venerable ComCentre 210TS, that I had already used in other computer history projects.
To connect a terminal, we need to attach it to terminal #1 connector, which is a DEC MMJ connector type. A Standard 6 pin Western connector can be used but its key needs to be removed with a knife then. Or a real MMJ connector can be bought.
The wiring scheme to a standard DB9 female connector can be found on the internet. From that every real RS232<->USB adapter can be used to communicate with the machine. With “real” I mean that the RS232 signal levels need to be provided (some adapters provide 0..5 volts TTL level only and will not work).
First boot
On my machine, two harddisks with two operating systems were installed when I got it:
- VMS 5.1 on a Maxtor drive
- NetBSD 1.5.3 (dated from 2002) on an IBM drive
The Microvax has a console mode, after switching it to on, it will enter the console mode. From there, it boots from default boot device, or allows to select another boot device. So it is a little bit like the BIOs known from PCs.
KA41-A V1.6
F_..E...D...C...B...A...9...8...7...6...5...4...3...2_..1?..
? C 0080 0000.4001
? 6 80A1 0000.4001
?? 1 00C0 0000.7004
>>> show dev
VMS/VMB ULTRIX ADDR DEVTYP NUMBYTES RM/FX WP DEVNAM REV
------- ------ -------- ------ -------- ----- -- ------ ---
ESA0 SE0 08-00-2B-26-46-99
DKA0 RZ0 A/0/0/00 DISK 625 MB FX IBM 061S11
DKA100 RZ1 A/1/0/00 DISK 345 MB FX 7345-SC1761
...HostID.... A/6 INITR
...HostID.... B/6 INITR
>>> show ether
ID 08-00-2B-26-46-99
>>> show kbd
3
>>> show mop
0
>>> show mem
01000000
00000000
00FE3E00:00FFFFFF
>>> show estat
>>> show scsia
6
>>> show scsib
6
>>> show pse
0
>>> show ver
KA41-A V1.1C6-17A-V6.2-262
PST: 17A
CON: 1C6
VMB: V6.2
ROM: 262
What commands are available from console mode?
>>> help
DEPOSIT [{ /B | /W | /L }] [{ /P | /V | /I }] [/G] [/U] [/N:<n>]
[{ <addr> | <sym> | + | - | * | @ } [<datum>]]
EXAMINE [{ /B | /W | /L }] [{ /P | /V | /I }] [/G] [/U] [/N:<n>]
[{ <addr> | <sym> | + | - | * | @ }]
SET BOOT <ddau>
SET BFLG <bflg>
SET HALT <1-3>
SET KBD <0-15>
SET MOP <0-1>
SET TRIG <0-1>
SET PSWD
SET PSE <0-1>
SHOW { BOOT | BFLG | DEV | ETHER | HALT | KBD | MOP |
TRIG | MEM | ESTAT | SCSIA | SCSIB | PSE | VER}
INITIALIZE
UNJAM
BOOT [/[R5:]<bflg>] <ddau>:
CONTINUE
START <addr>
REPEAT <cmd>
TEST <n> [<m>]
FIND [{ /MEMORY | /RPB }]
LOGIN
XFER <addr> <cnt> ...
DTE
HALT
HELP
Executing t 50
(’t’ is short for ’test’, and 50 means configuration display):
>>> t 50
KA41-A V1.6
ID 08-00-2B-26-46-99
CLK 0000.0001
NVR 0000.0001
? DZ 0000.4001
00004001 00000001 00000001 00000001 00000000 00000000
MEM 0010.0001
01000000
MM 0000.0001
FP 0000.0001
IT 0000.0001
SCSI-A 0202.0001 V1.58
FFFFFF05 00000001 FFFFFF05 FFFFFF05 FFFFFF05 FFFFFF05 FFFFFF03 FFFFFF05
?? SCSI-B 0000.4142 V1.58
FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFF03 FFFFFFFF
SYS 0000.0001
DSH32-A 00FF.0001 V1.0
DSH32-S 0000.0001 V2.0
NI 0100.0001
I wanted to try out the NetBSD installation, so I will boot from dka0:
>>> boot dka0
-DKA0
>> NetBSD/vax boot [Jan 6 2002 22:13:30] <<
>> Press any key to abort autoboot 0
1174268+57032+195096+[85608+100959]=0x189ca7
[ preserving 186567 bytes of netbsd a.out symbol table ]
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001
The NetBSD Foundation, Inc. All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
NetBSD 1.5.3 (GENERIC) #5: Mon Jul 1 23:34:54 CEST 2002
he@turing.urc.uninett.no:/usr/src/sys/arch/vax/compile/GENERIC
MicroVAX 3100
cpu: KA41/42
cpu: Enabling primary cache, no secondary cache present
total memory = 16264 KB
avail memory = 12340 KB
using 228 buffers containing 912 KB of memory
mainbus0 (root)
vsbus0 at mainbus0
vsbus0: interrupt mask 0
le0 at vsbus0 csr 0x200e0000 vec 120 ipl 14 maskbit 5 buf 0x3e3000-0x3f2fff
le0: address 08:00:2b:26:46:99
le0: 32 receive buffers, 8 transmit buffers
dz0 at vsbus0 csr 0x200a0000 vec 304 ipl 14 maskbit 6
dz0: 4 lines
si0 at vsbus0 csr 0x200c0080 vec 770 ipl 14 maskbit 1
si0: NCR5380, SCSI ID 6
scsibus0 at si0: 8 targets, 8 luns per target
si1 at vsbus0 csr 0x200c0180 vec 774 ipl 14 maskbit 0
si1: NCR5380, SCSI ID 6
scsibus1 at si1: 8 targets, 8 luns per target
scsibus0: waiting 2 seconds for devices to settle...
sd0 at scsibus0 target 0 lun 0: <SGI, IBM 0662 S08, 1S11> SCSI2 0/direct fixed
sd0: 596 MB, 4116 cyl, 3 head, 98 sec, 512 bytes/sect x 1221088 sectors
sd1 at scsibus0 target 1 lun 0: <MAXTOR, 7345-SCSI, 1761> SCSI2 0/direct fixed
sd1: 329 MB, 2220 cyl, 4 head, 76 sec, 512 bytes/sect x 675484 sectors
scsibus1: waiting 2 seconds for devices to settle...
boot device: sd0
root on sd0a dumps on sd0b
Clock has gained 16 days - CHECK AND RESET THE DATE.
root file system type: ffs
swapctl: adding /dev/sd0b as swap device at priority 0
Automatic boot in progress: starting file system checks.
/dev/rsd0a: file system is clean; not checking
Setting tty flags.
Setting sysctl variables:
Starting network.
Hostname: vax.unknown.anywhere
NIS domainname: local
add net 127.0.0.0: gateway 127.0.0.1
add net fe80::: gateway ::1
add net fec0::: gateway ::1
add net ::ffff:0.0.0.0: gateway ::1
add net ::224.0.0.0: gateway ::1
add net ::127.0.0.0: gateway ::1
add net ::0.0.0.0: gateway ::1
add net ::255.0.0.0: gateway ::1
add net 2002:e000::: gateway ::1
add net 2002:7f00::: gateway ::1
add net 2002:0000::: gateway ::1
add net 2002:ff00::: gateway ::1
add net ::0.0.0.0: gateway ::1
IPv6 mode: host
Configuring network interfaces: le0.
add net default: gateway 192.168.0.1
Adding interface aliases:
le0: device timeout
Building databases...
Starting syslogd.
Oct 7 15:18:33 vax /netbsd: le0: device timeout
Checking for core dump...
savecore: no core dump
Mounting all filesystems...
Clearing /tmp.
Checking quotas: done.
Setting securelevel: kern.securelevel: 0 -> 1
Creating runtime link editor directory cache.
Updating motd.
starting local daemons:.
Starting inetd.
Starting cron.
Sat Oct 7 15:19:39 PDT 2023
NetBSD/vax (vax.unknown.anywhere) (console)
login: root
Last login: Thu Sep 21 11:59:11 2023 on console
Oct 7 15:19:52 vax login: ROOT LOGIN (root) ON console
Oct 7 15:19:52 vax login: ROOT LOGIN (root) ON console
Copyright (c) 1996, 1997, 1998, 1999, 2000
The NetBSD Foundation, Inc. All rights reserved.
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.
NetBSD 1.5.3 (GENERIC) #5: Mon Jul 1 23:34:54 CEST 2002
Welcome to NetBSD!
Terminal type is vt100.
We recommend creating a non-root account and using su(1) for root access.
vax#
I do not know NetBSD, but hey lets hack the network config so that the machine will be present in my LAN.
First, I changed /etc/rc.conf file
vax# cat rc.conf
# $NetBSD: rc.conf,v 1.85.2.9 2001/04/24 22:42:44 he Exp $
#
# see rc.conf(5) for more information.
#
# Use program=YES to enable program, NO to disable it. program_flags are
# passed to the program on the command line.
#
# Load the defaults in from /etc/defaults/rc.conf (if it's readable).
# These can be overridden below.
#
if [ -r /etc/defaults/rc.conf ]; then
. /etc/defaults/rc.conf
fi
# If this is not set to YES, the system will drop into single-user mode.
#
rc_configured=YES
# Add local overrides below
#
hostname="vax.fritz.box"
domainname="fritz.box"
defaultroute="192.168.178.1"
Next, the host entry in /etc/hosts
vax# cat hosts
# $NetBSD: hosts,v 1.5.4.1 2000/08/15 14:37:19 itojun Exp $
#
# Host Database
# This file should contain the addresses and aliases
# for local hosts that share this file.
# It is used only for "ifconfig" and other operations
# before the nameserver is started.
#
#
::1 localhost
127.0.0.1 localhost
#
# RFC 1918 specifies that these networks are "internal".
# 10.0.0.0 10.255.255.255
# 172.16.0.0 172.31.255.255
# 192.168.0.0 192.168.255.255
192.168.178.40 vax.fritz.box vax
After a reboot, the network came up correctly and the machine is present in my LAN.
There is vi. There is no sshd running, neither telnetd. Let’s see what else we have.
vax# curl
curl: Command not found.
vax# bash
bash: Command not found.
vax# wget
wget: Command not found.
vax# gcc
gcc: No input files
vax# gcc -v
Using builtin specs.
gcc version egcs-2.91.66 19990314 (egcs-1.1.2 release)
Output of top command:
CPU states: 1.5% user, 0.0% nice, 0.5% system, 1.5% interrupt, 96.6% idle
Memory: 1732K Act, 1776K Inact, 76K Wired, 7776K Free, 22M Swp free
PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
200 root 28 0 144K 520K CPU 0:01 2.87% 2.34% top
184 root 18 0 380K 280K pause 0:04 0.00% 0.00% csh
95 root 2 0 80K 336K select 0:01 0.00% 0.00% syslogd
179 root 18 0 48K 312K pause 0:00 0.00% 0.00% inetd
182 root 10 0 116K 348K nanoslee 0:00 0.00% 0.00% cron
1 root 10 0 288K 168K wait 0:00 0.00% 0.00% init
Adding another SCSI disk
I added a third SCSI drive via external SCSI connector. This is also recognized as DKB0/RZ8. This one has whopping 2.1GB.
>>> show dev
VMS/VMB ULTRIX ADDR DEVTYP NUMBYTES RM/FX WP DEVNAM REV
------- ------ -------- ------ -------- ----- -- ------ ---
ESA0 SE0 08-00-2B-26-46-99
DKA0 RZ0 A/0/0/00 DISK 625 MB FX IBM 061S11
DKA100 RZ1 A/1/0/00 DISK 345 MB FX 7345-SC1761
...HostID.... A/6 INITR
DKB0 RZ8 B/0/0/00 DISK 2.11 GB FX DSE21000306 <--- the "new" drive added
...HostID.... B/6 INITR
Adding a Digital DEC TZ88 tape drive
>>> show dev
VMS/VMB ULTRIX ADDR DEVTYP NUMBYTES RM/FX WP DEVNAM REV
------- ------ -------- ------ -------- ----- -- ------ ---
ESA0 SE0 08-00-2B-26-46-99
DKA100 RZ1 A/1/0/00 DISK 345 MB FX 7345-SC1761
...HostID.... A/6 INITR
DKB0 RZ8 B/0/0/00 DISK 2.11 GB FX DSE21000306
MKB300 TZ11 B/3/0/00 TAPE ........ RM TZ88 D887 <---- the tape drive
...HostID.... B/6 INITR
Adding SCSI2SD disks
SCSI2SD SCSI2SD is an approach emulating SCSI hardware with software running in an PSoC microcontroller. More details on SCSI2SD can be found here
After having created two 400MB disks on a 1GB SD card with SCSI2SD hardware, I attached SCSI2SD via DB25 cable at second SCSI controller and switched on the device. The MicroVAX detected both new drives.
VMS/VMB ULTRIX ADDR DEVTYP NUMBYTES RM/FX WP DEVNAM REV
------- ------ -------- ------ -------- ----- -- ------ ---
ESA0 SE0 08-00-2B-26-46-99
DKA100 RZ1 A/1/0/00 DISK 345 MB FX 7345-SC1761
...HostID.... A/6 INITR
DKB0 RZ8 B/0/0/00 DISK 2.11 GB FX DSE21000306
DKB100 RZ9 B/1/0/00 DISK 419 MB FX RD26 1.0 <--- SCSI2SD disk 1
DKB200 RZ10 B/2/0/00 DISK 419 MB FX RD27 1.0 <--- SCSI2SD disk 2
...HostID.... B/6 INITR
Adding a floppy drive
The original drive for the MicroVAX 3100 was the RX23 (3 1/2" Half-height Floppy Disk 1.4 MB) . This is a SCSI floppy drive. I have a Superdisk SCSI floppy drive, and could attach and use this floppy with no issues.
MicroVAX 3100 with Simh
For experimenting with VAX and VAX operating systems, also the simulation by simh can be used. simh allows to mount harddisks, floppies and other stuff from file images and to work with it like having the real hardware.
Build SIMH for VAX
Get SIMH from https://github.com/simh/simh.
Build only VAX incarnations, search for ALL
target in makefile and comment
all unneeded emulator incarnations.
Then start build with make
. Executables are created in directory BIN
.
Example simh.ini file to boot from an iso image named vaxcd-2.0.iso on drive RZ1:
set cpu 16m
set cpu idle
att rz1 vaxcd-2.0.iso
;att rz1 NetBSD-9.3-vax.iso
;att rz1 NetBSD-7.0-vax.iso
Then start simh, executable is named microvax3100, boot CPU code (“b cpu”) and then boot from RZ1 drive (“b dka100”)":
dennis@dennis-pc:~/vax> microvax3100
MicroVAX 3100 M10/M20 (KA41-A) simulator V4.0-0 Current git commit id: d5cc3406
sim> b cpu
Loading boot code from internal ka41a.bin
KA41-A V1.6
F_..E?..D...C?..B?..A...9...8?..7...6...5?..4_..3_..2_..1?..
?? E 0040 0000.0054
? D 0050 0000.0005
?? C 0080 0000.0004
?? B 0010 0010.0020
?? 8 0060 0000.0002
?? 5 0001 0000.000A
?? 1 00C0 0000.1004
>>> b dka100
-DKA100
>> NetBSD/vax boot [1.11 Thu Dec 2 19:05:43 CST 2004] <<
>> Press any key to abort autoboot 0
getdisklabel: no disk label
nfs_open: must mount first.
2490648+155180=0x286130
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
The NetBSD Foundation, Inc. All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
NetBSD 2.0 (INSTALL) #0: Thu Dec 2 19:20:50 CST 2004
builds@build:/big/builds/ab/netbsd-2-0-RELEASE/vax/200411300000Z-obj/big/builds/ab/netbsd-2-0-RELEASE/src/sys/arch/vax/compile/INSTALL
MicroVAX 3100
cpu: KA41/42
cpu: Enabling primary cache, secondary cache
total memory = 16264 KB
avail memory = 12800 KB
mainbus0 (root)
vsbus0 at mainbus0
vsbus0: interrupt mask 40
si0 at vsbus0 csr 0x200c0080 vec 770 ipl 14 maskbit 1
si0: NCR5380, SCSI ID 6
scsibus0 at si0: 8 targets, 8 luns per target
si1 at vsbus0 csr 0x200c0180 vec 774 ipl 14 maskbit 0
si1: NCR5380, SCSI ID 6
scsibus1 at si1: 8 targets, 8 luns per target
md0: internal 1536 KB image area
scsibus0: waiting 2 seconds for devices to settle...
scsibus1: waiting 2 seconds for devices to settle...
sd0 at scsibus0 target 0 lun 0: <DEC, RZ23 (C) DEC, 0A18> disk fixed
sd0: drive offline
sd0: async, 8-bit transfers
sd1 at scsibus0 target 1 lun 0: <DEC, RZ23 (C) DEC, 0A18> disk fixed
sd1: 101 MB, 1024 cyl, 2 head, 101 sec, 512 bytes/sect x 208000 sectors
sd1: async, 8-bit transfers
sd2 at scsibus0 target 2 lun 0: <DEC, RZ23 (C) DEC, 0A18> disk fixed
sd2: drive offline
sd2: async, 8-bit transfers
sd3 at scsibus0 target 3 lun 0: <DEC, RZ23 (C) DEC, 0A18> disk fixed
sd3: drive offline
sd3: async, 8-bit transfers
// some lines left out
boot device: sd1
root on md0a dumps on md0b
Clock has lost -17479 day(s) - CHECK AND RESET THE DATE.
root file system type: ffs
In this example, I am trying to boot NetBSD 2.0 from CDROM. This fails, the system stays hanging at the line “root file system type: ffs”.
The cool thing is, in reality, on a real machine, this gives exactly same error.
Related
- info on memory modules - https://gunkies.org/wiki/MS400_MicroVAX_2000/VAXstation_2000_Memory_Module