Improved PDP-11 Live CD

  Live CD image
Download


The previous PDP-11 Live CD that I made is great, but it only works with IDE CD-ROM drives, so you cannot use it if you have a SATA or USB CD-ROM.  Which is a shame.  So I wanted to make a version that doesn't rely on having CD-ROM drivers for DOS, since it's unlikely that I'd be able to support all of the different types of drive.  I have tried to get my external USB CD-ROM drive to work under DR-DOS and found that I couldn't make it go.

So, for a few days I have been struggling to create an "El Torito" hard disk image, so that I could make a CD bootable version of a hard disk.  I haven't gotten it to work yet.  I even tried this (twice actually) by taking the HxD hex editor to an ISO file.  I've given up for the time being, but I'll probably come back to it.

However, I can get floppy disk "El Torito" images to work perfectly, including the 2.88 Mb variety.  That's how I got the previous Live CD to start (but I was only using a 1.44 Mb image that time).  So with a bit of lateral thinking I realised that my PDP-11 disk compresses quite well.  So I went off an got an UNZIP program for DOS, from here ... or to be specific, I downloaded unz600x3.exe from: ftp://ftp.info-zip.org/pub/infozip/msdos/.

This means that I can fit DR-DOS into a 2.88 Mb floppy image along with a compressed copy of the PDP-11 emulator and disk.  Since everything is inside the 2.88 Mb image, we don't need to load CD-ROM drivers in DOS.  It means that this bootable ISO will work with SATA and USB CD-ROM drives, it doesn't need the drivers since it's all done by the BIOS and the magic of El Torito.  Cool.

PDP-11: RT-11 Live CD with Basic-11

  Live CD image
Download


[NOTE: I have since made a better version here.]

This ISO image of a bootable CD is the combination of two different threads I have been working on: how to make bootable CDs and how to set up RT-11 with Basic in SIMH, the PDP-11 emulator.  This CD only works if you have an IDE CD-DROM drive though.

So I took the bootable CD image that I had already made and added SIMH for MS-DOS.  Then I added my RT-11 / Basic-11 disk image.  I set SIMH to start up automatically from a 16Mb RAM disk.  It all seems to work. It is pretty fast in comparison to a real PDP-11!  Because it is running from a DOS RAM disk, you get read/write access under RT-11 (until you switch the power off).  But it does mean that you can't mess it up since you get a clean install each time you boot the CD. Oh, and if you're looking for a manual on Basic-11 I've posted some stuff here.

So... if you'd like to have a play with an ancient operating system, give it a try.  Burn the ISO to a CD or boot it directly in Virtual PC or VirtualBox.  I've tried it with as little as 32Mb RAM, and it works fine. When I get time, perhaps I'll do an ancient Unix Live CD as well.

Adding Basic-11 to RT-11 in SIMH

This post continues with my SIMH RT-11 tutorial... To add Basic-11 into the mix I've been using this image of the "Languages Master" RX50 floppy disk.

Download that disk image to the folder where you've saved pdp11.exe.  Next, we're going to add that floppy to SIMH.  We can do that by editing the ini file.  Just before the line that reads "boot rl0", we need to add this line:

attach rl1 languages.dsk

This will mean that in RT-11 the Languages Master disk will appear as "DK1:", whereas the boot disk is "DK0:", the RT-11 install disk.  Test it out by running pdp11.exe and typing DIR DK1: (and pressing enter) at the command prompt.  You should see the directory listing of the languages master disk.

Before we try and install Basic, we need to make sure that we're using the RT-11 extended monitor, so type in these commands into RT-11:

copy/boot dk0:rt11xm.sys dk0:
boot dk0:

This should restart RT-11 in the extended monitor (RT-11XM).  When this disk is booted in future it will remember this setting.  Now we can actually install Basic, enter these commands:

copy dk1:b*.* dk0:
copy dk1:*.bas dk0:


...you should see the files being copied to your boot disk.  Now we're ready to try Basic-11.  Try this command:

basic

You should see this:

BASIC-11/RT-11 V02-03
OPTIONAL FUNCTIONS (ALL, NONE, OR INDIVIDUAL)?

I normally respond by typing ALL (in capitals), in which case Basic responds with "READY".  We have Basic!

We can now type in Basic programs, try this one:

10 FOR I=0 TO 12.6 STEP .2
20 PRINT TAB(30+COS(I)*30);"HELLO WORLD"
30 FOR S=0 TO 1000 \ NEXT S
40 NEXT I
50 GOTO 10
RUN

Press <CTRL>+C quickly twice to stop the program when you've got bored.

To leave Basic-11 the easy way, just type BYE at the READY prompt.

[EDIT: if you're looking for some information on Basic-11, I've posted some documents here.]

[ANOTHER EDIT: the PDP11.co.uk website, where I originally got the image of the languages disk from seems to have been shut down. I have changed the link above to a cached version from the wayback machine. And if you want to see the complete software page from PDP11.co.uk then you can still see it here.]

Starting RT-11 in SIMH for the first time

This post continues my SIMH RT-11 tutorial... When you start RT-11 from the install disk the first time, you'll see some text like this:

Welcome to RT-11 V5.3

You have bootstrapped the RT-11 Distribution Disk.  Use this disk to
install your RT-11 system, then store it in a safe place.

RT-11  V5.3  provides an automatic installation procedure which will
back up your distribution disk and build a working system disk which
should  be  used for your work with RT-11.
This  working  system disk will only  contain  the  RT-11  operating
system.  After  the  RT-11  installation  is  complete,  follow  the
installation instructions  packaged  with  any optional languages or
utility software which you will be using.

Press the "RETURN" key when ready to continue.


I usually try to skip the automatic install procedure, since I'm more likely to learn stuff if I do all the setting up by hand.  So after pressing RETURN, and getting asked "Do you want to use the automatic installation procedure?" I type "NO".  After pressing RETURN a couple of times, we should be booted into RT-11.

Remember, if you ever mess up your boot disk and things go wrong, you can just re-copy a fresh version of rtv53_rl.dsk and we will get back to the start point above.

Another winchester drive

So I bought a second Seagate ST-225 "winchester" disk off ebay.  I got it for the starting bid, nobody else made a bid!  Result.  I have connected it to my PDP-11 and used my "XXDP booting from ODT" trick to format it.  Here are the results:

Second disk formatted

This is good news, the drive seems to be in good shape.  Since then I have copied some RT-11 files to it and made it bootable.  So I have a spare.

Emulating RT-11 in SIMH

I was asked if I could write some instructions describing how to get RT-11 to boot in an emulator, so here goes...

To boot a PDP-11 in the SIMH emulator (on Windows), the first thing you need is a copy of the SIMH program.  You can get that from here: http://simh.trailing-edge.com/sources/simhv38-1-exe.zip

From that zip file we're interested in the application called "pdp11.exe", you should easily find it inside the root of the zip file.  Extract pdp11.exe to a folder on your PC - this is the SIMH emulation of a PDP-11.  It won't do anything interesting yet though.

The next thing that you need is some software to run on the emulator, I've been using the RT-11 OS and you can download that here: http://simh.trailing-edge.com/kits/rtv53swre.tar.Z

That is a compressed set of RT-11 files, including a disk image.  Inside, there should be a /Disks folder containing the disk image called "rtv53_rl.dsk".  Save that dsk file to the same folder where you saved pdp11.exe.

Now we need to tell SIMH to boot, and to do that we create an ini file and save it into the same folder as pdp11.exe.  You can do that in notepad.  The ini file should have this content:

set rl enable
set cpu 512k
set cpu 11/53
attach rl0 rtv53_rl.dsk
boot rl0

Save that content as "pdp11.ini" in the same folder as everything else.  It will tell SIMH to emulate a PDP-11/53 with 512k or RAM, and boot from the disk image.

Now you should be able to run pdp11.exe and it should boot from the disk and start running a brand new copy of RT-11.  You're on your way...

Make a disk bootable in RT-11

In the end it was very easy to get my winchester drive to be bootable.  I just had to read the manual really...  This was what I used:

copy/boot dk0:rt11xm.sys dk0:

The trick is to already have a copy of the boot-file (RT11XM.SYS in my case) on the disk.  The "copy/boot" command then just moves the file from one part of the disk, to the boot section.  Easy.

I used that to make my Winchester Drive bootable, so now I'm booting straight from the fixed disk.

DECUS C combined with RT-11 v5.3

I have now managed to make an RX33 boot disk image from RT-11 v5.3 and Decus C.  However, I did have to remove some extra files from the original boot disk to make more space.  These are the extra files that I removed:

RT11BL.SYS, RT11PI.SYS, RT11AI.SYS, RT11FB.SYS, RT11SJ.SYS
STARTA.COM, STARTS.COM, STARTF.COM

I guessed that since I'm using the "XM" edition of RT-11, then I would not need those files.  Next, I copied over the DECUS C files, like this:

With CCDSK1.DSK in drive DK1:

CREATE sy:cdisk.dsk/allocate:1500
MOUNT ld0: sy:cdisk.dsk
ASSIGN ld0: c:
INITIALIZE c:
[LD0:/Initialize; Are you sure?] YES
COPY dk1:*.* c:

...now put disk CCXDSK.DSK in drive DK1:

If you've restarted the emulator to change disks, use the next two lines:
MOUNT ld0: sy:cdisk.dsk
ASSIGN ld0: c:

COPY dk1:*.* c:
@C:CCSET.EIS
@C:CCXASM.V53

Append these lines to your "STARTX.COM" command file (which runs when RT-11 starts):

MOUNT ld0: sy:cdisk.dsk
ASSIGN ld0: c:
@C:CCXASM.V53

Then restart... Finally, to compile a C program, do this:

CC
[CC>] hello.c/A
LINK sy:hello.obj,c:suport.obj,c:clib.obj

Don't forget that this is an old dialect of C, mainly as described by K&R.  So you'll have to stick to the original K&R syntax.  Right, next comes the fun stuff.

Making an RT-11 v5.3 disk image

I realised that if I could get a floppy disk that booted into RT-11 v5.3, then I might be able to add the DECUS C compiler and have a boot disk and C compiler. This is the procedure I used to make my first RT-11 v5.3 boot disk.

Using SIMH, boot into RT-11 v5.3, making sure that you have blank RX33 disk image attached as DK1:. Then use these RT-11 commands to copy the files to the floppy disk image:

COPY/SYS SY:*.SYS DK1:*.SYS
COPY SY:VBGEXE.SAV DK1:
COPY SY:DIR.SAV DK1:
COPY SY:BUP.SAV DK1:
COPY SY:DUP.SAV DK1:
COPY SY:IND.SAV DK1:
COPY SY:LINK.SAV DK1:
COPY SY:KEX.SAV DK1:
COPY SY:PIP.SAV DK1:
COPY SY:V5USER.TXT DK1:
COPY SY:STARTX.COM DK1:
COPY SY:UCL.* DK1:
CLOSE

Then, shut down SIMH. We'll next use PUTR to make the RX33 disk image bootable (this assumes that you have called the image rx33.dsk and that it is in the same folder as PUTR):

MOUNT a: rx33.dsk /rx33 /rt11
BOOT a:
     RT11XM
     DUX
DISMOUNT a:

That's it. The RX33 image should now be bootable. Try it out in SIMH to make sure.