qlwiki:cpm_68k_operating_system

CP/M 68K Operating System

The CP/M 68K Operating System was actually supplied by Digital Research, and sold by Quest Automation Ltd for use with their 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 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 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 / Quest Automation Ltd
Year of Publication: 1984
Platforms Suitable for: Sinclair QL with Quest Floppy Disk Drive or 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: 2018/01/23 06:32
  • by rwap