I've always been interested in CP/M though I'd never really used it and after seeing some recent discussions about it on IRC I decided to take a look since I heard it was pretty 'port'able. Turns out you only really need to write a few platform specific BIOS routines to get it running!
So that's what I did these past couple of days (... I know I should be coding other things) and after adding some very simple console style output stuff I have a somewhat usable version of CP/M 2.2 working on my CE.
Note that apparently CP/M expects an 80-character wide console so I've had to use a very small 3x7 font to make it fit. It's surprisingly not too bad for my eyes, but it is pretty small ...
It's not perfect as I haven't really added any console style escape codes to it so Sargon has some slight glitches if you look in the correct spot. Still it's pretty neat to see an OS from the 70's running on the CE!
To add the programs I'm basically injecting them at runtime and then saving them via the CP/M commands for now, I'll have to look at a way to add 'discs' via appvars or something.
I had to add the ability to cycle between uppercase, lowercase and number/symbol due to the calc keypad layout, so typing is a bit weird. For example typing a '.' forces you to cycle to the number/symbol mode and then back again to keep typing characters. If you look closely you can see the cursor change when the mode is changed.
Like most rushed things I do it's a bit of a hack'n'slash coding job but it was pretty fun. I'll have to redo and tidy up some things before uploading it to github or something.
So that's what I did these past couple of days (... I know I should be coding other things) and after adding some very simple console style output stuff I have a somewhat usable version of CP/M 2.2 working on my CE.
Note that apparently CP/M expects an 80-character wide console so I've had to use a very small 3x7 font to make it fit. It's surprisingly not too bad for my eyes, but it is pretty small ...
It's not perfect as I haven't really added any console style escape codes to it so Sargon has some slight glitches if you look in the correct spot. Still it's pretty neat to see an OS from the 70's running on the CE!

To add the programs I'm basically injecting them at runtime and then saving them via the CP/M commands for now, I'll have to look at a way to add 'discs' via appvars or something.
I had to add the ability to cycle between uppercase, lowercase and number/symbol due to the calc keypad layout, so typing is a bit weird. For example typing a '.' forces you to cycle to the number/symbol mode and then back again to keep typing characters. If you look closely you can see the cursor change when the mode is changed.
Like most rushed things I do it's a bit of a hack'n'slash coding job but it was pretty fun. I'll have to redo and tidy up some things before uploading it to github or something.