Introduction
Host
- Generic Intel Core i7 128GB Windows 10
Windows 10
cygwin
Virtualization
- SimH 3.12 <== Not working anymore
- SimH 4.0 <== Not working anymore
- SimH 4.1
Guest
- DEC VAX-11/780
- CPU: KA780 @ 5MHz
- Memory: Up to 128MB (I can only make it work with 64MB)
Pending
- I still need to do some work to fix the error related to RegEx support.
- SET CPU 128M hangs the guest at boot.
References
- https://afberendsen.blogspot.com/2023/02/it-virtualization-simh.html
- https://gunkies.org/wiki/Installing_VMS_V1.0_on_SIMH
- https://formulae.brew.sh/formula/simh
- http://simh.trailing-edge.com/pdf/pdp11_doc.pdf
Steps
- Install Cygwin
- Install simh 4.x from here. This is a fork project from the original emulator.
- If this is the first time, make a local copy of the simulator
$ cd /cygdrive/m/Emulators/SimH/mirror $ git config --global http.sslverify "false" $ git clone https://github.com/open-simh/simh.git Cloning into 'simh'... remote: Enumerating objects: 35175, done. remote: Counting objects: 100% (104/104), done. remote: Compressing objects: 100% (66/66), done. remote: Total 35175 (delta 46), reused 86 (delta 38), pack-reused 35071 Receiving objects: 100% (35175/35175), 78.77 MiB | 7.43 MiB/s, done. Resolving deltas: 100% (27238/27238), done. Updating files: 100% (1580/1580), done.
- Otherwise, update your local copy
$ ( cd simh && git fetch --all -v ) POST git-upload-pack (155 bytes) From https://github.com/open-simh/simh = [up to date] master -> origin/master = [up to date] Alpha-CPU -> origin/Alpha-CPU = [up to date] AsyncTmxr -> origin/AsyncTmxr = [up to date] AutoConfigure -> origin/AutoConfigure = [up to date] Bryan-HP-Current -> origin/Bryan-HP-Current = [up to date] BufferedConsole -> origin/BufferedConsole = [up to date] ControlFlow -> origin/ControlFlow = [up to date] Extra-VAXen -> origin/Extra-VAXen = [up to date] FastAsynchIO -> origin/FastAsynchIO = [up to date] HP2100Extensions -> origin/HP2100Extensions = [up to date] KDP -> origin/KDP = [up to date] SerialMux -> origin/SerialMux = [up to date] Supnik-Current -> origin/Supnik-Current = [up to date] VAX-11-BootBlock-Fixup -> origin/VAX-11-BootBlock-Fixup = [up to date] simtools -> origin/simtools = [up to date] v3.9-0-rc1 -> origin/v3.9-0-rc1 = [up to date] vms-pcap -> origin/vms-pcap
- Create the simulator machines
$ ( cd simh && make vax780 ) lib paths are: /usr/lib ../windows-build/winpcap/WpdPack/Lib /lib/ /usr/lib/ include paths are: /usr/lib/gcc/x86_64-pc-cygwin/11/include /usr/include /usr/lib/gcc/x86_64-pc-cygwin/11/../../../../lib/../include/w32api ../windows-build/winpcap/WpdPack/Include using libm: /usr/lib/libm.a using librt: /usr/lib/librt.a using libpthread: /usr/lib/libpthread.a /usr/include/pthread.h using semaphore: /usr/include/semaphore.h using libdl: /usr/lib/libdl.a /usr/include/dlfcn.h using libedit: /usr/include/editline/readline.h using mman: /usr/include/sys/mman.h *** Warning *** *** Warning *** vax780 Simulator is being built WITHOUT *** Warning *** libpcap networking support *** Warning *** *** Warning *** To build simulator(s) with libpcap networking support you *** Warning *** should read 0readme_ethernet.txt and follow the instructions *** Warning *** regarding the needed libpcap development components for your *** Warning *** cygwin platform *** Warning *** *** Warning *** *** Warning *** vax780 Simulator is being built WITHOUT LAN networking support *** Warning *** *** Warning *** To build simulator(s) with networking support you should read *** Warning *** 0readme_ethernet.txt and follow the instructions regarding the *** Warning *** needed libpcap components for your cygwin platform *** Warning *** *** *** vax780 Simulator being built with: *** - compiler optimizations and no debugging support. GCC Version: 11.3.0. *** - WITHOUT Local LAN networking support. *** - Local LAN packet transports: NAT(SLiRP) *** - Per simulator tests will be run. *** *** git commit id is 4e159a04ed6291509b685dc06f620389b3373cce. *** git commit time is 2023-01-04T13:22:12-0700. *** gcc -std=gnu99 -U__STRICT_ANSI__ -O2 -finline-functions -fgcse-after-reload -fpredictive-commoning -fipa-cp-clone -fno-unsafe-loop-optimizations -fno-strict-overflow -DSIM_GIT_COMMIT_ID=4e159a04ed6291509b685dc06f620389b3373cce -DSIM_GIT_COMMIT_TIME=2023-01-04T13:22:12-0700 -DSIM_COMPILER="GCC Version: 11.3.0" -DSIM_BUILD_TOOL=simh-makefile -I . -Werror -D_GNU_SOURCE -DUSE_READER_THREAD -DSIM_ASYNCH_IO -DHAVE_SEMAPHORE -DHAVE_SYS_IOCTL -DSIM_HAVE_DLOPEN=a -DHAVE_EDITLINE -DHAVE_UTIME -DHAVE_GLOB -DHAVE_SHM_OPEN ./VAX/vax_cpu.c ./VAX/vax_cpu1.c ./VAX/vax_fpa.c ./VAX/vax_cis.c ./VAX/vax_octa.c ./VAX/vax_cmode.c ./VAX/vax_mmu.c ./VAX/vax_sys.c ./VAX/vax_syscm.c ./VAX/vax780_stddev.c ./VAX/vax780_sbi.c ./VAX/vax780_mem.c ./VAX/vax780_uba.c ./VAX/vax7x0_mba.c ./VAX/vax780_fload.c ./VAX/vax780_syslist.c ./PDP11/pdp11_rl.c ./PDP11/pdp11_rq.c ./PDP11/pdp11_ts.c ./PDP11/pdp11_dz.c ./PDP11/pdp11_lp.c ./PDP11/pdp11_tq.c ./PDP11/pdp11_xu.c ./PDP11/pdp11_ry.c ./PDP11/pdp11_cr.c ./PDP11/pdp11_rp.c ./PDP11/pdp11_tu.c ./PDP11/pdp11_hk.c ./PDP11/pdp11_vh.c ./PDP11/pdp11_dmc.c ./PDP11/pdp11_dup.c ./PDP11/pdp11_td.c ./PDP11/pdp11_tc.c ./PDP11/pdp11_rk.c ./PDP11/pdp11_io_lib.c ./PDP11/pdp11_ch.c ./scp.c ./sim_console.c ./sim_fio.c ./sim_timer.c ./sim_sock.c ./sim_tmxr.c ./sim_ether.c ./sim_tape.c ./sim_disk.c ./sim_serial.c ./sim_video.c ./sim_imd.c ./sim_card.c -DVM_VAX -DVAX_780 -DUSE_INT64 -DUSE_ADDR64 -I ./VAX -I ./PDP11 -Islirp -Islirp_glue -Islirp_glue/qemu -DHAVE_SLIRP_NETWORK -DUSE_SIMH_SLIRP_DEBUG slirp/*.c slirp_glue/*.c -DUSE_NETWORK -o BIN/vax780 -lm -lrt -lpthread -ldl -ledit BIN/vax780 RegisterSanityCheck /cygdrive/m/Emulators/SimH/mirror/simh/VAX/tests/vax-diag_test.ini </dev/null Running internal register sanity checks on VAX 11/780 simulator. *** Good Registers in VAX 11/780 simulator. VAX 11/780 simulator Open SIMH V4.1-0 Current git commit id: 4e159a04 Running Hardware Core Test (EVKAA) *** PASSED - VAX 11/780 Hardware Core Instruction test EVKAA Starting VAX Diagnostic Supervisor Missing Regular Expression support - skipping EVKAB test
- Prepare data directory
$ mkdir /cygdrive/m/Emulators/SimH/guests/vax-11-780_vms-1.0 $ mkdir /cygdrive/m/Emulators/SimH/guests/by-plaform/vax-11-780 $ mkdir /cygdrive/m/Emulators/SimH/guests/by-os/vms-1.0 $ ln -s ../../vax-11-780_vms-1.0 /cygdrive/m/Emulators/SimH/guests/by-os/vms-1.0/vax-11-780 $ ln -s ../../vax-11-780_vms-1.0 /cygdrive/m/Emulators/SimH/guests/by-plaform/vax-11-780/vms-1.0
- The simulator program is available in the BIN directory from the compiled git repository. To make life easier, the best is to create a link to the program. I can create a link into /usr/bin or into the guest directory. I will go with the later.
$ ln -s ../../mirror/simh/BIN/vax780.exe /cygdrive/m/Emulators/SimH/guests/vax-11-780_vms-1.0/vax780-4.1.exe $ ls -laF vax780-4.1.exe lrwxrwxrwx 1 afberendsen None 29 Feb 13 23:26 vax780.exe -> ../../mirror/simh/BIN/vax780-4.1.exe*
- Get a VMS V1.0 RK07 disk image from here (backup), unzip and put it in into the directory where your guest directory is.
$ 7z x VAX-VMS_V1.0.RK7.zip 7-Zip [64] 15.14 : Copyright (c) 1999-2015 Igor Pavlov : 2015-12-31 p7zip Version 15.14.1 (locale=en_GB.UTF-8,Utf16=on,HugeFiles=on,64 bits,16 CPUs Intel(R) Core(TM) i7-10700K CPU @ 3.80GHz (A0655),ASM,AES-NI) Scanning the drive for archives: 1 file, 1912510 bytes (1868 KiB) Extracting archive: VAX-VMS_V1.0.RK7.zip -- Path = VAX-VMS_V1.0.RK7.zip Type = zip Physical Size = 1912510 Everything is Ok Size: 27540992 Compressed: 1912510
- Create vax780.ini file. This .ini file will not work with the "classical" SimH. As a note, you can have multiple .ini files.
; ================================================ ; vax780.ini ; ================================================ ; ; Small Size 16 User System made of: ; - 64M bytes of memory ; - 16 DZ11 terminal lines ; - 2 RK07 disk drives ; - line printer ; - TE16 magnetic tape unit ; The tape unit is non-standard in small systems, ; but very useful e.g. to install more software SET QUIET SET CPU 64M SET THROTTLE 1M ;SET CPU IDLE=VMS SET CONSOLE LOG=VMS010-01.LOG ATT CS CONSOLE.RX1 SET DZ LINES=16 ATT DZ 6666 SET LPT ENA ATT LPT printer.txt SET RP DIS SET RL DIS SET HK0 RK07 ATT HK0 VAX-VMS_V1.0.RK7 SET HK1 RK07 ATT HK1 DATA000.RK7 SET HK2 DIS SET HK3 DIS SET HK4 DIS SET HK5 DIS SET HK6 DIS SET HK7 DIS SET RQ DIS SET RY DIS SET TQ DIS SET TS DIS SET TU ENA SET TU0 TE16 ; MTA0: SET TU1 DIS SET TU2 DIS SET TU3 DIS SET TU4 DIS SET TU5 DIS SET TU6 DIS SET TU7 DIS BOOT HK0/R5:1 ;BOOT HK0
- VMS setup VMS is already loaded into the provided virtual disk (see above). Next step is the initial run to set-up some things. It is important to note that the initial system boot is from the system disk but into a set-up option (HK0/R5:1). This will change after the set-up is done.
- Boot your system and set system behaviour. Since it is the first time you are booting the system. the DATA000.RK7 will be created.
$ ./vax780.exe VAX 11/780 simulator Open SIMH V4.1-0 Current git commit id: 4e159a04 Overwrite last track? [N] SYSBOOT> USE 16USER.PAR SYSBOOT> CONTINUE
- Continue booting and provide current date/time
SYSBOOT> CONTINUE VAX/VMS Version 1.00 21-AUG-1978 15:54 PLEASE ENTER DATE AND TIME (DD-MMM-YYYY HH:MM) 13-FEB-2023 23:32 $ ! $ ! VAX/VMS system startup - Release 1 $ ! $ SHOW TIME 13-FEB-2023 23:32:06 $ SET NOVERIFY %MOUNT-I-MOUNTED, CONSOLE mounted on _DXA1: Login quotas - Interactive limit=64, Current interactive value=0 SYSTEM job terminated at 13-FEB-2023 23:32:07.89 Accounting information: Buffered I/O count: 142 Peak working set size: 98 Direct I/O count: 37 Peak virtual size: 111 Page faults: 292 Mounted volumes: 1 Elapsed CPU time: 0 00:00:00.84 Elapsed time: 0 00:00:02.17
- Authenticate for the first time. Press ENTER to get the log-in prompt. Use SYSTEM as user and MANAGER as password. You should receive the system prompt.
Username: SYSTEM Password: Welcome to VAX/VMS Version 1.00 $ dir DIRECTORY DM0:[SYSMGR] 13-FEB-23 23:38 ACCOUNTNG.DAT;1 1. 13-FEB-23 23:32 FORMSTYPE.DAT;1 2. 21-AUG-78 15:54 OPERATOR.LOG;1 1. 13-FEB-23 23:32 SYSHUTDWN.COM;1 0. 21-AUG-78 15:54 SYSTARTUP.COM;1 0. 21-AUG-78 15:54 TOTAL OF 4./112. BLOCKS IN 5. FILES $
- Shutdown the system.
- You will be asked for the shutdown delay in minutes (you can specify 0 minutes for an immediate shutdown).
- Furthermore, you can give an optional reason for the shutdown to be displayed at the terminals of the users on your system (just press ENTER to skip).
- For VMS V1.0 it is expected behavior to get a FATAL BUG CHECK at the end of the shutdown.$ @SYS$SYSTEM:SHUTDOWN System shutdown command procedure. 13-FEB-2023 23:39:08 HOW MANY MINUTES UNTIL SHUTDOWN?: 0 REASON?: no reason Login quotas - Interactive limit=0, Current interactive value=1 Non-operator logins are disabled. OPCOM, 23:39:15.46, OPERATOR TERMINAL STATUS, _OPA0: CENTRAL, PRINTER, TAPES, DISKS, DEVICES, CARDS, NETWORK, OPER(1,2,3,4,5,6,7,8,9,10,11,12) _OPA0:,SYSTEM 23:39:16.07 "BATCH AND DEVICE QUEUES HAVE BEEN STOPPED" _OPA0:,SYSTEM 23:39:16.40 "SYSTEM SHUTDOWN IN 0 MINUTES. LOGINS ARE DISABLED, PLEASE LOGOFF. _OPA0:,SYSTEM 23:39:16.58 "NO REASON Invoke installation dependent shutdown procedure. Stop all user processes. Dismount all mounted volumes. OPCOM, 23:39:17.84, SYSTEM ACCNT=SYSTEM OPCOM, _OPA0:, "OPERATOR REQUESTED SHUTDOWN" OPCOM, 13-FEB-2023 23:39:17.94, LOGFILE CLOSED, OPERATOR=_OPA0: **** FATAL BUG CHECK, VERSION = 1.00 OPERATOR, Operator requested system shutdown CURRENT PROCESS = SYSTEM REGISTER DUMP R0 = 00000024 R1 = 00000000 R2 = 00000004 R3 = 7FFE8F05 R4 = 80294E70 R5 = 7FFEE284 R6 = 31000513 R7 = 7FFEF99C R8 = 7FFEF87C R9 = 7FFEF98C R10= 7FFEF9A4 R11= 7FFE6C10 AP = 00000000 FP = 7FFEEBD0 SP = 7FFEEBC8 PC = 0000045D PSL= 00DF0000 KERNEL/INTERRUPT STACK 7FFEEBD0 00000000 7FFEEBD4 00000000 7FFEEBD8 7FFDC778 7FFEEBDC 7FFEEBE4 7FFEEBE0 800087E9 7FFEEBE4 00000000 7FFEEBE8 00000000 7FFEEBEC 7FFDC778 7FFEEBF0 7FFDC760 7FFEEBF4 8000B4E3 7FFEEBF8 80000096 7FFEEBFC 03C00000 EXEC STACK PROCESS PRIVILEGES 8029DC00 FFFFFFFF 8029DC04 FFFFFFFF IMAGE NAME = DMA0:[SYSEXE]OPCCRASH.EXE;1 Infinite loop, PC: 80008462 (BRB 80008462) sim> exit Goodbye
- Update the .ini file to start the VMS on the next boot
... lines omitted ;BOOT HK0/R5:1 <--- Comment this line BOOT HK0 <--- Uncomment this line
- Start your guest again and confirm everything is working
$ ./vax780.exe VAX 11/780 simulator Open SIMH V4.1-0 Current git commit id: 4e159a04 VAX/VMS Version 1.00 21-AUG-1978 15:54 OPCOM, 13-FEB-2023 23:40:40.92, LOGFILE INITIALIZED, OPERATOR=_OPA0: $ ! $ ! VAX/VMS system startup - Release 1 $ ! $ SHOW TIME 13-FEB-2023 23:40:41 $ SET NOVERIFY %MOUNT-I-MOUNTED, CONSOLE mounted on _DXA1: Login quotas - Interactive limit=64, Current interactive value=0 SYSTEM job terminated at 13-FEB-2023 23:40:43.49 Accounting information: Buffered I/O count: 142 Peak working set size: 98 Direct I/O count: 37 Peak virtual size: 111 Page faults: 292 Mounted volumes: 1 Elapsed CPU time: 0 00:00:01.32 Elapsed time: 0 00:00:03.07 Username:
Comments
Post a Comment