Let me discuss my methodology for bringing up these old systems. Here are the givens:
1) I have operational hardware with the original ROM as a target machine.
2) I have the original disk drive types (my Disk Subsystems discussed below) or actual manufacturers drives.
3) I have a disk image for an operating system disk from the internet on my PC in some image format for the target machine.
4) Documentation on the target system, Monitor, and OS.
I can't stress the need for system documentation enough. You might be able to get it running with just 1-3 above, but it will be MUCH tougher!
I use a serial link to communicate with the target machine from my PC (usually through a terminal server on my local net).
5) I have an operational terminal connection to the target system!
I usually find the Monitor is lacking particularly in the ability to load/store RAM and diddle the I/O.
Also, to boot the OS from a system disk. I need these functions to develop and test the drivers and programs. So
I need port or develop some tools for the target system:
6) I need a PC disassembler for the target microprocessor to generate source code from the ROM image.
7) I need a PC cross assembler to generate a BINARY image from the ROM source for the target microprocessor.
8) I use FIL2CMP to verify the ROM image source code actually builds an identical ROM image.
9) I then modify that ROM code to incorporate the required functionality.
10) I go through several several cycles of editing the code, building the code, burning the EPROM, testing new ROM code in the target machine.
11) I have the target machine operating in the Monitor, the disks connected and powered, and the target system communicating with the PC as the console.
I usually convert the target machine OS disk image to a .IMG file. This format looses all the
disk geometry information but is MUCH easier to manipulate with a Disk Image program.
12) I have the OS disk image in .IMG format.
Once I have the target machine working as in 11 above, and the OS .IMG file as in 12 above, it
is time to communicate with the disk drives.
13) I need to port my Floppy Disk Exerciser (FDE) program to the target machine.
The FDE I use to get the FDC chip talking to the disk drives. I develop drivers to perform the required functions: Home, Seek, Read, Write, Format, Motor On/Off, Head Load/Unload, ReadID, ReadTrack, etc. I load the FDE program into the target machine over a serial link from the PC using the target machine's Monitor. There is a code, build, test loop here, as well.
14) I am able to use FDE to create bootable floppy disks for the target system.
The drivers can be modified to develop the I/O System for the FDC in the operating system.
I need to develop a tool to manipulate and save the OS files from the .IMG format. The MAKIMG program performs this function. It must be modified for the OS disk image. Then I may need to convert the saved files into binary files. These files I can then disassemble into the target processors assembler source code on the PC. With source code, I can assemble the parts to create the original OS also on the PC. My current tools are listed in the Tools section below. Several reverse engineered operating systems are listed in the OS section below.
Last Updated: 6 July 2016