Last active
August 8, 2023 02:50
-
-
Save al177/2871629b5363086c946237d815db5aac to your computer and use it in GitHub Desktop.
VAXStation 4000 VLC notes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Notes on my VS4k motherboard | |
----- | |
Issues: | |
- No FB card | |
- lack of S3 switch needs workaround (see below) to use serial consone | |
- maybe why serial BREAK doesn't HALT | |
- maybe why DZ test fails | |
- Fails DZ interrupt test (0x50) most of the time. No explanation. | |
- Stinky and still a little dirty | |
- NVR/TOY clock module battery is dead | |
Hacks done: | |
- USB to MMJ cable (See below) | |
- ATX to board adapter | |
- force ALCON bit (S3 switch) for console on MMJ serial | |
- solder pin 36 of 21-35025-01 ASIC to ground ("pin 36" may be wrong - measured clockwise from pin 1 indicator) | |
- signal comes to a via | |
- this is at the corner of the chip nearest the UC80234 line receiver IC | |
Other notes: | |
- Suspect that failure of DZ and HALT being blocked are related | |
- One of the ASICs may be bad | |
- or may have to do with dead NVR | |
- or HALT_L signal may have a pull on the FB card, so without it HALT_L is asserted. Maybe HALT_L is edge triggered so asserting it prevents the DZ UART source from triggering it? | |
----- | |
PSU pinout: | |
+-------+ | |
| | | |
7 unused | o o | unused 14 | |
| | | |
6 +5.2 | o o | unused 13 | |
| | | |
5 +5.2 | o o | 0 12 | |
| || | |
4 0 | o o ||unused 11 | |
| || | |
3 0 | o o | unused 10 | |
| | | |
2 0 | o o | +12 9 | |
| | | |
1 -12 | o o | +5.2 8 | |
| | | |
+-------+ | |
Standard Molex Mini-fit Jr. 14 pin | |
Despite what the service manual says, there is no 3.3V rail on this system. Only +5/+12/-12 as above. | |
ATX-24 (20 compat) to VLC power adapter | |
ATX VLC Sig | |
3 2 GND | |
4 5 5V | |
5 3 GND | |
6 6 5V | |
7 4 GND | |
10 9 12V | |
14 1 -12V | |
15 12 GND | |
16 - PS_ON# | |
17 - GND | |
21 8 5V | |
Switch between ATX 16 (PS_ON#) and ATX 17 (GND) for power enable | |
----- | |
FB connector to 21-35025-01 ASIC map (partial) | |
TQ144 | |
FB J13 ASIC | |
1 79 | |
5 78 | |
9 77 | |
13 76 | |
16 75 | |
22 36 4.7K PU to VDD <- short to ground for serial console (S3 up) | |
34 MSIZE[0] | |
35 MTYP | |
33 MSIZE[1] | |
32 MSIZE[2] | |
----- | |
Serial console over USB | |
The pinout for Cisco RJ45 and DEC MMJ serial console cables map exactly if the outer two wires | |
(pins 1 and 8) are omitted from the Cisco cable. This makes it easy to crimp an MMJ to a flat-type USB to Cisco cable. | |
Parts / tools: | |
- MMJ plug (Digikey 380-1238-ND / Stewart 940-SP-3066R-OST) | |
- MMJ crimper (???) | |
- USB-to-Cisco RJ45 console cable (like https://www.amazon.com/dp/B075V1RGQK) | |
- Voltmeter | |
- First find DTR on the console cable: | |
- Plug into PC USB | |
- Measure voltage between either of the two RJ45 middle pins (gnd) and one pin in from one side of the connector | |
- If it measures +/- 5V or more, that pin is DTR (Cisco pin 7) which will mate with pin 6 (DSR) of the MMJ. | |
- If not, try the opposite side | |
- Note the color of the wire in the position in the RJ45 | |
- Unplug the USB end | |
- Snip the end of the Cisco cable, then strip the jacket to 1/2", or just enough to escape the MMJ plug when inserted | |
- Snip wires 1 and 8 of the Cisco cable (RTS and CTS) close to where the jacket is stripped | |
- Hold the MMJ looking into the cable end such that the latch is facing down and to the right | |
- pin 1 is opposite the latch end | |
- Insert the wires with the DTR pin aligned to the right (same side as the latch) | |
- Crimp | |
Note that the cable will be too wide to insert into the MMJ for strain relief. Just be careful! | |
Pinout | |
Cisco MMJ | |
CTS 1 - | |
DSR 2 1 DTR | |
RXD 3 2 TXD+ | |
GND 4 3 TXD- (GND for console) | |
GND 5 4 RXD- (GND for console) | |
TXD 6 5 RXD+ _____ | |
DTR 7 6 DSR _____| <- latch | |
RTS 8 - | |
----- | |
SIMH bootserver for VS4k | |
(see vaxstation4000vlc_inst.ini) | |
--- | |
vaxstation4000vlc.ini | |
--- | |
set async | |
set cpu 24m | |
; Attach non-volatile RAM to a file | |
attach nvr vaxstation4000vlc.nvr | |
set rz0 rz26 | |
attach rz0 vs4k.dsk | |
set rz1 disable | |
set rz2 disable | |
set rz3 disable | |
set rz4 rz24 | |
; Find this ISO online somewhere | |
attach -r rz4 openvms73.iso | |
set rz5 disable | |
set rz7 disable | |
; Attach Ethernet to a network interface | |
set nar mac=08-00-2B-AA-BB-CC | |
attach xs enp4s0 | |
set cpu idle=VMS | |
set cpu conhalt | |
set console brk=10 | |
;set console telnet=10024 | |
; Console command to boot into VMS when emulator starts | |
expect ">>>" send "b dka0\r"; continue | |
; Start the emulator | |
boot cpu | |
exit | |
--- | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; ------runtime vars------ | |
set env SIM_HOSTNAME=FAKE | |
; Host network interface to assign to the sim virtual ethernet dev | |
set env SIM_ETH=enp5s0 | |
set env SIM_ETH_MACADDR=08-00-2B-AA-BB-CC | |
set env SIM_PASSWD=cyberdec | |
set env SIM_SCSSYSTEMID=1155 | |
; ------------------------ | |
set async | |
set cpu 24m | |
; Attach non-volatile RAM to a file | |
attach nvr vaxstation4000vlc.nvr | |
set rz0 rz26 | |
attach rz0 vs4k.dsk | |
set rz1 disable | |
set rz2 disable | |
set rz3 disable | |
set rz4 rz24 | |
; Find this ISO online somewhere | |
attach -r rz4 openvms73.iso | |
set rz5 rz24 | |
; Make an ISO with VMS_PAKS.COM as the only file: | |
; It's a DCL script with all the licenses you want installed | |
; You may have to resort to VLF... | |
attach -r rz5 license.iso | |
set rz7 disable | |
; Attach Ethernet to a network interface | |
set nar mac=%SIM_ETH_MACADDR% | |
attach xs %SIM_ETH% | |
set cpu idle=VMS | |
set cpu conhalt | |
set console brk=10 | |
;set console telnet=10024 | |
; Expect commands for automating install | |
; Boot into staback and copy install saveset over | |
send after=5M | |
send delay=100000 | |
expect ">>>" send "b dka400\r"; continue | |
call do_datetime | |
expect "\r\n$" send "BACKUP DKA400:VMS073.B/SAVE_SET DKA0:\r"; continue | |
expect "to continue" send "YES\r"; continue | |
; Assert HLT interrupt to enter the console | |
expect "\r\n$" d hltpin 1; step -T 1000000; d hltpin 0; continue | |
; Set root disk as boot device, turn off firmware RAM checks; and boot into the saveset | |
expect ">>>" send "\rset boot dka0\r"; continue | |
expect ">>>" send "set fboot 1\r"; continue | |
expect ">>>" send "\rb\r"; continue | |
call do_datetime | |
; Disk config | |
expect "label for this system disk" send "%SIM_HOSTNAME%SYS\r"; continue | |
expect "ready to be mounted?" send "Y\r"; continue | |
expect "distribution media:" send "DKA400:\r"; continue | |
; Base package options | |
expect "Do you want to install the OpenVMS library files" send "Y\r"; continue | |
expect "Do you want to install the OpenVMS optional files" send "Y\r"; continue | |
expect "Do you want to install the MSGHLP database?" send "Y\r"; continue | |
expect "Where do you want to install the MSGHLP database?" send "\r"; continue | |
expect "Do you want to install the optional OpenVMS Management Station files?" send "N\r"; continue | |
expect "DECwindows base support?" send "N\r"; continue | |
expect "DECnet-Plus?" send "N\r"; continue | |
expect "Phase IV?" send "Y\r"; continue | |
expect "* Is this correct? (Y/N)" send "Y\r"; continue | |
expect "continue?" send "\r"; continue | |
; Default account passwords | |
expect "password for SYSTEM:" send "%SIM_PASSWD%\r"; continue | |
expect "verification:" send "%SIM_PASSWD%\r"; continue | |
expect "password for SYSTEST:" send "%SIM_PASSWD%\r"; continue | |
expect "verification:" send "%SIM_PASSWD%\r"; continue | |
expect "password for FIELD:" send "%SIM_PASSWD%\r"; continue | |
expect "verification:" send "%SIM_PASSWD%\r"; continue | |
; DECnet IV node setup | |
expect "SCSNODE name:" send "%SIM_HOSTNAME%\r"; continue | |
expect "SCSSYSTEMID:" send "%SIM_SCSSYSTEMID%\r"; continue | |
; We'll install licenses later | |
expect "Do you want to register any Product Authorization Keys?" send "N\r"; continue | |
; Timezone stuff | |
expect "location:" send "33\r"; continue | |
expect "Is this correct? (Yes/No)" send "Yes\r"; continue | |
expect "location:" send "4\r"; continue | |
expect "Is this correct? (Yes/No)" send "Yes\r"; continue | |
expect "Is Daylight Savings time in effect?" send "N\r"; continue | |
expect "Enter the Time Differential Factor" send "\r"; continue | |
expect "Is this correct? [Y]:" send "Y\r"; continue | |
; Reboot into new install happens here | |
call do_login | |
; Install the license pak file | |
expect "\000$ " send "mount /ov=id %SIM_HOSTNAME%$DKA500:\r"; continue | |
expect "\r\000$ " send "COPY %SIM_HOSTNAME%$DKA500:[000000]VMS_PAKS.COM;1 SYS$LOGIN\r"; continue | |
expect "\r\000$ " send "SET DEF SYS$LOGIN\r"; continue | |
expect "\r\000$ " send "SET FILE/ATTRIBUTE=(RFM=STMLF) VMS_PAKS.COM;1\r"; continue | |
expect "\r\000$ " send "@VMS_PAKS.COM\r"; continue | |
expect "\r\000$ " send "LICENSE MODIFY/INCLUDE=%SIM_HOSTNAME% VAX-VMS\r"; continue | |
expect "\r\000$ " send "LICENSE LOAD\r"; continue | |
; Decompress libraries for more fasterness | |
expect "\r\000$ " send "@SYS$UPDATE:LIBDECOMP.COM\r"; continue | |
expect "* Enter letter or number(s) of libraries to be decompressed" send "a\r"; continue | |
; Modify AUTOGEN system parameters - will reboot after this | |
expect "\r\000$ " send "open/append HFILE SYS$SYSROOT:[SYSEXE]MODPARAMS.DAT\r"; continue | |
expect "\r\000$ " send "write HFILE \"MIN_GBLPAGES=50000\"\r"; continue | |
expect "\r\000$ " send "write HFILE \"ADD_GBLSECTIONS=100\"\r"; continue | |
expect "\r\000$ " send "write HFILE \"ADD_NPAGEDYN=800000\"\r"; continue | |
expect "\r\000$ " send "write HFILE \"ADD_NPAGEVIR=800000\"\r"; continue | |
expect "\r\000$ " send "write HFILE \"MIN_SPTREQ=6000\"\r"; continue | |
expect "\r\000$ " send "write HFILE \"MIN_INTSTKPAGES=20\"\r"; continue | |
expect "\r\000$ " send "close HFILE\r"; continue | |
expect "\r\000$ " send "@SYS$UPDATE:AUTOGEN GETDATA REBOOT NOFEEDBACK\r"; continue | |
; Login again | |
call do_login | |
expect "\000$ " send "set proc/priv=all\r"; continue | |
expect "\000$ " send "@SYS$MANAGER:NETCONFIG.COM\r"; continue | |
; Configure DECNET | |
expect "What do you want your DECnet node name to be?" send "\r"; continue | |
expect "What do you want your DECnet address to be?" send "1.131\r"; continue | |
expect "Do you want to operate as a router?" send "\r"; continue | |
expect "Do you want a default DECnet account?" send "\r"; continue | |
expect "Do you want a default account for the MAIL object?" send "\r"; continue | |
expect "Do you want a default account for the FAL object?" send "\r"; continue | |
expect "Do you want a default account for the PHONE object?" send "\r"; continue | |
expect "Do you want a default account for the NML object?" send "\r"; continue | |
expect "Do you want a default account for the MIRROR object?" send "\r"; continue | |
expect "Do you want a default account for the VPM object?" send "\r"; continue | |
expect "Press RETURN to continue" send "\r"; continue | |
expect "Press RETURN to continue" send "\r"; continue | |
expect "Press RETURN to continue" send "\r"; continue | |
expect "Press RETURN to continue" send "\r"; continue | |
expect "Do you want these commands to be executed?" send "YES\r"; continue | |
expect "Do you want DECnet started?" send "YES\r"; continue | |
; Sync with another node in DECNET | |
#expect "\r\000$ " send "RUN SYS$SYSTEM:NCP\r"; continue | |
#expect "NCP>" send "COPY KNOWN NODES FROM 1.132 TO BOTH\r"; continue | |
#expect "NCP>" send "EXIT\r"; continue | |
; Install TCPIP | |
expect "\r\000$ " send "license load UCX\r"; continue | |
expect "\r\000$ " send "MOUNT/OVER=ID DKA400\r"; continue | |
expect "\r\000$ " send "SET DEF DKA400:[TCPIP_VAX051.KIT]\r"; continue | |
expect "\r\000$ " send "PRODUCT INSTALL *\r"; continue | |
expect "Do you want to continue?" send "YES\r"; continue | |
expect "Do you want the defaults for all options?" send "YES\r"; continue | |
expect "Do you want to review the options?" send "NO\r"; continue | |
expect "\000$ " send "@SYS$MANAGER:TCPIP$CONFIG\r"; continue | |
; setup DHCP | |
expect "Enter configuration option:" send "1\r"; continue | |
expect "Enter configuration option:" send "2\r"; continue | |
expect "Enter configuration option:" send "2\r"; continue | |
expect "Enter configuration option:" send "1\r"; continue | |
expect "Which interface?" send "SE0\r"; continue | |
; set domain name | |
expect "Enter configuration option:" send "1\r"; continue | |
expect "Enter Internet domain" send "splunge.net\r"; continue | |
expect "Enter configuration option:" send "E\r"; continue | |
; setup FTP | |
expect "Enter configuration option:" send "2\r"; continue | |
expect "Enter configuration option:" send "1\r"; continue | |
expect "Enter configuration option:" send "1\r"; continue | |
expect "* Do you want to configure FTP SERVER" send "YES\r"; continue | |
expect "Enter configuration option:" send "E\r"; continue | |
; setup telnet | |
expect "Enter configuration option:" send "6\r"; continue | |
expect "Enter configuration option:" send "1\r"; continue | |
expect "Enter configuration option:" send "E\r"; continue | |
; start services | |
expect "Enter configuration option:" send "6\r"; continue | |
expect "Press Return to continue" send "\r"; continue | |
expect "Enter configuration option:" send "E\r"; continue | |
expect "Start these services now?" send "Y\r"; continue | |
expect "\000$ " send "set def dka0:[000000]\r"; continue | |
expect "\000$ " send "edit/edt SYS$COMMON:[SYSMGR]SYSTARTUP_VMS.COM\rtype end\r.-1\rinsert\r@SYS$MANAGER:STARTNET\r@SYS$STARTUP:TCPIP$STARTUP\r\x1aexit\r"; continue | |
expect "\000$ " send "reboot\r"; continue | |
; Set up cluster | |
call do_login | |
expect "\000$ " send "@cluster_config\r"; continue | |
expect "Do you want LANACP instead of DECnet for cluster boot serving" send "YES\r"; continue | |
expect "Enter choice [1]"; send "1\r"; continue | |
expect "Will the LAN be used for cluster communications"; send "Y\r"; continue | |
expect "Enter this cluster's group number"; send "1\r"; continue | |
expect "Enter this cluster's password"; send "%SIM_PASSWD%\r"; continue | |
expect "Re-enter this cluster's password for verification"; send "%SIM_PASSWD%\r"; continue | |
expect "be a boot server"; send "Y\r"; continue | |
expect "ALLOCLASS parameter"; send "0\r"; continue | |
expect "contain a quorum disk"; send "N\r"; continue | |
expect "Do you want to run AUTOGEN now"; send "Y\r"; continue | |
; LANACP setup reboots here | |
call do_login | |
; add satellite node named JUNIOR with SCSSYSTEMID 1156 (1.132) | |
; Replace the hardware address with the satellite's MAC | |
expect "\000$ " send "@cluster_config\r"; continue | |
expect "Do you want LANACP instead of DECnet for cluster boot serving" send "YES\r"; continue | |
expect "Enter choice [1]"; send "1\r"; continue | |
expect "you want to continue [N]"; send "Y\r"; continue | |
expect "Will the node be a satellite"; send "Y\r"; continue | |
expect "What is the node's SCS node name"; send "JUNIOR\r"; continue | |
expect "What is the node's SCSSYSTEMID number"; send "1156\r"; continue | |
expect "run DECnet "; send "Y\r"; continue | |
expect "LAN adapter hardware address"; send "00-11-22-33-44-55\r"; continue | |
; note: we're sharing this host's system disk with the satellite and using lots of defaults | |
expect "system root"; send "\r"; continue | |
expect "system root"; send "\r"; continue | |
expect "conversational bootstraps on"; send "Y\r"; continue | |
expect "Enter choice"; send "1\r"; continue | |
expect "be a disk server"; send "N\r"; continue | |
expect "Size of pagefile"; send "\r"; continue | |
expect "Size of temporary pagefile"; send "\r"; continue | |
expect "Size of swap file for"; send "\r"; continue | |
expect "Size of temporary swap file"; send "\r"; continue | |
expect "be used for paging and swapping"; send "N\r"; continue | |
expect "device name for the page and swap files"; send "\r"; continue | |
expect "\r\000$ " send "shutdown\r"; continue | |
; ------Procedures------ | |
; Archaic procedures stuff for simh... | |
goto end_of_procs | |
; log in as system | |
:do_login | |
; sometimes we get stuck after elapsed time, so wait a looong time | |
expect "Elapsed time:" send after=1000m,"\r"; continue | |
expect "\r\n\rUsername: " send "system\r"; send "%SIM_PASSWD%\r"; continue | |
return | |
; fill in date/time prompt | |
:do_datetime | |
expect "DD-MMM-YYYY" send "%DATE_DD%-%DATE_MMM%-%DATE_YYYY% %TIME_HH%:%TIME_MM%\r"; continue | |
return | |
:end_of_procs | |
; ------Procedures end------ | |
; All prior lines are for setup and queueing expect commands - nothing happens | |
; until we boot | |
boot cpu | |
exit |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment