Closed snhirsch closed 1 year ago
Mostly writing the device driver routines, and adapting a few system-dependent kernel routines (e.g. RTC read/write, MMU initialization).
The CPU280 ROM may need modification as well, since the ROM routines are way too CP/M-oriented: the CPU280 boots CP/M-3 from ROM, or looks for a CPM3.SYS file in a CP/M-formatted disk; it can't load and execute a generic boot sector from disk, meaning it cannot boot a foreign OS (not even MP/M). The ROM BIOS also forces CP/M applications to run in user mode, restricting execution of privileged instructions and preventing access to e.g. MMU registers, and thus making it (almost) impossible to write an application to boot a different OS from CP/M (a sort of backdoor exists, but is cumbersome to use.)
I do have a CPU280, and porting RSX280 to it is in my TODO list.
Ooof. Sounds like a significant amount of work. But, if you do decide to do the port I'm ready and willing to do any required testing.
Just uploaded the first test (but working) version of RSX280 for the CPU280 board. The DiskImages directory contains a compressed 1.44M 3.5" Floppy Disk image, and a boot.com CP/M utility. You will need two floppies: one to hold the system image mentioned above, and a second CP/M-formatted one to hold the boot.com utility.
Booting RSX280 on the CPU280 with the original ROM is a two-step process: first you boot CP/M and run the boot.com utility from the CP/M floppy. Then, when prompted, remove the CP/M floppy and insert the RSX280 one and press Return.
Running RSX280 from a floppy is not particularly fast, GIDE support will be added next. The console terminal (TT0:) uses the baud rate defined by the CPU280 setup, the secondary terminal (TT1:) defaults to 19200 baud, 8N1. The baud rate can be changed with the 'SET /SPEED=TTn:xxxx' MCR command. Note also that very little space is left on the floppy; you can delete unnecessary tasks (after REMoving them if installed) and/or e.g. example files from the [TEST] and [BASIC] directories, etc.
Have fun!
Very good timing. I just put together a PDP-11 Franken-system around an 11/73 CPU and am learning about RSX. The skill set should transfer well, I hope.
UPDATE: I have succesfully booted RSX280 on my CPU280 and am currently fiddling with it. I'm very far from an expert on RSX so bear with me. Is BASIC actually implemented? It tells me I don't have enough memory to run it, but I'm wondering if that's an accurate message.
UPDATE: I have succesfully booted RSX280 on my CPU280 and am currently fiddling with it. I'm very far from an expert on RSX so bear with me. Is BASIC actually implemented? It tells me I don't have enough memory to run it, but I'm wondering if that's an accurate message.
What is the exact error message? Note that BASIC is normally installed (it should appear as ...BAS on the TAS command display), so all you have to do is to type BAS at the MCR prompt. If you are trying to RUN the BASIC.TSK file, then you have to specify a memory INCrement to be used as space for programs, e.g. RUN $BASIC/INC=20000 (that mimics the behavior on the PDP-11). The '$' is a shortcut for LB:[SYSTEM] and required only if you are logged into an account other than SYSTEM.
Gotta write some docs some day... :)
What would be involved in porting this to run on the original CPU280?