Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== CP/M 68K Operating System ====== The CP/M 68K Operating System was actually supplied by Digital Research, and sold by [[qlwiki:Quest Automation Ltd]] for use with their [[qlwiki:Quest Floppy Disk Drive]]. The program was primarily designed to be used with the Quest Floppy Disk Drive, as it was reliant on the O/S card added onto that disk interface. It could however, also be used from microdrive, provided you owned the [[qlwiki:OScard]] from Quest. CP/M 68K Operating System was a full implementation of the CP/M operating system, with an added 68000 assembler, C compiler and comprehensive manual. CP/M 68K also provided the means of controlling the [[qlwiki:Quest Winchester Hard disk system]]. Tim Benham wrote the BIOS i/o code for the original microdrive based version and he recalls: >The interface card contained 1KB RAM that is bank switchable by writing to an I/O port(memory mapped?). No settings are stored in it. The problem was/is (as mentioned here) that the QL interrupt table is in ROM so the 1KB RAM is used to hold a copy of the interrupt table, with suitable adjustments made for when CP/M has control. Basically at start-up I copied the ROM Interrupt table to the RAM. Then made the adjustments (in the RAM) for where I needed the Interrupts to go. When CP/M booted it of course made it's own adjustments. >When switching the RAM out it retained its contents so i could flip-flop between RAM/ROM as much as needed. Also The 68000 made "context switching" quite simple by taking advantage of the alternate registers and stack pointer (much like a z80 could do). >As suspected here the O/S ran on top of QDos much like Windows 3.x on MS-DOS for certain operations, especially microdrive reading/writing, screen control, colour display - which was supported via ANSI - and some other things I can't remember! So a lot of the BIOS code was actually creating wrappers around QDos calls and mimicking a floppy drive within a QDos file. >At initial boot of the QL the user had to load and run a small Basic Program IIRC (or it auto ran) . This (again IIRC) changed the memory allocation for basic/QDos, loaded a specialised CP/M IPL/Bootloader into RAM from microdrive and simply jumped to it's start address. >Why did I get the job? Because at that time I was writing all their hard disk interface code for various machines both MS-DOS and CP/M (I also did Concurrent-CP/M for the Apricot). So I was considered the closest person they had to a BIOS writer. >Final note. The RAM Disk: The rush was to get the product to a show (of course) and it was terminally slow to do things using microdrives so the day before the show someone said "we need a RAM Disk" So I set about including one. I had it done in 2 or 3 hours, it worked first time. OK ..it was a fixed size but first time no bugs. That had never happened to me before and hasn't since! ---- Title: **CP/M 68K Operating System**\\ Language: BIOS written in 68000 assembler\\ Author: Tim Benham\\ Publisher: Digital Research / [[qlwiki:Quest Automation Ltd]]\\ Year of Publication: 1984\\ Platforms Suitable for: Sinclair QL with [[qlwiki:Quest Floppy Disk Drive]] or [[qlwiki:OSCard]] \\ Commercial Status: Commercial\\ Price as at December 1984: £59.50 (disk) or £99.50 (microdrive)\\ Reviews: QL User (May 1985)\\ Sources Available from: n/a\\ Latest Version available from: Unknown qlwiki/cpm_68k_operating_system.txt Last modified: 2023/08/25 12:23by 127.0.0.1