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:
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.
I've been experimenting with the mkisofs tool to make bootable ISO images for burning onto CD. This tool can be downloaded from the CDRTOOLS site (make sure you use the latest *stable* release).
The command line I'm using is:
mkisofs.exe -J -N -l -v -relaxed-filenames -b Floppy.img -volid "BootCD" -o "BootCD.iso" CDfiles
...where "CDfiles" is the name of a folder containing the floppy disk image (named "Floppy.img") as well as anything else you want to put onto the CD-ROM. I'm doing this from a command prompt in Windows 7 and it seems to work very well.
To make the CD bootable I've been using my bootable floppy image. This causes the CD-ROM to boot as if it were a floppy disk. You'll see the files inside the disk image appear as if it were a real floppy drive when the CD boots up. I've included the the generic CD-ROM drivers, and you should see the actual CD-ROM appear as drive X:.
You'll also get a 10Mb RAM drive, giving you some *writable* disk space to play with. This version simply boots to a basic DR-DOS system, but I'm blogging it since it may come in handy for other purposes...
You can burn the resulting ISO image to a CD, or simply try it out by attaching the ISO in Virtual PC or VirtualBox and booting from it. Here is a screenshot of the ISO booted in Virtual PC: