SYSIII comes alive on SIMH’s VAX 11/780

Ok, good news, I got it to boot! The bad news is that it’s kind of complicated… First you need a working UNIX/32V machine. And what’s worse is that UNIX SYSIII is not ‘free/shareware’ or anything like that. You need a license to run it.

It cost $100 to get one.

But they don’t sell it anymore.

So this is for the few people with a SYSIII license.

Anyways, to get the jump on SYSIII you need to add a second disk to a working UNIX/32V install. So after a while I managed to work out getting a second HP disk online on 32v, formatting it, and restoring a bare SYSIII install… (Nao’s 32v tape image has support for more then one HP disk, it was just a matter of figuring out the
major/minor for the 2nd disk (0/8,0/14)).

From the extracted cpio’s I took the following files (after looking at
the source of cmd/init.c):

/etc/init
/etc/inittab
/bin/sh
/bin/ls
/bin/env

Then I just created the following device files:

crw-rw-rw- 1 console console 0, 0 Jun 23 09:24 console
crw-rw-rw- 1 console console 3, 0 Jun 26 1979 null
brw-rw-rw- 1 console console 0, 0 Jun 26 1979 rp0a
brw-rw-rw- 1 console console 0, 7 Jun 26 1979 rp0h
brw-rw-rw- 1 console console 0, 8 Jun 26 1979 rp1a
brw-rw-rw- 1 console console 0, 14 Jun 26 1979 rp1h

And fired it up!

——–

VAX780 simulator V3.8-1

$$ unixhpht

UNIX/3.0.1: unixhpht
real mem = 8323072
avail mem = 8207872

# ls
bin
dev
etc
unixhpht
# cd bin
# ls
env
ls
sh
# cd /
# ls
bin
dev
etc
unixhpht
# cd dev
# ls -l
/etc/passwd file cannot be opened for reading#
#
# ls>/etc/passwd
# ls -l
/etc/group file cannot be opened for reading#
#
# ls>/etc/group
# ls -l
total 0
crw-rw-rw- 1 console console 0, 0 Jun 23 09:24 console
crw-rw-rw- 1 console console 3, 0 Jun 26 1979 null
brw-rw-rw- 1 console console 0, 0 Jun 26 1979 rp0a
brw-rw-rw- 1 console console 0, 7 Jun 26 1979 rp0h
brw-rw-rw- 1 console console 0, 8 Jun 26 1979 rp1a
brw-rw-rw- 1 console console 0, 14 Jun 26 1979 rp1h
#
——–

So now the remaining thing to do is to add another HP disk, format it
under SYSIII, and restore onto it… I wish I could share more of my
work, but I figure this will help someone down the road who wants to
venture down the SYSIII on the 11/780.

BSD RENO on SIMH’s microvax DZV11 vs DHQ11

I got this note over on gunkies.org from Lei Wu:

I use the following code to replace the original dz configration. set dz disable set vh enable set vh0 normal set vh0 modem set vh0 hangup att vh 2311

After this, when the vax emulator run up, you can see some messeges on the process of booting like this

dhu0 at uba0 csr 160440 vec 300, ipl 14
qe0 at uba0 csr 174440 vec 764, ipl 15
qe0: delqa, hardware address 08:00:2b:aa:bb:cc

this mean that the hardware is recognized by virtual machine.

next step, login as root, to make dh11 device node in /dev .

sh /dev/MAKEDEV dhu0

this command will make ttyS0 – ttyS15 device node.

now, you need to modify /etc/ttys to add those termial driver to autoload when system startup next time. the parameters is same with tty01-tty07 in the original ttys file.

At last you could reboot and telnet localhost on port 2311.

you will see the prompt, but there will emerge some flaw (some messed characters). but you can neglect this, and continue input your username and password. then you will get a shell.

Now, I don’t know the reason of those messed characters. Any one can continue to explore.

So that’s a ray of sunshine for the other UNIX/BSD’s that predate RENO that can boot on the MicroVAX II… Hopefully the drivers may work on the 11/780 to help some older OS’s whose support under the dz isn’t whole enough to work….

Tera Term ‘fix’ for all *BSD/*UNIX

I’ll have to redo a bunch of stuff, to fix the distributions, and I think there is a ‘bug’ as it were in the installer that if you pick a different directory name, it’ll screw up… I need to test some more.

Anyways to fix the arrow keys, you need to load a keyboard binding into the emulator. If you go to the Tera Term site, and install it, you can copy out the file IBMKEYB.CNF and put it in the various “program files\******” directory for each emulator. Then alter the ‘attach a pty’ shortcut to go from this:

“C:\Program Files (x86)\bsd42\ttermpro.exe” localhost 42323

To this:

“C:\Program Files (x86)\bsd42\ttermpro.exe” localhost:42323 /K=”.\IBMKEYB.CNF”

Oh it’s also comming up for the 40th birthday of UNIX! I’m going to probably package up all the research editions that I can find into easy to install pacakages.. I figure it’d make all these releases more accessable much like the v1 unix package that I’ve done. If anyone can submit any good product links from the pre SYSV days that’d be awesome. It’s too bad that SYSVr2 or prior cannot be released into the wild.. I’d hardly call them ‘competitive’ in this day & age… Heck even SYSVr4 isn’t but sadly the lawyers say otherwise.

Packages so far on Uwisc 4.3BSD

I’ve been compiling quite a bit of stuff.. Looking back it was something I intended to do back in October of 2007… Well no time like the present then! I’ve done my best to include all the relevant bits for each of the following packages. It’s entirely possible I’ve missed stuff, so feel free to re-build the stuff as you wish. Some of the packages require you to build them with GCC as the default CC won’t work. However if you are going to build it yourself you won’t be able to jump to gcc 2.7.2.2 as it requires gperf which in turn requires a working c++ compiler. So far here are the following packages:

bash-1.14.7
bash-2.0
binutils-2.8.1
bison-1.25
flex-2.5.4
gcc-1.42
gcc-2.4.5
gcc-2.5.8
gcc-2.7.2.2
gdb.3.1
gzip-1.2.4
hack.1.0.3
irc2.8.21
ircii-4.4
lynx-2.8.2
make-3.75
pine-3.87
screen-3.7.1
unzip522

All of these can be downloaded from here. I’m keeping all the source code (unaltered) in tap format for the SIMH emulator right here.

To get the C compilers going I had to build gcc 1.42 with the system compiler (cc/PCC) then use that version of GCC to build the next version. Once I had gcc 2.5.8 building, then I was able to build binutils 2.8.1 without issues, then rebuild gcc 2.5.8 to use binutils instead of the default system assembler so that I could build lynx and it wouldn’t barf because of the massive switch statement…

And no, -J didn’t help.

Speaking of lynx the search ability is broken because the function simply isn’t in 4.3 BSD (bsearch), and for pine, I had to make a fake tmpfile function that uses the /tmp/pinebox directory.

The gcc 2.5.8 package includes the C++ components, and I’m pretty sure I did with 2.7.2.2 as well. I’m not sure if GCC 3.x kept the VAX cpu so I haven’t pushed forward, but seeing that the cc1 exe is over 1mb it doesn’t seem worth it to push ahead.

I’ll have to see about including more games. The selection in this 4.3 release is kind of weak,

aardvark* boggle* hack@ monop* snake*adventure* ching* hangman* quiz* snscore*backgammon* cribbage* hunt* robots* teachgammon*battlestar* doctor* lib/ rogue* trek*bogdict* fortune* mille* sail* zork*

I’ll have to see what’s missing from where.. Also I notice that the arrow key bindings in terraterm are not working… I’ll have to dive into that as well. It may end up with a new re-relase of the emulator or a patch thing. I’ll have to see.

I should add a quick note on how to unpack these tap files. First you will need bzip2 on your native pc. You should be able to get one here.

Now just uncompress the file..

C:\Program Files (x86)\uwiscbsd>bzip2 -d lynx-2.8.2.binary.BSD-4.3.Uwisc.tap.bz2

Now you need to go to the SIMH console window. It will say something like this in it:

VAX780 simulator V3.8-1
Listening on port 42221 (socket 376)
Waiting for console Telnet connection
Running

Hit Control+E and it’ll interrupt the simulator. Then we need to attach the tap file like so:

Simulation stopped, PC: 800018A3 (MTPR #0,#12)
sim> att ts0 lynx-2.8.2.binary.BSD-4.3.Uwisc.tap
sim> c

the att command will attach the tap file to the ts0 device. the c will tell the simulator to continue. Now just switch to a tty windows (or attach a pty), then it’s a simple matter of running the following commands:

myname# cd /
myname# mt rew
myname# tar -xvmf /dev/rmt12
x /usr/local/bin/gzip, 66560 bytes, 130 tape blocks
x /usr/local/bin/lynx, 949248 bytes, 1854 tape blocks
x /usr/local/lib/lynx.cfg, 97203 bytes, 190 tape blocks
myname# rehash

Thats about all it takes, now you can run lynx. If you so wish, you can run back to the SIMH console, and tell it to “det ts0” which will detach the tape image.

Update for HACK

I just found out that hack will run properly if it’s built with the default compiler PCC (cc). However there is a single file that will not build, but gcc can be used to build the single file, and the build process can continue as normal.

Here is a quick log:

myname# make
cc -g -c hack.Decl.c
cc -g -c hack.apply.c
cc -g -c hack.bones.c
cc -g -c hack.c
hack.c: 799: missing endif
*** Error code 1

Stop.
myname# gcc -g -c hack.c
myname# make
cc -g -c hack.cmd.c

cc -g -c rnd.c
cc -g -c alloc.c
Loading …
myname# size hack
text data bss dec hex
158720 47104 30404 236228 39ac4
myname# ls -l hack
-rwxrwxr-x 1 root 694272 May 10 10:23 hack
myname# strip hack
myname# ls -l hack
-rwxrwxr-x 1 root 206848 May 10 10:23 hack

And with that being said, it seems just about any version of GCC will do… from 1.27 to 2.45. I’ve test played it, and you get the tombstone when you die, not a core dump. This applies to 4.2 BSD and all the 4.3 BSD’s. I’ve updated the sourceforge binary packages that I have made for Hack to include this hybrid exe that seems to work just fine.

Happy hacking!

Announcing Research Unix v1 for Windows

 

Today I have decided that I should make a windows installer for the Unix v1 restoration project’s efforts on getting Unix v1 running.

For windows users this is a simple click & install project. This version of Unix v1 will support up to 8 simultaneous users on the system. Please note that this is a ‘rework’ of the v1 kernel from printouts to run a v2 userland, and the earliest C compiler from somewhere around v3-v4. It is not ‘pure’ per say as almost all v1 Unix documentation, tapes have been lost.

Simply install with all options, then click on the “RUN unixv1” link, and the kernel will load up (quickly!) to a login prompt. Login as root, and you should be good to go. Additional users can telnet into the host PC on port 12323 and they will be prompted to login. You can also use the “attach a pty” link, and it will launch teraterm pro onto the port 12323.

Because of the age of this system lots of commands that you take for granted did not exist back in 1972. A quick survey of my own use led to this:

Sync –doesn’t exist-
Reboot –doesn’t exist-
Vi –doesn’t exist-
Clear –doesn’t exist-
Cd –it’s actually chdir
Finger –doesn’t exist-
UUCP –doesn’t exist-
TCP/IP –doesn’t exist-

Remember it’s on a system with 32kb of ram. Don’t confuse Unix’s humble beginnings with the later v7 on the VAX, or the BSD releases that added TCP/IP networking.

I have included the PDF for the 2nd edition programmers guide. Since the userland is from this generation it is as close as you will get to a system manpage.

To exit the emulator, you can just close the SIMH process window, or hit Control+E then q to quit. I’m not sure of a ‘clean’ way to reset a Unix v1 machine. If there is significant disk corruption, I’d just recommend un-installing this program, then re-installing. It is no doubt the saving grace about running this emulated. As far as I know nobody has run this on a physical PDP-11. You would require an actual 11/20 because of how the multiply / divide instruction is handled. I won’t run on any of the bigger PDP-11’s.

The project page is:

http://sourceforge.net/projects/bsd42/

You can download this release from here:
https://sourceforge.net/project/downloading.php?group_id=204974&filename=Research-unixv1-0.3.exe&a=32102074

Pointless update of the day (iPhone fun!)

I got a used iPhone while on vacation, and I managed to jailbreak it, and load up the CLI tools, including gcc onto it… It feels VERY unixy now with the 2.0 os, all the good stuff like screen, lynx, vi .. So I decided to build SIMH on it. It takes FOREVER to build anything… But then I don’t think the iPhone was built to compile.. -O2 seems to break so sadly it’s without optimizations but it runs!

For the heck of it, I copied in my 4.2 BSD disk image, and rebuilt SIMH with SLiRP support, and now I have a hand held VAX!

It’s cool, and pointless at the same time… I’ll probably make some binaries available on sourceforge later.. I guess as iPhones eventually get phased out (1st gen ones for sure) it’d be cool to let them become servers or something useful along those lines…

Here is a screen shot for the curious…

And yes, you can telnet into it, via the magic of SLiRP… I’ve tried building some irc clients, really old stuff does build and “work” but I think the server protocol has drifted as it cannot join any rooms…. So close & yet so far away.. I’ll probably have to move to 4.3 BSD..

I also should add that the iPhone VAX feels like an 11/780.. In that it takes several minutes to boot… Don’t expect a FAST machine…!

Yet another update! networking for 4.2 BSD

4.2BSD telnetI have released yet another interim update to my VAX BSD on Windows installer package.

I redid the 4.2BSD package, so anyone that has downloaded, will want to download again (there were 2 downloads… )

Anyways I found a source tree of 4.2 BSD with the if_de.c and the same fix for the 4.3 BSD’s worked fine for this one as well. Now you can telnet into 4.2 BSD!

You can download it from here:

https://sourceforge.net/project/showfiles.php?group_id=204974&package_id=245145

It is worth noting that I didn’t even look at the TCP/IP stack so it’s possible that you could be hit with issues with negative numbers in the TCP sequencing, and other weird 4.2 to 4.3 bugs.

Also attempting to fix locore.s to allow more then 8mb of ram seems to have a kernel that hangs right after mounting the root partition.. If anyone remembers what to do to fix it, I’d appreciate it. I see in google’s usenet cache, they had the same issue at Nova University, but I didn’t see any follow up for a fix.

This update now brings all of the 4BSD packages on Windows up to a network operational level. Also please note that they all use the same user mode mapping ports (ie 42323 to 23 into the VM) so you currently cannot operate all of them at the same time. If that is an issue for anyone you can regen the exe’s from the SIMH project page:

https://sourceforge.net/project/showfiles.php?group_id=154308&package_id=244757

Otherwise you can just contact me.

 

And update on the update

Well I was playing around with a version of 4.3 BSD I’d never heard of, that was from the University of Wisconsin, when I figured out a quick hack to get the 4.3 BSD’s networking operational under SIMH’s 11/780 emulator. I simply removed the error checking from the recv portion in the if_de.c file, and it now works!

So I have updated some packages on the sourceforge site:

https://sourceforge.net/project/showfiles.php?group_id=204974&package_id=245145

4.3 BSD & UWisc 4.3 BSD have been added, and both are ready to run with SLiRP (User mode networking/nat).

As for the Wisconsin release, it may interest people as they had taken the NFS & VFS code from SunOS and integrated them into 4.3 BSD before the RENO time frame. From there it seems that most of the hackers at UWisconsin went on to either Legato or SUN to continue their work, leaving this release as a single event… The tape image seems to have last been used January 12th, 1987. This release does not appear on the UNIX family tree’s.. It’s like a long forgotten offshoot, but still I think it’s kind of cool. And it shows just how networking was done back then with nearly 4000 enteries in the hosts file!

I’ve been trying to track down some more info from the TUHS list, but if anyone else passing by wants to add anything, feel free to let me know!

Otherwise, the installer package on sourceforge should run on any Windows 98 or above machine.

Updates on my sourceforge BSD/SIMH packages

On my project page I have made some new packages for 4.3BSD & 4.2BSD. Both of which can be downloaded here.

The updates include:
-moving to 3.8-1 of SIMH
-turning off unnecessary services in BSD
-moving from putty to Tera Term
-fixing PDF documentation links..

While not a major update, I figure since people are still downloading the 4.3 BSD RENO version as of TODAY I figure an update for these people wouldn’t be such a bad thing…

As before they are windows install packages, although I guess if you were so motivated you could extract them on some kind of *nix box..