Skip to main content

IT - Virtualization - DEC VMS 1.0 on VAX 11/780 on SimH for Windows 10 x64

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

  1. Install Cygwin
  2. Install simh 4.x from here. This is a fork project from the original emulator.
    1. If this is the first time, make a local copy of the simulator
      cd /cygdrive/m/Emulators/SimH/mirrorgit 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.    
    2. 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    
    3. 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    
  3. 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
  4. 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.exels -laF vax780-4.1.exe
    lrwxrwxrwx 1 afberendsen None 29 Feb 13 23:26 vax780.exe -> ../../mirror/simh/BIN/vax780-4.1.exe*    
  5. 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    
  6. 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    
  7. 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.
    1. 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    
    2. 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    
    3. 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
      
      
      
      $    
    4. 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    
    5. 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
    6. 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:    

First look


Comments

Popular posts from this blog

TV Series - The Brokenwood Mysteries [NZ] (2014) - Season 10

 

Movie - Sin City: A Dame to Kill For (2014)

 

Movies - Deadpool & Wolverine (2024)