NOTICE
I am continually working to improve the approach for virtual machines. Check the most recent post to have an idea on how things are changing. Also, please, leave a comment when you find something that need to be improved.
Introduction
Host
- Windows
- Vendor: Generic
- CPU: 1 x Intel(R) Core(TM) i7-10700K CPU @ 3.80GHz 3.79 GHz
- RAM: 128GB
- OS: Windows 10 64-bits
- macOS
- Vendor: Apple MacBook Pro MacBookPro18,3
- CPU: Apple M1 Pro
- RAM: 32GB
- OS: macOS 13.1 (22C65) Darwin 22.2.0
- Linux
- Vendor: Apple Inc. MacPro6,1/Mac-F60DEB81FF30ACF6, BIOS 430.140.2.0.0 04/18/2022
- CPU: Intel(R) Xeon(R) CPU E5-1650 v2 @ 3.50GHz
- RAM: 64GB
- OS: Linux Fedora 37 Workstation
Guest
- VAX-11/780
- CPU: idle disabled, model=VAX 11/780, Implementing: All standard VAX instructions and Compatibility mode
- Memory: 8MB
- OS: 4.2BSD
Virtualization
- SimH 4.1 (from GitHub)
Pending
- Additional disks
- Network
- Instructions for Windows (no Cygwin), *BSD
References
Steps
- bold text is user input from the keyboard
- red text are control characters typed by the user
- blue text is automatic input from SimH input processing
- fuchsia text are automatic control characters input from SimH input processing
-
Preparation
-
Define shell variables to make life easier...
$ sEmuName=SimH $ sGuestHw=vax-11-780 $ sGuestOs=4-2bsd $ export sEmuName sGuestHw sGuestOs
-
Windows 10 + cygwin
- Install Cygwin with b2zip (or 7z), uudecode, wget
-
Define base directory structure
$ sRootEmulatorsDirectory=/cygdrive/m/; export sRootEmulatorsDirectory
-
macOS
- Install brew
-
Install additional tools. uudecode is installed with macOS already.
$ brew install wget p7zip
-
Define base directory structure
$ sRootEmulatorsDirectory=~/Desktop/; export sRootEmulatorsDirectory
-
Linux
-
Install additional tools. uudecode is installed with Linux already.
$ sudo dnf install -y wget p7zip
-
Define base directory structure
$ sRootEmulatorsDirectory=/Volumes/vol000/; export sRootEmulatorsDirectory
-
Install additional tools. uudecode is installed with Linux already.
-
FOR ALL OSes: Create directory strucuture. Better to create a script called ${sEmuName}_${sGuestOs}_${sGuestHw}.sh. Check the scripts at the end of this page.
$ mkdir -p "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/" $ mkdir -p "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/mirror/" $ mkdir -p "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/guests/" $ mkdir -p "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/guests/${sGuestHw}_${sGuestOs}/" $ mkdir -p "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/guests/by-platform/" $ mkdir -p "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/guests/by-platform/${sGuestHw}/" $ mkdir -p "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/guests/by-os/" $ mkdir -p "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/guests/by-os/${sGuestOs}/" $ ln -sf "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/guests/${sGuestHw}_${sGuestOs}" "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/guests/by-platform/${sGuestHw}/${sGuestOs}" $ ln -sf "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/guests/${sGuestHw}_${sGuestOs}" "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/guests/by-os/${sGuestOs}/${sGuestHw}" $ cd "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/mirror/"
-
Define shell variables to make life easier...
- Install SimH 4.1 from here. This is another fork project from the original emulator. The compilation process can vary, depedning omn the OS.
-
If this is the first time, make a local copy of the simulator
git clone https://github.com/open-simh/simh.git simh-4.1
Click here to see a run example👇
$ git clone https://github.com/open-simh/simh.git simh-4.1 Cloning into 'simh-4.1'... 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.76 MiB | 21.77 MiB/s, done. Resolving deltas: 100% (27237/27237), done. Updating files: 100% (1580/1580), done.
-
Otherwise, update your local copy
( cd simh-4.1 && git fetch --all -v )
Click here to see a run example👇
$ ( cd simh-4.1 && 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
-
Compile your simulator.
( cd simh-4.1 && make vax780 && ./BIN/vax780 )
Click here to see a run example👇
Output can vary depending on your host operating system.$ ( cd simh-4.1 && make vax780 && ./BIN/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-4.1/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 VAX 11/780 simulator Open SIMH V4.1-0 Current git commit id: 4e159a04 sim> exit Goodbye
-
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.
-
Windows 10 + cygwin
$ cd "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/guests/${sGuestHw}_${sGuestOs}/" $ ln -s ../../mirror/simh-4.1/BIN/vax780.exe vax780-4.1 $ ls -laF vax780-4.1 lrwxrwxrwx 1 afberendsen None 36 Feb 19 15:26 vax780 -> ../../mirror/simh-4.1/BIN/vax780*
-
macOS and Linux
$ cd "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/guests/${sGuestHw}_${sGuestOs}/" $ ln -s ../../mirror/simh-4.1/BIN/vax780 vax780-4.1 $ ls -laF vax780-4.1 lrwxrwxrwx 1 afberendsen None 36 Feb 19 15:26 vax780-4.1 -> ../../mirror/simh-4.1/BIN/vax780*
-
Windows 10 + cygwin
-
Build the guest (it is assumed that you are in the guest data directory)
-
For the pre-build image
-
Download pre-build image
$ wget --no-clobber https://pspodcasting.net/simh/42bsd.tar.gz --2023-02-24 14:33:47-- https://pspodcasting.net/simh/42bsd.tar.gz Resolving pspodcasting.net (pspodcasting.net)... 37.221.196.112 Connecting to pspodcasting.net (pspodcasting.net)|37.221.196.112|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 11197443 (11M) [application/octet-stream] Saving to: ‘42bsd.tar.gz’ 42bsd.tar.gz 100%[====================================================>] 10.68M 42.9MB/s in 0.2s 2023-02-24 14:33:48 (42.9 MB/s) - ‘42bsd.tar.gz’ saved [11197443/11197443] $
-
Unpack the guest package
-
For Windows+cygwin use:
7z x 42bsd.tar.gz tar -xv --strip-components=1 -f 42bsd.tar
-
For macOS+brew use
7zz x 42bsd.tar.gz tar -xv --strip-components=1 -f 42bsd.tar
-
For Linux use
7za x 42bsd.tar.gz tar -xv --strip-components=1 -f 42bsd.tar
Click here to see a run example👇
$ 7z x 42bsd.tar.gz 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, 11197443 bytes (11 MiB) Extracting archive: 42bsd.tar.gz -- Path = 42bsd.tar.gz Type = gzip Headers Size = 10 Everything is Ok Size: 456243200 Compressed: 11197443 $ tar -xv --strip-components=1 -f 42bsd.tar 42bsd/42bsd.ini 42bsd/boot42 42bsd/rq.dsk 42bsd/README $ ls -l total 902046 -rw-r--r--+ 1 afberendsen None 221 Jan 17 2022 42bsd.ini -rw-r--r--+ 1 afberendsen None 456243200 Jan 23 2022 42bsd.tar -rw-rw-rw-+ 1 afberendsen None 11197443 Jan 23 2022 42bsd.tar.gz -rw-r--r--+ 1 afberendsen None 2333 Jan 20 2022 README -rw-------+ 1 afberendsen None 6600 Jan 16 2022 boot42 -rw-r--r--+ 1 afberendsen None 456228864 Jan 23 2022 rq.dsk lrwxrwxrwx 1 afberendsen None 36 Feb 24 14:32 vax780-4.1 -> ../../mirror/simh-4.1/BIN/vax780.exe $
-
For Windows+cygwin use:
-
Download pre-build image
-
If using the tape image
-
Create a file named tInstall.ini. This SimH Initialization file wwill be used to set-up the initial installtion environment.
set rq0 ra81 at rq0 miniroot set rq1 ra81 at rq1 disk0010_ra81.dsk set rq1 dis set rq2 dis set rq3 dis set rp dis set lpt dis set rl dis set tq dis set tu dis att -r ts 4-2bsd.tap set tti 7b set tto 7b load -o boot42 0 d r10 9 d r11 0 expect "# " send "cd /dev\n"; continue expect "# " send "./MAKEDEV ra1\n"; continue expect "# " send "cd /\n"; continue expect "# " send "disk=ra1 type=ra81 tape=ts xtr\n"; continue expect "# " send "sync; syn'; sync; sync\n"; quit run 2
-
Create a file named dInstall.ini. This SimH initialization file will be used to set-up the disk OS.
set rq0 ra81 att rq0 disk0010_ra81.dsk set rq1 dis set rq2 dis set rq3 dis set rp dis set lpt dis set rl dis set tq dis set tu dis att -r ts 4-2bsd.tap set tti 7b set tto 7b load -o boot42 0 d r10 9 d r11 0 ; Create file system expect "# " send "disk=ra\n"; continue expect "# " send "name=ra0h;type=ra81\n"; continue expect "# " send "cd /dev\n"; continue expect "# " send "./MAKEDEV ts0;sync\n"; continue expect "# " send "cd /\n"; continue expect "# " send "newfs $name $type\n"; continue ; restore tape expect "# " send "mount /dev/$name /usr\n"; continue expect "# " send "cd /usr\n"; continue expect "# " send "mkdir sys\n"; continue expect "# " send "cd sys\n"; continue expect "# " send "mt rew\n"; continue expect "# " send "mt fsf 3\n"; continue expect "# " send "tar xpbf 20 /dev/rmt12\n"; continue expect "# " send "cd ..\n"; continue expect "# " send "mt fsf\n"; continue expect "# " send "tar xpbf 20 /dev/rmt12\n"; continue expect "# " send "cd /\n"; continue expect "# " send "chmod 755 / /usr /usr/sys\n"; continue expect "# " send "rm -rf sys\n"; continue expect "# " send "ln -s /usr/sys sys\n"; continue expect "# " send "umount /dev/$name\n"; continue expect "# " send "fsck -y /dev/r$name\n"; continue expect "# " send "cd /etc\n"; continue expect "# " send "cp fstab.ra81 fstab\n"; continue expect "# " send "newfs ra0g ra81\n"; continue expect "# " send "sync\n"; continue expect "# " send "reboot\n"; continue run 2 quit
-
Create a file named boot.ini. This SimH initialziation file will be used for normal guest sratup.
set rq0 ra81 att rq0 disk0010_ra81.dsk set rq1 dis set rq2 dis set rq3 dis set rp dis set lpt dis set rl dis set tq dis set tu dis ;att -r ts 4-2bsd.tap set tti 7b set tto 7b load -o boot42 0 d r10 9 d r11 0 run 2 quit
-
Create a file called boot42.uue, with following contents.
Click here to expand the contents👇
begin 400 boot42 M``#:'Q+0CP``!0!>T`&?!``!(-`!GP0@`2#0`9\$8``@PX_D%@4`CY@Y!0!0 MPX\```4`C^06!0!1+`!N`%!A*.]_$P``GP````!N%_]O$P``^P#O'````-"/ M```%`%X7[^S___\``-"/```%`%X7GU$`!0```,($7M_O21,``/L![RH.``#? M[T,3``#[`>\=#@``W^^+.```^P'O"!```-T`W^]\.```^P+OV08``-!0K?S5 M4!G/W5#[`>\"````!```#,(D7M"L!%O=(-^MX-U;^P/O7P4``-!06M%:(!(* MT:W@CP@!```3#=_OX1(``/L![V((``#=K>3?[]T2``#[`N^H#0``W:WDW0#= M6_L#[R(%``#14*WD$P,QD0#0K>2MW!$)T*W<4-:MW)1@TX__`P``K=P2[=VM MZ-_OGQ(``/L"[V<-``#=K>C=K=S=6_L#[^`$``#14*WH$E+`K>BMW-VM[-_O M>1(``/L"[ST-``#`CP```0"M[-1:$0O0K=Q0UJW<EBM%:K>P?[^4?K?0` MW:WTW^]+$@``^P+O"PT``/L`O?3[`.\($@``W^]`$@``^P'OG0<```0````, MT*P(6]2K?,$?K`10QA!0>`%04,&K=%#+@``RCP`$RX@`P8^,````6\N$`-U; M^P'OD@<``,&/C````%M:P1^L!%#'$%!1Q!!1PU%047@&45#`4%KWK`2K"+!J MJPK0J@BK%-T-P0Q:?L$86W[[`^]@$0``!```#,((7M"L!%L3!)5K$FK?[[T1 M``#[`>]>#```$5C66Y%K+Q/YT%M:$0:5:A,'UEJ1:B\2]9!JK?^4:MVL"-U; M^P+O:P$``-!0K?@3&I6M_Q,XW:P(W5#[`N\L____D*W_:M!:6Q$?W5O?[VX1 M``#[`N\$#```U%`$W:P(/`)^^P+O!/___Y5K$I;0K?A0!```#L(47M"L!%O0 MK`BM[,$$6UG5K`@8"=_O/A$``#%E_]&L"`H8#]"L"%K02JD4K?30K?10!-2M M^-`!K?3""JP(T`.M_!$9P`BM^'@(K?2M]-&L"*WT&0W"K?2L"->M_-6M_!3B MU:W\$@S=K`C?[_80```Q:O_#K?P-4-!`J12M]!(/W:P(W^_H$```,5'_UJW\ MT:W\`Q29T*W\4-%`[WPC``"M]!-&>`&M]%#!JW10RX``>`JM_%">0.]@$P`` MRX0`,H\`!,N(`-U;^P'O\04``'@*K?Q0GD#O01,``*WPT*W\4-"M]$#O,B,` M`'@*K?Q0GD#O)A,``*WPP@BM^,ZM^%!X4*P(4)I06M!*O?"M]!,#,7G_W:P( MW^]A$```,;[^```.P@Q>T*P(6]6L!!(#,;/^E;P$$_C!!%M9/*D&4,J/_P__ M_U#14(\`0```$PG?[S40```Q+/['$*D0K?@2"=_O-1```#$;_C*/``2M]-2M M_!%HUJWTT:WTCT`````90M"M_%#6K?S=4-U;^P+O;/[__W@!4%#!JW10RX`` MP8^,````6\N$`#*/``3+B`#=6_L![PD%``#!CXP```!;6M2M],$"6G[=K`3[ M`N\:````U5`3!#QJ4`3`$%K0K?A0UZWXU5`2C3'[_0``#M"L!%O0K`A:T`Y9 MT%E0UUG54!,0D6MJ$P,QW/V5BQ,$E8H2Y]`!4`0`"-6L#!,1W^^0#P``^P'O MP`D``,X!4`3"`ZP$&?;1K`0$&/#%CXP$``"L!%#`C_0F!0!0T%!;X0)@V="L M"*M\QX\`!```K`A0>`%04,&K=%#+@`#4RX@`U%`$```.P@1>U:P$&0[1K`0" M%`C[`.\G"P``!,(#K`09'=&L!`08%\6/C`0``*P$4,"/]"8%`%#04%O@`F`$ MS@%0!-#+A`!:U<N(`!4#,:``QX\`!```JWQ0>`%0RX``X0-K&L<"RX``?MU; M^P+O'_W__W@!4%#!JW10RX``P8^,````6\N$`#*/``3+B`#=6_L![[P#``#A M`VM%QX\`!```JWQ0Q(\`!```4,-0JWRM_,.M_(\`!```4,"K?%#14*L4&0W# MJWRK%%#!K?Q0RX@`PJW\RX@`U<N(`!0&,5[_U*W\P8^,````6U#!K?Q06M?+ MB`#6JWR8BEG06LN$`-!94`0`#-6L!!D%T`%0$0+44-&L!`(4!=`!41$"U%'2 M45'*45`3)="L#%O[`.\0"@``]E"\"-=;$PS0K`A0UJP(D6`*$N7#6ZP,4`3" M`ZP$&1W1K`0$&!?%CXP$``"L!%#`C_0F!0!0T%!:X`)@!,X!4`3I:OG@`VHA MT*P,RH@`T*P(RH0`W5K[`>_%`@``T%!;P`+*@`#06U`$P:P,JGQ0T5"J%!4' MPZI\JA2L#-"L#%L4`]10!,$#K`1^^P'O0?[__]"L"%'6K`CV4&'76Q+FT*P, M4`0`#-6L!!DKT:P$`A0ET*P,6Q$1T*P(4-:L")A@?OL![^`(``#06U#76]50 M$N;0K`Q0!,(#K`09'=&L!`08%\6/C`0``*P$4,"/]"8%`%#04%K@`F`$S@%0 M!.$!:OC0K`S*B`#0K`C*A`#=6OL![RH"``#04%O``LJ``-!;4`0`#L((7M7O M<0P``!,>U*W\Q8^,!```K?Q0E$#O3!\``/($K?SKU.]1#```U*WXQ8^,!``` MK?A0E4#O+A\``!,2\@2M^.G?[\<,``#[`>^``0``Q8^,!```K?A0P(_T)@4` M4-!06H@$8-"L!%L1!Y%K*!,&UEN5:Q+UD6LH$R#?[Z$,```1"\`061$<W^^@ M#```^P'OD`8``)1JS@%0!)2+WN\�``6=5I$^#=:=VL!/L"[W/\___54!/+ M]BBK_\./-!4%`%E0QA!0]U"J!IB+4,,P4*IPU:IP&0;1JG`'%0C?[UH,```1 MJ)&++!,(W^]A#```$9O=6_L![[$*``#04*IT$025BQ/ED6LI$O?=6OL![R4! M``#66Y5K$AO!`:P(4)AJ4<A04?91:M3*B`#4JGS!`ZWX4`3=6MU;^P+O:_G_ M_]!0K?P2`S%,_]6L"!,)W^\<#```,3?_W5K=K?S[`N_2^/__U*I\U,J(`,$! MK`A0R`A0F&I1R%!1]E%J$;(``,($7L(#K`09'M&L!`08&,6/C`0``*P$4,"/ M]"8%`%#04*W\X`)@!,X!4`3@`[W\"MVM_/L![YP```"4O?S44`0``-_OR`L` M`/L![P$````$``#=K`3?[\$+``#[`N]$!0``^P#O\O;__P0``-VL!-_OJPL` M`/L"[RH%```1_@`(T*P$6]T!W5LRJP90>`104-#@.!4%`%#[`F`$```(T*P$ M6]T"W5LRJP90>`104-#@.!4%`%#[`F`$```(T*P$6]U;,JL&4'@$4%#0X#P5 M!0!0^P%@!```"-"L!%O=6S*K!E!X!%!0T.!`%04`4/L!8`0````$```,P@1> MT*P$6]"K<%IX!5I0>`)04,&/``0!(%"M_)5*[V<O```2#="M_%#VH!A*[U@O M``#0JW10T4#O50L``(______$PO5JW09!M&K=`<5#=_O?0L``/L![_S^__^1 M2N\G+P``%!(4T*MT4'@%0.]`"P``4,4%4*MT$1+0JW10Q8^B`0``0.\("P`` MJW0$```(PB!>T*P$6]"K<*W\T,N``*WD>`6M_%!X`E!0P8\`!`$@4*W@WN_0 M+@``4-"M_%&506`2%-"MX%#>[[PN``!1T*W\4O:@&$)AT*W@4-./0````*`$ M$@[0$;W@T*W@4#*/`!"@)-[OD"X``%#0K?Q1D4%@%!(+FH^@K?C0(*WT$0HR MCZ(!K?C0%JWTQZWXK>2M\,>M^*WD4,2M^%##4*WDK>C'K?2MZ*WLQZWTK>A0 MQ*WT4,)0K>C0K>!0T*WPH"AX"*WL4,"MZ%#0K>!1T%"A%-VL"-VMX-U;^P/O M/P```-"MX%#3CX````"@!!/RTX\`0```H`03(-V@"-V@!-VMZ-VM[-VM\-_O M0PH``/L&[PL#``#.`5`$T,N(`%`$```/PA!>T*P$6]"K<%#00.^P"0``4-!` M[[0)``!8T%A9P(\`"@``6=#+A`!0[PD74*WXRX\`_O__RX0`K?3!K?3+B`!0 MP(__`0``4.\)%U"M_,F/```!`*WTK?#O`!6M^*WX$0_0K?A0UJWXR8\```"` M4(GTK?SMS@&H",[+B`"H$-"M\*@,T:P,`1(&T#F\"!$*T:P,`A($T#&\"`0` M````"-"L!%O0JW10T4#OLPD``(______$PO5JW09!M&K=`<5#=_ONPD``/L! M[]K\___0JW10>`5`[X@)``!0Q!-0T%"K=`0```[")%[0K`1;T,N(`*W<T*MP MK?S0RX``K>0RCV`"K?C0(*WTQZWXK>2M\,>M^*WD4,2M^%##4*WDK>C'K?2M MZ*WLQZWTK>A0Q*WT4,)0K>B5[Z@L```25I;OH"P``/<@[\WP#B`RC_0!6?59 M_?<)[[;P#B`RC_0!6?59_?<1[Z?P#B`RC_0!6?59_;"/`!#OL/`.(#*/]`%9 M]5G]$0@RC_0!6?59_>$'[WWP#B#P]ZW\[WSP#B`RC_0!6?59_=T!W5O[`N^U M````T%"MX-"/QOT3(%KWK?#O:O`.('@(K>Q0P*WH4/=0:O>MX'K.RX@`4,8" M4/=0>M&L"`$2!?<Y>A$#]S%Z,H_T`5GU6?V:C\A9]5G]X0?O#_`.(/&:C\A9 M]5G]X0[O`/`.("@R[P7P#B!^,N_R[PX@?MVMZ-VM[-VM\-_O8@@``/L&[\L` M``#.`5`$T<N(`*W<$Q'=RX@`W^]Y"```^P+OK@```-VMX/L![X@```#0RX@` M4`0````.PA1>T*P$6]#+A`!0[PD74*WXRX\`_O__RX0`K?3!K?3+B`!0P(__ M`0``4.\)%U!0P0%0K?S0CP!H`"!9>!6L"%#)CP```(!0K>S5K`@3">FM]`7B M&:WL`.\`%:WXK?@1#-"M^%#6K?C)K>Q0B=>M_!+OU(EX'*P(4,BM]%`$``_O M'`2L!%L3#W@"6U#(CP```(#@0&``(`0````.P@1>T*P$6\$(7%D1#M5:$@$$ MW5K[`>]!`0``F(M:T5HE$NJ8BUK16H]8````$@S=:?L![Z@````QGP#16H]D M````$QO16H]U````$Q+16H]O````$PG16H]X````$BS16H]O````$@70"%`1 M$=%:CW@````2!=`04!$#T`I0W5#=:?L"[XL````13]%:CV,````2"]UI^P'O MOP```!$[T5J/<P```!(;T&FM_-"M_%#6K?R88%H3(MU:^P'OFP```!'IT5J/ M1````!(.W0K=:?L"[ST```#``%G`!%DQ._\``,($7M2M_,.M_`=0>`)04,Y0 M4'A0K`10[P`$4%"80._-!@``?OL![T\```#R"*W\U@0```C5K`08#MTM^P'O M.````,ZL!*P$QZP(K`1;$PS=K`C=6_L"[]?____'K`BL!%#$K`A0PU"L!%"8 M0.^0!@``?OL![P$````$``[0K`1;,H\P=5G=(OL![V8!``#@!U`$UUD2[]5; M$@$$W2+[`>]0`0``T%!:W0#=(OL"[SH!``":6W[=(_L"[RX!``#16PH2"=T- M^P'OKO___]T`^P'OI?___]U:W2+[`N\,`0``!```"-T@^P'O!P$``.$'4//= M(?L![_H```#O``=06]%;#1(#T`I;W5O[`>]J____T%M0!``,T*P$6_L`[\'_ M___O``=06M%:CT$````9#-%:CUH````4`\`@6M%;K`03=Y&K_X]<$G#76]%: MCV$````9#M%:CWH````4!<(@6A%7T%I0T5`A$S_14"<31M%0*!,IT5`I$RK1 M4(]>````$RT1-=%0#1,]T5`C$S[14(]`````$T/V6HLQ?O^8CWM:$1:8CWU: M$1"8CWQ:$0J8CWY:$028CV!:T%I0T5`($PO14`H2OM`*6I2+!-=;T5NL!!D# M,43_,3W_T*P$6]T*^P'OE/[__S$Q_P``````VJP(K`0$``#;K`10!````"BL M#+P$O`@$````#,($7M"L!%O[`.]T`0``W0;=6_L"[T\```#0JW1:$2S.`<N( M`-T8W5O[`N\Y````U5`2\="/```!`*W\UZW\$OO=`-U;^P+O'0```-!:4-=: MU5`2RP0```C0K`1;W0;=6_L"[P$````$@`_"!%[0K`1;T*MP6M18Z5H',H_` M!%D1!3*/P`-9^P#O_P```.\`"^_Q$?P?4-%061,'T%GOY!'\'\[+B`#ORQ'\ M']&L"!H2$<X![[X1_!_0&^^C$?P?U%`$T:P(`1,&T:P(`A(4W:P(W8\`)`$@ MW5O[`^\R^?__$0G)`:P([W<1_!_[`.^:````RX_[____[VD1_!]7X0)7"?L` M[WD````1M.$.5U#56!(?W>]1#?P?W>]+$?P?W>]!$?P?W^_?`P``^P3OX/O_ M__L`[TD```#16`H2$=_OZ0,``/L![\?[___.`5`$UEC=&MU;^P+O#/___S$8 M_]58$PW?[\8#``#[`>^B^___]^\`$?P?K?XRK?Y0P,N(`%`$``#0">_7$/P? M!``(T._2$/P?6^$'6_4$``S"!%[0K`1;U*W\U%H1'Y%K.10VQ0JM_%"8BU'` M4%'#,%&M_!$?UEK66Q$9UEN8:U#14`D3]M%0(!/QT5`K$^C14"T3X9%K,!C% MU5H3!LZM_%`1!-"M_%`$````#M"L!%K0K`A9U%L1#9")BI")BI")BI2*UEO1 M6ZP,&>T$`````+P!`````%$`!0"8.04`"D)O;W0*`#H@`$)A9"!F;W)M870* M`"5D`"LE9``K)60`('-T87)T(#!X)7@*`%-H;W)T(')E860*`````0```&YU M;&P@<&%T:`H`)7,@;F]T(&9O=6YD"@!B;B!N96=A=&EV90H`8FX@;W9F("5$ M"@!B;B!V;VED("5$"@!B;B!V;VED("5$"@!N;W0@82!D:7)E8W1O<GD*`'IE M<F\@;&5N9W1H(&1I<F5C=&]R>0H`4V5E:R!N;W0@9G)O;2!B96=I;FYI;F<@ M;V8@9FEL90H`3F\@;6]R92!F:6QE('-L;W1S`$)A9"!D979I8V4*`%5N:VYO M=VX@9&5V:6-E"@!"860@=6YI="!S<&5C:69I97(*`$UI<W-I;F<@;V9F<V5T M('-P96-I9FEC871I;VX*`$-A;B=T('=R:71E(&9I;&5S('EE="XN(%-O<G)Y M"@!%>&ET(&-A;&QE9``E<PH`5')A<"`E;PH``(@5!0"0"@4```H%`/P)!0"+ M%04`!A(%`)P1!0#T$04`CA4%`)8,!0!0#`4`_`D%```````````````````` M`````````0```/____\```$@`"`!(&AP`&AT`'5P```````````F````8@`` M`/_______________W8```#_____`````&$```#_____________________ M+`$``/____]H<"!B860@;6EN;W(`9&ES:R!E<G)O<CH@8WEL/25D('1R86-K M/25D('-E8W0])60@9',])5@L(&5R,3TE6`H``````!L```!$````________ M_____________U(```!U<"!B860@=6YI=`!D:7-K(&5R<F]R.B!C>6P])60@ M=')A8VL])60@<V5C=#TE9"!C<S$])5@L(&5R,3TE6`H`<F5T=7)N960@)60* M`````#`Q,C,T-38W.#E!0D-$148`,#$R,S0U-C<X.4%"0T1%1@```'1A<&4@ M97)R;W(Z(&1S/25X+"!E<CTE>"P@;6)A<W(])7@`"@`@<F5C;W9E<F5D(&)Y *(')E=')Y"@```"5X ` end
-
Download the initial files
wget --quiet --mirror --no-parent --cut-dirs=6 --no-host-directories --reject="*.html*" https://www.tiffe.de/Robotron/PDP-VAX/VAX/4BSD/Distributions/4.2BSD/ for x in *.gz; do [[ $f == 42bsd.tar.gz ]] && continue gunzip -f $x done ls -l
Click here to see a run example👇
$ wget --quiet --mirror --no-parent --cut-dirs=6 --no-host-directories --reject="*.html*" https://www.tiffe.de/Robotron/PDP-VAX/VAX/4BSD/Distributions/4.2BSD/ ; rm index.html*;for x in *.gz; do [[ $f == 42bsd.tar.gz ]] && continue; echo $x; gunzip -f $x; done ; ls -l ingres.tar.gz miniroot.gz new.tar.gz rootdump.gz src.tar.gz srcsys.tar.gz stand.gz usr.tar.gz vfont.tar.gz total 960154 -rw-r--r--+ 1 afberendsen None 221 Jan 17 2022 42bsd.ini -rw-rw-rw-+ 1 afberendsen None 456243200 Jan 23 2022 42bsd.tar -rwxrwxrwx+ 1 afberendsen None 1234 Feb 24 15:45 BuildTapeFor4-2BSD.perl -rwxrwxrwx+ 1 afberendsen None 153 Feb 24 15:44 CreateTape.sh -rw-rw-rw-+ 1 afberendsen None 336 Jul 14 2017 FORMAT drwxrwxrwx+ 1 afberendsen None 0 Feb 24 16:10 Per_Andersson -rw-r--r--+ 1 afberendsen None 2333 Jan 20 2022 README -rw-------+ 1 afberendsen None 6600 Jan 16 2022 boot42 -rw-rw-rw-+ 1 afberendsen None 45271 Jul 14 2017 ingres.lst -rw-rw-rw-+ 1 afberendsen None 3891200 Jul 14 2017 ingres.tar -rw-rw-rw-+ 1 afberendsen None 2099200 Jul 14 2017 miniroot -rw-rw-rw-+ 1 afberendsen None 145819 Jul 14 2017 new.lst -rw-rw-rw-+ 1 afberendsen None 6062080 Jul 14 2017 new.tar -rw-rw-rw-+ 1 afberendsen None 53 Jul 14 2017 robots.txt -rw-rw-rw-+ 1 afberendsen None 3921920 Jul 14 2017 rootdump -rw-r--r--+ 1 afberendsen None 456228864 Feb 24 14:42 rq.dsk -rw-rw-rw-+ 1 afberendsen None 598 Feb 24 14:34 screen0.txt -rw-rw-rw-+ 1 afberendsen None 1231 Feb 24 14:35 screen1.txt -rw-rw-rw-+ 1 afberendsen None 10004 Feb 24 14:46 screen2.txt -rw-rw-rw-+ 1 afberendsen None 300227 Jul 14 2017 src.lst -rw-rw-rw-+ 1 afberendsen None 21411840 Jul 14 2017 src.tar -rw-rw-rw-+ 1 afberendsen None 51104 Jul 14 2017 srcsys.lst -rw-rw-rw-+ 1 afberendsen None 4515840 Jul 14 2017 srcsys.tar -rw-rw-rw-+ 1 afberendsen None 101888 Jul 14 2017 stand -rw-rw-rw-+ 1 afberendsen None 197602 Jul 14 2017 usr.lst -rw-rw-rw-+ 1 afberendsen None 21995520 Jul 14 2017 usr.tar lrwxrwxrwx 1 afberendsen None 51 Feb 24 15:04 vax-11-780_4-2bsd -> /cygdrive/m/Emulators/SimH/guests/vax-11-780_4-2bsd -rw-rw-rw-+ 1 afberendsen None 24611 Jul 14 2017 vfont.lst -rw-rw-rw-+ 1 afberendsen None 5888000 Jul 14 2017 vfont.tar $
-
Build the OS tape. Check the script contents at the end of this page.
./BuildTapeFor4-2BSD.perl > 4-2bsd.tap ; ls -l 4-2bsd.tap
Click here to see a run example👇
$ ./BuildTapeFor4-2BSD.perl > 4-2bsd.tap ls -l 4-2bsd.tap -rw-rw-rw-+ 1 afberendsen None 69943640 Feb 24 16:20 4-2bsd.tap
-
Create the boot record from the (above) boot42.uue
ls -l boot42.uue chmod a+w boot42 uudecode boot42.uue chmod a-wx boot42 ls -l boot42 file boot42
Click here to see a run example👇
$ ls -l boot42.uue ; chmod a+w boot42 ; uudecode boot42.uue ; chmod a-wx boot42 ; ls -l boot42 ; file boot42 -rw-rw-rw-+ 1 afberendsen None 9117 Feb 24 16:34 boot42.uue -r--------+ 1 afberendsen None 6600 Feb 24 16:38 boot42 boot42: data
-
Execute the install process
./vax780-4.1 tInstall.ini
Click here to see a run example👇
$ ./vax780-4.1 tInstall.ini VAX 11/780 simulator Open SIMH V4.1-0 Current git commit id: 4e159a04 /cygdrive/m/Emulators/SimH/guests/vax-11-780_4-2bsd/tInstall.ini-5> set rq1 dis %SIM-ERROR: RQ1 is attached or busy /cygdrive/m/Emulators/SimH/guests/vax-11-780_4-2bsd/tInstall.ini-13> att -r ts 4-2bsd.tap %SIM-INFO: TS: unit is read only %SIM-INFO: TS: Tape Image '4-2bsd.tap' scanned as SIMH format loading ra(0,0)boot Boot : ra(0,0)vmunix 199488+56036+51360 start 0x11a0 4.2 BSD UNIX #9: Wed Nov 2 16:00:29 PST 1983 real mem = 8384512 avail mem = 7073792 using 102 buffers containing 835584 bytes of memory mcr0 at tr1 mcr1 at tr2 uba0 at tr3 hk0 at uba0 csr 177440 vec 210, ipl 15 rk0 at hk0 slave 0 rk1 at hk0 slave 1 uda0 at uba0 csr 172150 vec 774, ipl 15 ra0 at uda0 slave 0 ra1 at uda0 slave 1 zs0 at uba0 csr 172520 vec 224, ipl 15 ts0 at zs0 slave 0 dz0 at uba0 csr 160100 vec 300, ipl 15 dz1 at uba0 csr 160110 vec 310, ipl 15 dz2 at uba0 csr 160120 vec 320, ipl 15 dz3 at uba0 csr 160130 vec 330, ipl 15 root on ra0 WARNING: should run interleaved swap with >= 2Mb erase ^?, kill ^U, intr ^C # cd /dev # ./MAKEDEV ra1 mknod: File exists mknod: File exists mknod: File exists mknod: File exists mknod: File exists mknod: File exists mknod: File exists mknod: File exists mknod: File exists mknod: File exists mknod: File exists mknod: File exists mknod: File exists mknod: File exists mknod: File exists mknod: File exists # cd / # disk=ra1 type=ra81 tape=ts xtr Build root file system Warning: 538 sector(s) in last cylinder unallocated /dev/rra1a: 15884 sectors in 23 cylinders of 14 tracks, 51 sectors 8.1Mb in 2 cyl groups (16 c/g, 5.85Mb/g, 1856 i/g) super-block backups (for fsck -b#) at: 32, 11520, Check the file system ** /dev/rra1a ** Last Mounted on ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3 - Check Connectivity ** Phase 4 - Check Reference Counts ** Phase 5 - Check Cyl groups 2 files, 9 used, 7420 free (20 frags, 925 blocks) Rewind tape Restore the dump image of the root Warning: ./lost+found: File exists ** /dev/rra1a ** Last Mounted on /a ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3 - Check Connectivity ** Phase 4 - Check Reference Counts ** Phase 5 - Check Cyl groups 313 files, 3568 used, 3861 free (21 frags, 480 blocks) Root filesystem extracted If this is a 780, update floppy If this is a 730, update the cassette # sync # sync # sync # sync # Goodbye $
-
Install the OS into the virtual hard disc
./vax780-4.1 dInstall.ini
Click here to see a run example👇
$ ./vax780-4.1 dInstall.ini VAX 11/780 simulator Open SIMH V4.1-0 Current git commit id: 4e159a04 /cygdrive/m/Emulators/SimH/guests/vax-11-780_4-2bsd/dInstall.ini-11> att -r ts 4-2bsd.tap %SIM-INFO: TS: unit is read only %SIM-INFO: TS: Tape Image '4-2bsd.tap' scanned as SIMH format loading ra(0,0)boot Boot : ra(0,0)vmunix 199488+56036+51360 start 0x11a0 4.2 BSD UNIX #9: Wed Nov 2 16:00:29 PST 1983 real mem = 8384512 avail mem = 7073792 using 102 buffers containing 835584 bytes of memory mcr0 at tr1 mcr1 at tr2 uba0 at tr3 hk0 at uba0 csr 177440 vec 210, ipl 15 rk0 at hk0 slave 0 rk1 at hk0 slave 1 uda0 at uba0 csr 172150 vec 774, ipl 15 ra0 at uda0 slave 0 ra1 at uda0 slave 1 zs0 at uba0 csr 172520 vec 224, ipl 15 ts0 at zs0 slave 0 dz0 at uba0 csr 160100 vec 300, ipl 15 dz1 at uba0 csr 160110 vec 310, ipl 15 dz2 at uba0 csr 160120 vec 320, ipl 15 dz3 at uba0 csr 160130 vec 330, ipl 15 root on ra0 WARNING: should run interleaved swap with >= 2Mb Automatic reboot in progress... Fri Feb 24 16:15:33 PST 1984 Can't open checklist file: /etc/fstab Automatic reboot failed... help! erase ^?, kill ^U, intr ^C # disk=ra # name=ra0h;type=ra81 # cd /dev # ./MAKEDEV ts0;sync # cd / # newfs $name $type Warning: 28 sector(s) in last cylinder unallocated /dev/rra0h: 759668 sectors in 1064 cylinders of 14 tracks, 51 sectors 389.0Mb in 67 cyl groups (16 c/g, 5.85Mb/g, 2048 i/g) super-block backups (for fsck -b#) at: 32, 11512, 22992, 34472, 45952, 57432, 68912, 80392, 91872, 103352, 114832, 126312, 137792, 149272, 160752, 172232, 182816, 194296, 205776, 217256, 228736, 240216, 251696, 263176, 274656, 286136, 297616, 309096, 320576, 332056, 343536, 355016, 365600, 377080, 388560, 400040, 411520, 423000, 434480, 445960, 457440, 468920, 480400, 491880, 503360, 514840, 526320, 537800, 548384, 559864, 571344, 582824, 594304, 605784, 617264, 628744, 640224, 651704, 663184, 674664, 686144, 697624, 709104, 720584, 731168, 742648, 754128, # mount /dev/$name /usr # cd /usr # mkdir sys # cd sys # mt rew # mt fsf 3 # tar xpbf 20 /dev/rmt12 # cd .. # mt fsf # tar xpbf 20 /dev/rmt12 # cd / # chmod 755 / /usr /usr/sys # rm -rf sys # ln -s /usr/sys sys # umount /dev/$name # fsck -y /dev/r$name ** /dev/rra0h ** Last Mounted on /usr ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3 - Check Connectivity ** Phase 4 - Check Reference Counts ** Phase 5 - Check Cyl groups 3735 files, 25550 used, 336310 free (166 frags, 84036 blocks) # cd /etc # cp fstab.ra81 fstab # newfs ra0g ra81 Warning: 30 sector(s) in last cylinder unallocated /dev/rra0g: 82080 sectors in 115 cylinders of 14 tracks, 51 sectors 42.0Mb in 8 cyl groups (16 c/g, 5.85Mb/g, 2048 i/g) super-block backups (for fsck -b#) at: 32, 11512, 22992, 34472, 45952, 57432, 68912, 80392, # sync # reboot syncing disks... done Reboot request failed, PC: 80021716 (ADDL2 #8,SP) Goodbye $
-
Test the new guest. Do not interrupt the guest with CTRL+E. This will corrupt the file systems.
./vax780-4.1 boot.ini
Click here to see a run example👇
$ ./vax780-4.1 boot.ini VAX 11/780 simulator Open SIMH V4.1-0 Current git commit id: 4e159a04 loading ra(0,0)boot Boot : ra(0,0)vmunix 199488+56036+51360 start 0x11a0 4.2 BSD UNIX #9: Wed Nov 2 16:00:29 PST 1983 real mem = 8384512 avail mem = 7073792 using 102 buffers containing 835584 bytes of memory mcr0 at tr1 mcr1 at tr2 uba0 at tr3 hk0 at uba0 csr 177440 vec 210, ipl 15 rk0 at hk0 slave 0 rk1 at hk0 slave 1 uda0 at uba0 csr 172150 vec 774, ipl 15 ra0 at uda0 slave 0 ra1 at uda0 slave 1 zs0 at uba0 csr 172520 vec 224, ipl 15 ts0 at zs0 slave 0 dz0 at uba0 csr 160100 vec 300, ipl 15 dz1 at uba0 csr 160110 vec 310, ipl 15 dz2 at uba0 csr 160120 vec 320, ipl 15 dz3 at uba0 csr 160130 vec 330, ipl 15 root on ra0 WARNING: should run interleaved swap with >= 2Mb Automatic reboot in progress... Fri Feb 24 16:18:17 PST 1984 /dev/ra0a: 326 files, 3569 used, 3860 free (20 frags, 480 blocks) /dev/rra0h: 3735 files, 25550 used, 336310 free (166 frags, 84036 blocks) /dev/rra0g: 2 files, 9 used, 77750 free (14 frags, 9717 blocks) Fri Feb 24 16:18:18 PST 1984 check quotas: done. local daemons: routed telnetd ftpd talkd syslog sendmail. preserving editor files clearing /tmp standard daemons: update cron accounting mail printer. starting network: rshd rexecd rlogind rwhod. Fri Feb 24 16:18:19 PST 1984 4.2 BSD UNIX (myname) login: root 4.2 BSD UNIX #9: Wed Nov 2 16:00:29 PST 1983 Would you like to play a game? You have mail. Don't login as root, use su myname# sync ; sync ; sync ; sync myname# CTRL+E Simulation stopped, PC: 8000162B (MTPR #0,#12) Goodbye $
-
Create a file named tInstall.ini. This SimH Initialization file wwill be used to set-up the initial installtion environment.
-
For the pre-build image
First look
Pre-packaged version
Click here to expand the contents👇
$ ./vax780-4.1 42bsd.ini VAX 11/780 simulator Open SIMH V4.1-0 Current git commit id: 4e159a04 /cygdrive/m/Emulators/SimH/guests/vax-11-780_4-2bsd/42bsd.ini-15> att dz -m 8888 %SIM-INFO: Listening on port 8888 Modem control activated loading ra(0,0)boot Boot : ra(0,0)vmunix 199488+56036+51360 start 0x11a0 4.2 BSD UNIX #9: Wed Nov 2 16:00:29 PST 1983 real mem = 8384512 avail mem = 7073792 using 102 buffers containing 835584 bytes of memory mcr0 at tr1 mcr1 at tr2 uba0 at tr3 hk0 at uba0 csr 177440 vec 210, ipl 15 rk0 at hk0 slave 0 rk1 at hk0 slave 1 uda0 at uba0 csr 172150 vec 774, ipl 15 ra0 at uda0 slave 0 ra1 at uda0 slave 1 zs0 at uba0 csr 172520 vec 224, ipl 15 ts0 at zs0 slave 0 dz0 at uba0 csr 160100 vec 300, ipl 15 root on ra0 WARNING: clock gained 32 days -- CHECK AND RESET THE DATE! WARNING: should run interleaved swap with >= 2Mb Automatic reboot in progress... Fri Feb 24 06:37:22 PST 1984 /dev/ra0a: 327 files, 3570 used, 3859 free (19 frags, 480 blocks) /dev/rra0h: 3746 files, 25838 used, 336022 free (162 frags, 83965 blocks) /dev/rra0g: 2 files, 9 used, 77750 free (14 frags, 9717 blocks) Fri Feb 24 06:37:23 PST 1984 check quotas: done. local daemons: routed telnetd ftpd talkd syslog sendmail. preserving editor files clearing /tmp standard daemons: update cron accounting mail printer. starting network: rshd rexecd rlogind rwhod. Fri Feb 24 06:37:24 PST 1984 4.2 BSD UNIX (myname) login: root Last login: Mon Jan 23 01:33:31 on console 4.2 BSD UNIX #9: Wed Nov 2 16:00:29 PST 1983 Would you like to play a game? You have mail. erase ^?, kill ^U, intr ^C # echo $PATH /etc:/usr/ucb:/bin:/usr/bin:. # ls /etc /usr/ucb /bin /usr/bin /bin: [ chmod du hostname mkdir pr size time adb cmp e kill mt ps strip tp ar cp echo ld mv pwd stty true as csh ed ln nice rm su wall awk date expr login nm rmail sync who cat dd false ls od rmdir tar write cc df grep mail pagesize sed tee chgrp diff hostid make passwd sh test /etc: ac fasthalt gettytab pac rshd accton flcopy group passwd rwhod analyze fsck halt printcap rxformat arff fstab hosts protocols sa bad144 fstab.hp hosts.equiv pstat savecore badsect fstab.hp400m htable quot services catman fstab.ra60 icheck quotacheck shutdown chk fstab.ra80 ifconfig quotaoff swapon chown fstab.ra81 implog quotaon syslog clri fstab.rb80 implogd rc syslog.conf comsat fstab.rk07 init rc.local syslog.pid config fstab.rm03 kgmon rdump talkd cron fstab.rm05 lpc reboot telnetd dcheck fstab.rm80 mkfs remote termcap diskpart fstab.rp06 mklost+found renice tftpd disktab fstab.rp07 mknod repquota trpt dmesg fstab.up mkproto restore ttys dump fstab.up160m motd rexecd ttytype dump.4.1 fstab.up300m mount rlogind tunefs dumpdates ftpd mtab rmt umount dumpfs ftpusers ncheck route update edquota gettable networks routed utmp fastboot getty newfs rrestore vipw /usr/bin: addbib cu fgrep lookbib ratfor split tk uuname ar11 dc file lorder refer struct touch uupoll at deroff find m4 rev style tr uusend basename diction graph man roffbib sum troff uusnap bc diff3 indxbib mesg ruusend t300 tsort uustat cal efl install neqn sleep t300s tty uux calendar egrep iostat nohup sort t450 uniq vplot cb enroll join nroff sortbib tabs units xget checkeq eqn learn plot spell tbl uucp xsend col ex lex prof spellin tc uudecode yacc comm explain lint ptx spellout tek uuencode crypt f77 look ranlib spline tip uulog /usr/ucb: Mail ex last pc script vi apply expand lastcomm pdx sendbug view apropos eyacc leave pi soelim vlp arcv f lisp pix strings vmstat at fed liszt pmerge symorder vpq biff finger lock print sysline vpr bugformat fmt lpq printenv tail vprint ccat fold lpr prmail talk vprm checknr fp lprm pti telnet vtroff chfn fpr lptest px tftp w chsh from lxref pxp trman wc clear fsplit mail pxref tset what colcrt ftp mailq quota u whatis colrm gcore man rcp ul whereis compact gprof mkstr reset uncompact which ctags grep more rlogin unexpand whoami dbx groups msgs rsh unifdef whois e head netstat ruptime uptime xstr edit help newaliases rwho users yes error indent page sccs vgrind # who ; whoami ; dmesg ; mount ; df ; iostat 5 5 ; vmstat 5 5 ; ps aux root console Feb 24 06:39 root Feb 24 06:40 4.2 BSD UNIX #9: Wed Nov 2 16:00:29 PST 1983 real mem = 8384512 avail mem = 7073792 using 102 buffers containing 835584 bytes of memory mcr0 at tr1 mcr1 at tr2 uba0 at tr3 hk0 at uba0 csr 177440 vec 210, ipl 15 rk0 at hk0 slave 0 rk1 at hk0 slave 1 uda0 at uba0 csr 172150 vec 774, ipl 15 ra0 at uda0 slave 0 ra1 at uda0 slave 1 zs0 at uba0 csr 172520 vec 224, ipl 15 ts0 at zs0 slave 0 dz0 at uba0 csr 160100 vec 300, ipl 15 root on ra0 WARNING: should run interleaved swap with >= 2Mb ra0g on /mnt ra0h on /usr Filesystem kbytes used avail capacity Mounted on /dev/ra0a 7429 3571 3115 53% / /dev/ra0g 38879 4 34987 0% /mnt /dev/ra0h 361860 25842 299832 8% /usr tty rk0 rk1 ra0 ra1 cpu tin tout bps tps msps bps tps msps bps tps msps bps tps msps us ni sy id 1 85 0 0 0.0 0 0 0.0 514 139 0.0 0 0 0.0 3 0 1 96 0 16 0 0 0.0 0 0 0.0 0 0 0.0 0 0 0.0 0 0 0100 0 16 0 0 0.0 0 0 0.0 0 0 0.0 0 0 0.0 0 0 0100 0 16 0 0 0.0 0 0 0.0 10 2 0.0 0 0 0.0 0 0 0100 0 16 0 0 0.0 0 0 0.0 0 0 0.0 0 0 0.0 0 0 0100 procs memory page disk faults cpu r b w avm fre re at pi po fr de sr r0 r1 r0 r1 in sy cs us sy id 0 0 0 226 6295 0 1 5 0 0 0 0 0 0111 0 291 263 214 3 1 96 0 0 0 230 6293 0 0 0 0 0 0 0 0 0 0 0 31 164 2 0 0100 0 0 0 230 6292 0 0 0 0 0 0 0 0 0 0 0 16 54 0 0 0100 0 0 0 230 6292 0 0 0 0 0 0 0 0 0 0 0 10 18 0 0 0100 Fri Feb 24 06:41:00 PST 1984 0 0 0 143 6292 0 0 0 0 0 0 0 0 0 2 0 16 20 3 0 0100 USER PID %CPU %MEM SZ RSS TT STAT TIME COMMAND root 1 0.0 0.2 31 10 ? S 0:00 init root 103 0.0 0.2 32 10 01 I 0:00 - 8 (getty) root 107 0.0 0.2 32 10 05 I 0:00 - 8 (getty) root 102 0.0 0.2 32 10 00 I 0:00 - 8 (getty) root 104 0.0 0.2 32 10 02 I 0:00 - 8 (getty) daemon 51 0.0 0.4 64 24 ? I 0:00 /etc/syslog root 109 0.0 0.2 32 10 07 I 0:00 - 8 (getty) root 67 0.0 0.1 22 4 ? S 0:00 /etc/update root 101 0.0 0.4 43 26 co S 0:00 -sh (sh) root 2 0.0 0.1 800 0 ? D 0:00 pagedaemon root 97 0.0 0.4 81 28 ? I 0:00 /usr/lib/lpd root 0 0.0 0.1 0 0 ? D 0:00 swapper root 58 0.0 1.5 163 104 ? I 0:00 /usr/lib/sendmail -bd -q1h root 55 0.0 0.5 65 36 ? S 0:00 /etc/routed root 42 0.0 0.3 77 15 ? I 0:00 /etc/ftpd root 41 0.0 0.3 57 15 ? I 0:00 /etc/telnetd root 87 0.0 0.3 57 18 ? I 0:00 /etc/rshd root 108 0.0 0.2 32 10 06 I 0:00 - 8 (getty) root 75 0.0 0.3 51 15 ? S 0:00 /etc/comsat root 106 0.0 0.2 32 10 04 I 0:00 - 8 (getty) root 105 0.0 0.2 32 10 03 I 0:00 - 8 (getty) root 95 0.0 0.3 52 14 ? I 0:00 /etc/rlogind root 70 0.0 0.2 31 11 ? S 0:00 /etc/cron root 89 0.0 0.3 55 14 ? I 0:00 /etc/rexecd root 130 0.0 1.1 141 79 co R 0:00 ps aux # /etc/shutdown -h +1 Shutdown at 06:42 (in 1 minute) [pid 134] *** System shutdown message from root@myname *** System going down in 60 seconds # *** FINAL System shutdown message from root@myname *** System going down in 30 seconds *** FINAL System shutdown message from root@myname *** System going down IMMEDIATELY System shutdown time has arrived syncing disks... done halting (in tight loop); hit ^P HALT Infinite loop, PC: 800216DA (BRB 800216DA) sim> q Goodbye $
Tape build version
Click here to expand the contents👇
$ ./vax780-4.1 boot.ini VAX 11/780 simulator Open SIMH V4.1-0 Current git commit id: 4e159a04 loading ra(0,0)boot Boot : ra(0,0)vmunix 199488+56036+51360 start 0x11a0 4.2 BSD UNIX #9: Wed Nov 2 16:00:29 PST 1983 real mem = 8384512 avail mem = 7073792 using 102 buffers containing 835584 bytes of memory mcr0 at tr1 mcr1 at tr2 uba0 at tr3 hk0 at uba0 csr 177440 vec 210, ipl 15 rk0 at hk0 slave 0 rk1 at hk0 slave 1 uda0 at uba0 csr 172150 vec 774, ipl 15 ra0 at uda0 slave 0 ra1 at uda0 slave 1 zs0 at uba0 csr 172520 vec 224, ipl 15 ts0 at zs0 slave 0 dz0 at uba0 csr 160100 vec 300, ipl 15 dz1 at uba0 csr 160110 vec 310, ipl 15 dz2 at uba0 csr 160120 vec 320, ipl 15 dz3 at uba0 csr 160130 vec 330, ipl 15 root on ra0 WARNING: should run interleaved swap with >= 2Mb Automatic reboot in progress... Fri Feb 24 16:22:28 PST 1984 /dev/ra0a: 327 files, 3570 used, 3859 free (19 frags, 480 blocks) /dev/rra0h: 3737 files, 25552 used, 336308 free (164 frags, 84036 blocks) /dev/rra0g: 2 files, 9 used, 77750 free (14 frags, 9717 blocks) Fri Feb 24 16:22:29 PST 1984 check quotas: done. local daemons: routed telnetd ftpd talkd syslog sendmail. preserving editor files clearing /tmp standard daemons: update cron accounting mail printer. starting network: rshd rexecd rlogind rwhod. Fri Feb 24 16:22:30 PST 1984 4.2 BSD UNIX (myname) login: root 4.2 BSD UNIX #9: Wed Nov 2 16:00:29 PST 1983 Would you like to play a game? You have mail. Don't login as root, use su myname# who ; whoami ; dmesg ; mount ; df ; iostat 5 5 ; vmstat 5 5 ; ps aux root console Feb 24 16:22 root Feb 24 16:23 4.2 BSD UNIX #9: Wed Nov 2 16:00:29 PST 1983 real mem = 8384512 avail mem = 7073792 using 102 buffers containing 835584 bytes of memory mcr0 at tr1 mcr1 at tr2 uba0 at tr3 hk0 at uba0 csr 177440 vec 210, ipl 15 rk0 at hk0 slave 0 rk1 at hk0 slave 1 uda0 at uba0 csr 172150 vec 774, ipl 15 ra0 at uda0 slave 0 ra1 at uda0 slave 1 zs0 at uba0 csr 172520 vec 224, ipl 15 ts0 at zs0 slave 0 dz0 at uba0 csr 160100 vec 300, ipl 15 dz1 at uba0 csr 160110 vec 310, ipl 15 dz2 at uba0 csr 160120 vec 320, ipl 15 dz3 at uba0 csr 160130 vec 330, ipl 15 root on ra0 WARNING: should run interleaved swap with >= 2Mb ra0g on /mnt ra0h on /usr Filesystem kbytes used avail capacity Mounted on /dev/ra0a 7429 3571 3115 53% / /dev/ra0g 38879 4 34987 0% /mnt /dev/ra0h 361860 25557 300117 8% /usr tty rk0 rk1 ra0 ra1 cpu tin tout bps tps msps bps tps msps bps tps msps bps tps msps us ni sy id 2 67 0 0 0.0 0 0 0.0 717 204 0.0 0 0 0.0 5 0 2 93 0 16 0 0 0.0 0 0 0.0 0 0 0.0 0 0 0.0 0 0 0100 0 16 0 0 0.0 0 0 0.0 0 0 0.0 0 0 0.0 0 0 0100 0 16 0 0 0.0 0 0 0.0 0 0 0.0 0 0 0.0 0 0 0100 0 16 0 0 0.0 0 0 0.0 0 0 0.0 0 0 0.0 0 0 0100 procs memory page disk faults cpu r b w avm fre re at pi po fr de sr r0 r1 r0 r1 in sy cs us sy id 0 0 0 96 6245 0 2 11 0 0 0 0 0 0127 0 301 339 242 3 1 96 0 0 0 211 6242 0 0 0 0 0 0 0 0 0 0 0 31 166 2 0 0100 0 0 0 276 6242 0 0 0 0 0 0 0 0 0 2 0 16 55 0 0 0100 0 0 0 298 6242 0 0 0 0 0 0 0 0 0 0 0 12 19 0 0 0100 0 0 0 187 6242 0 0 0 0 0 0 0 0 0 0 0 10 7 0 0 0100 USER PID %CPU %MEM SZ RSS TT STAT TIME COMMAND root 101 0.0 1.1 111 75 co S 0:00 -csh (csh) root 1 0.0 0.2 31 10 ? I 0:00 init root 104 0.0 0.2 32 10 02 I 0:00 - 8 (getty) root 102 0.0 0.2 32 10 00 I 0:00 - 8 (getty) root 106 0.0 0.2 32 10 04 I 0:00 - 8 (getty) root 108 0.0 0.2 32 10 06 I 0:00 - 8 (getty) root 67 0.0 0.1 22 4 ? S 0:00 /etc/update root 2 0.0 0.1 800 0 ? D 0:00 pagedaemon root 44 0.0 0.5 65 36 ? S 0:00 /etc/routed root 0 0.0 0.1 0 0 ? D 0:00 swapper root 103 0.0 0.2 32 10 01 I 0:00 - 8 (getty) root 75 0.0 0.3 51 15 ? S 0:00 /etc/comsat root 94 0.0 0.3 52 14 ? I 0:00 /etc/rlogind root 61 0.0 1.5 163 104 ? I 0:00 /usr/lib/sendmail -bd -q1h root 43 0.0 0.3 77 15 ? I 0:00 /etc/ftpd daemon 52 0.0 0.4 64 24 ? I 0:00 /etc/syslog root 109 0.0 0.2 32 10 07 I 0:00 - 8 (getty) root 39 0.0 0.3 57 15 ? I 0:00 /etc/telnetd root 107 0.0 0.2 32 10 05 I 0:00 - 8 (getty) root 70 0.0 0.2 31 11 ? I 0:00 /etc/cron root 96 0.0 0.4 81 28 ? I 0:00 /usr/lib/lpd root 105 0.0 0.2 32 10 03 I 0:00 - 8 (getty) root 90 0.0 0.3 55 14 ? I 0:00 /etc/rexecd root 89 0.0 0.3 57 18 ? I 0:00 /etc/rshd root 120 0.0 1.1 141 79 co R 0:00 ps aux myname# shutdown -h +1 Shutdown at 16:25 (in 1 minute) [pid 127] myname# *** System shutdown message from root@myname *** System going down in 60 seconds *** FINAL System shutdown message from root@myname *** System going down in 30 seconds *** FINAL System shutdown message from root@myname *** System going down IMMEDIATELY System shutdown time has arrived syncing disks... done halting (in tight loop); hit ^P HALT Infinite loop, PC: 800216DA (BRB 800216DA) Goodbye $
Supporting scripts
Build environment
Has to be executed as follows:$ . ./SimH-4-2bsd_vax-11-780.sh
.
SimH-4-2bsd_vax-11-780.sh
#!/bin/bash [[ "$(uname -s)" == CYGWIN* ]] && sRootEmulatorsDirectory=/cygdrive/m/ [[ "$(uname -s)" == Linux* ]] && sRootEmulatorsDirectory=/Volumes/vol000/ [[ "$(uname -s)" == Darwin* ]] && sRootEmulatorsDirectory=~/Desktop/ sEmuName=SimH sGuestHw=vax-11-780 sGuestOs=4-2bsd export sRootEmulatorsDirectory sEmuName sGuestHw sGuestOs mkdir -p "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/" mkdir -p "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/mirror/" mkdir -p "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/guests/" mkdir -p "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/guests/${sGuestHw}_${sGuestOs}/" mkdir -p "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/guests/by-platform/" mkdir -p "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/guests/by-platform/${sGuestHw}/" mkdir -p "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/guests/by-os/" mkdir -p "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/guests/by-os/${sGuestOs}/" ( cd "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/guests/by-platform/${sGuestHw}/"; rm "${sGuestOs}"; ln -sf "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/guests/${sGuestHw}_${sGuestOs}" "${sGuestOs}") ( cd "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/guests/by-os/${sGuestOs}" ; rm "${sGuestHw}"; ln -sf "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/guests/${sGuestHw}_${sGuestOs}" "${sGuestHw}" ) cd "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/mirror/" if [[ -d simh-4.1 ]]; then ( cd simh-4.1 && git fetch --all -v ) else git clone https://github.com/open-simh/simh.git simh-4.1 fi cd simh-4.1 && make vax780 && ./BIN/vax780 cd "${sRootEmulatorsDirectory}/Emulators/${sEmuName}/guests/${sGuestHw}_${sGuestOs}/" if [[ "$(uname -s)" == CYGWIN* ]]; then ln -sf ../../mirror/simh-4.1/BIN/vax780.exe vax780-4.1 else ln -sf ../../mirror/simh-4.1/BIN/vax780 vax780-4.1 fi ./vax780-4.1 ls -laF pwd
Create tape file
.
BuildTapeFor4-2BSD.perl
#!/usr/bin/perl -w use strict; add_file("stand", 512); add_file("miniroot", 10240); add_file("rootdump", 10240); add_file("srcsys.tar", 10240); add_file("usr.tar", 10240); add_file("vfont.tar", 10240); add_file("src.tar", 10240); add_file("new.tar", 10240); add_file("ingres.tar", 10240); end_file(); sub end_file { print "\x00\x00\x00\x00"; } sub add_file { my($filename, $blocksize) = @_; my($block, $bytes_read, $length); open(FILE, $filename) || die("Can't open $filename: $!"); while($bytes_read = read(FILE, $block, $blocksize)) { if($bytes_read < $blocksize) { $block .= "\x00" x ($blocksize - $bytes_read); $bytes_read = $blocksize; } $length = pack("V", $bytes_read); print $length, $block, $length; } close(FILE); end_file(); }
Comments
Post a Comment