Installing 1 BSD on SIMH

From Computer History Wiki
Revision as of 03:50, 15 November 2026 by Zaphod (talk | contribs) (added a setup for 1BSD)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

This is my guide to installing 1 BSD on SIMH.

(The installation of this system requires a preinstalled UNIX system, the version it was written to be installed onto of Unix Sixth Edition; see Installing Unix Sixth Edition for an explanation of how to get that set up)

my ini file:

set CPU 11/70
set CPU 4M
set CPU idle
set CLK 60hz
set PCLK disabled
set PTR enabled
attach PTR ptr.ptap
set PTP enabled
attach PTP ptp.ptap
set TTI 7p
set TTO 7p
set TDC disabled
set CR disabled
set LPT enabled
attach LPT lpt.txt
set DLI disabled
set DLO disabled
set DCI disabled
set DCO disabled
set DZ disabled
set VH disabled
set DH disabled
set RC disabled
set RF disabled
set RK disabled
set RL disabled
set HK disabled  
set RX disabled
set RY disabled
set RP enabled
set RP0 rp04
attach RP0 rp04-1.dsk
set RP1 disabled
set RP2 disabled
set RP3 disabled
set RP4 disabled
set RP5 disabled
set RP6 disabled
set RP7 disabled
set RR disabled
set RS disabled
set RQ disabled
set RQB disabled
set RQC disabled
set RQD disabled
set TC enabled
attach TC0 tu56.dta
set TC1 disabled
set TC2 disabled
set TC3 disabled
set TC4 disabled
set TC5 disabled
set TC6 disabled
set TC7 disabled
set TM enabled
attach TM0 tu10.tap
set TM1 disabled
set TM2 disabled
set TM3 disabled
set TM4 disabled
set TM5 disabled
set TM6 disabled
set TM7 disabled
set TS disabled
set TQ disabled
set TU disabled
set TA disabled
set VT disabled
set XQ disabled
set XQB disabled
set XU disabled
set XUB disabled
set KG disabled
set DMC disabled
set DUP disabled
set DPV disabled
set KDP disabled
set KE disabled
set CH disabled
set NG disabled
set DAZ disabled
set TV disabled
set MB disabled

This is a very pruned configuration with an excessively large storage unit but that is the setup I installed my v6 UNIX system as)

You'll need a tape image, from the files found on the TUHS archive.  I have a pre-made tape [1]. I made that tape by using SIMH simtools program rawtap to package the tarball from TUHS into a magtape, then used tar in Unix Seventh Edition to extract the tree into a v7 UNIX guest, then used v7 tp to create a magtape of that tree that is what I have uploaded.

You'll also need the DECTape I created which is here [2].  That tape contains ar-new.c which is the ar.c file from 2.79BSD source from TUHS, but I had to add the functions for xtol and mktemps into it so it doesn't look for them when compiling on v6 unix, the sources for those functions are also added to it from the 2.79BSD source tree, it compiles cleanly on v6 with no additional requirements and has changes over v6 ar that allows you to extract the cont.a files on the 1BSD tape.  As far as I can tell the changes were in a patchset released to UCB from Bell Labs that I have no copy of so I used a future version that includes the changes.

With that all done now boot off the rp04(or any Unix system you already have installed) with a 'boot rp0' from inside SIMH.

I chose to create /usr/ucb for my directory to extract the tape to you could extract wherever

mkdir /usr/ucb
chdir /usr/ucb
mkdir ar
chdir ar
tp x (now is worth noting if you are using your own v6 UNIX install you might get an error here:

Tape open error
END

if that is the case you must have /dev/tapx existing for tp to work(you can ln /dev/tap0 /dev/tapx)
then that should work and now you should have ar-new.c in /usr/ucb/ar directory)

then run cc -O -s ar-new.c

now a.out is a working ar file that can extract cont.a from 1BSD, I chose to call it ar.bsd in /usr/bin you can place it where and whatever you wish to call it

with that done now we can extract the 1BSD tape

chdir /usr/ucb
tp xm setup (instructions say tp xm ./setup but that doesn't work with my tape but tp xm setup does)
./setup
tp xm

and with that done you now have the 1BSD tree extracted fully into your v6 UNIX


then you can go ahead and copy the files into your directories as you wish, I choose to use /usr/bin and /usr/lib but you can do /bin and /lib or wherever else you may wish

for example of how to use the new ar and get the files go to say the /usr/ucb/bin directory


# chdir /usr/ucb/bin
# ls
READ_ME 
cont.a

then run ar.bsd x cont.a

when that completes you can run rm cont.a

# rm cont.a
cont.a: 110664 mode

type y

then you should now have

# ls
Print          crazy          last           pix            squash
READ_ME        cxref          linerm         pq             ssp
ashell         dates          list           print          strip
biorhythm      double         lnall          procp          syswatch
block          expand         lntree         pss            teco
box            eyacc          lock           public         ticktock
cat3a          file           ls             pxref          toc
chownall       fix            makeTtyn       repeat         transcribe
clock          fixit          man            reset          tset
colcrt         fold           manwhere       rmtree         ttytype
collpr         froc           mkstr          rout           uhav
colrm          funny          mvall          sess           version
continue       gres           nm             sethome        watch
cpall          head           number         sh             wc
cptree         iul            pascals        size           where
cr3            l              pcc            soelim         whoison

those are the precompiled binaries of 1BSD, there is also a pascal compiler, libraries, trek game, man page, source files each directory has a READ_ME which I recommend you read through and you can choose what you want to add to your system and where you wish to add them.

When you are done all this you will have a 1BSD system on top of a V6 Unix system just like Bill Joy was planning when he shipped out 1BSD tapes back in 1977.  there is no clean installation and the boot up will still be v6 UNIX but the added tools are a nice improvement of v6 UNIX, the text editor ex is also the clear predecessor of vi which is a nice quality of life step of over ed in my opinion.

Now we can boot 1BSD
set CPU 11/70
set CPU 4M
set CPU idle
set CLK 60hz
set PCLK disabled
set PTR enabled
attach PTR ptr.ptap
set PTP enabled
attach PTP ptp.ptap
set TTI 7p
set TTO 7p
set TDC disabled
set CR disabled
set LPT enabled
attach LPT lpt.txt
set DLI disabled
set DLO disabled
set DCI disabled
set DCO disabled
set DZ disabled
set VH disabled
set DH disabled
set RC disabled
set RF disabled
set RK disabled
set RL disabled
set HK disabled  
set RX disabled
set RY disabled
set RP enabled
set RP0 rp04
attach RP0 rp04-1.dsk
set RP1 disabled
set RP2 disabled
set RP3 disabled
set RP4 disabled
set RP5 disabled
set RP6 disabled
set RP7 disabled
set RR disabled
set RS disabled
set RQ disabled
set RQB disabled
set RQC disabled
set RQD disabled
set TC enabled
set TC1 disabled
set TC2 disabled
set TC3 disabled
set TC4 disabled
set TC5 disabled
set TC6 disabled
set TC7 disabled
set TM enabled
set TM1 disabled
set TM2 disabled
set TM3 disabled
set TM4 disabled
set TM5 disabled
set TM6 disabled
set TM7 disabled
set TS disabled
set TQ disabled
set TU disabled
set TA disabled
set VT disabled
set XQ disabled
set XQB disabled
set XU disabled
set XUB disabled
set KG disabled
set DMC disabled
set DUP disabled
set DPV disabled
set KDP disabled
set KE disabled
set CH disabled
set NG disabled
set DAZ disabled
set TV disabled
set MB disabled

then run boot rp0

and now you can have 1BSD which as far as I can tell had not been documented before this, enjoy.