I have been messing around a bit more with editing disk images and my IsoCobbler application. Here is a newer version (and source in Visual Studio 2010) now with some extra features.
There are commands like NEW, which allows you to start from scratch with a blank FAT formatted floppy image (the 1.44 or 2.88Mb variety). You can also LOAD and then EXPAND your existing 1.44Mb images and IsoCobbler will attempt to make them into 2.88Mb ones, trying to keep the boot sector working in the process.
After writing the EXPAND command, which needs to transplant the boot sector and hack it around a little bit, I decided to implement an MBR command as well. This allows you to put in your own boot sector, or save the existing boot sector from a floppy disk image. Anyway, for details of all the commands, see the "Help" file included in the downloads. This version still expects all the files to be in the root, it doesn't support folders yet (which might be next on my list actually).
So after all that messing about, I have gotten as far as building my own boot sector in x86 assembler (using NASM, The Netwide Assembler) which in turn boots into my own simple kernel (and when I say kernel, I mean Hello World application). IsoCobbler did of course make a bootable ISO out of that experiment, so I have a bootable CD that runs my own bootloader and then starts my Hello World code as the kernel. Umm, now I'm feeling the need to go off and write a 'proper' kernel (in C probably). It seems that making a program to help me build CD-ROM images has gotten all out of control, since I seem to be considering the idea of building my own OS as a consequence. Right, I'm off to visit Bran's Kernel Development Tutorial, I may be quite some time...
After finding that Unix v1 was out there, and that it can run on the PDP-11, I thought that it was an ideal target for taking my IsoCobbler tool for a spin. So this is how I used IsoCobbler to make a bootable CD containing the first version of Unix, circa 1972:
1) Download a copy of SIMH 3.81 for DOS, from this location: http://sourceforge.net/projects/simh/files/simh%20binaries/3-8.1/
2) Inside the "simh-3.8-1_MS-DOSi386-exe.zip" file, find this path: simh/pdp11/unixv1. Extract the 6 files inside to a folder.
3) With the extracted files, rename unixv1.bat to start.bat. This will then be started automatically by the disk image.
4) Now add the files in the folder to a new zip file called content.zip. This zip file will be inflated automatically when your boot disk starts.
5) Get IsoCobbler and move your content.zip file into the same folder as the IsoCobbler binaries.
6) Run CobblerConsole (as an administrator), and enter these commands:
7) You should now see a file called UNIX1.ISO in the folder containing the IsoCobbler binaries.
That's it! You have made a bootable ISO containing First Edition Unix. When you boot from the ISO and you're prompted, login as root. Oh, here's the one I created:
I've just found this: http://code.google.com/p/unix-jun72/
Whoa! The first version of Unix, back from the dead. What is also cool, is that the manuals are available too: http://man.cat-v.org/unix-1st/
I would imagine I will be posting a boot disk soon, so that anybody can run the first Unix.
What with all this fiddling around with boot disks and ISO files, I found that there were not many tools around to do *exactly* what I wanted ... namely edit a 2.88Mb bootable floppy image and turn that into a bootable ISO. So I've written IsoCobbler. It doesn't have a GUI, it is command driven, but it suits my purposes. Even though it looks very retro, this is a C# application running on .Net 4. Here is a screenshot of it in action, on Windows 7:
It comes with a default boot image included, and makes it simple for anybody to edit it. You can insert your own zip file called "content.zip" containing a batch file called "start.bat" along with any DOS applications you want. Anything inside "content.zip" will be extracted into a RAM Disk and "start.bat" will be executed when the boot disk runs.
I guess that it might also be useful for creating some sort of emergency boot disk, you could load the zip file with all kinds of tools.
So here is the application (you'll need .Net framework v4 installed and it's best to run it as an administrator) and the source code (Visual Studio 2010). Please drop me a line if you find it useful. If I get time I may fiddle with it some more...
By popular demand, here is a PDP-11 Live CD that is configured to auto-run the 'Dungeon' game (aka Zork) in a PDP-11 emulator. Well OK, when I say 'popular demand' I mean that a colleague of mine mentioned it in idle conversation...
I got the game files from here: http://www.dbit.com/pub/pdp11/rt11/games/
And if you don't know about the historic computer game of Zork, I suggest you have a read on wikipedia: http://en.wikipedia.org/wiki/Zork.
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.
This was quite hard to find, so here is a zip file containing some documentation for Basic-11.
[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.