The COMX Floppy disk controller allows connection of 5.25 disk drives. The controller uses the WD1770 with a speed of 8 Mhz. Not all details of this chips are described here but can be found in the data sheets available on the COMX Club pages.
The DOS ROM is selected between address C000-DFFF and also overrides address DD0-DDF of the BASIC ROM.
The WD1770 is controlled from the COMX via the following in and outputs:
Q = 1, OUT2: Register Select
Q = 0, OUT2: Write Register
Q = 1, INP2: INTRQ
Q = 0, INP2: Read Register
EF4 (override TAPE input): DRQ
Bit 1 and 0 are defined as for the WD 1770:
Next to the register select function also drive number (bit 5) and side (bit 2/3) can be specified with bit 4 set to 1:
|0||1||0||1||Drive 1 & Side 1|
|1||1||0||1||Drive 1 & Side 2|
|0||1||1||0||Drive 2 & Side 1|
|1||1||1||0||Drive 2 & Side 2|
COMX DOS supports 35 tracks for both single and double sided disks and 70 tracks on single sided disks. Every track consists of 16 sectors and every sector of 128 bytes, resulting in disk sizes of max 140K.
At the first DOS command a ROM subroutine will execute 'BOOT0', this will load sector 15 of track 0 to the RAM memory location @4000. After this the routine at @4000 will be executed which is called 'BOOT1'.
The 'BOOT1' routine will load sector 0 to sector 7 of track 1 to memory location @B700-@BAFF. This routine is called 'BOOT2'
'BOOT2' contains the DOS handler, jump table and a subroutine which is executed after 'BOOT1' to set system flags and parameters.
As the BOOT procedure is partly stored on the Floppy disk, it is possible to create specific boot procedures. This was also made easier by using ‘F&M INIT’ software which initialized an empty floppy disk with a boot procedure finishing by loading a program called ‘STARTUP’. This startup program could be any user specified software.
For more advanced usage the ‘F&M Disk monitor’ could also be used allowing changing any sector of the floppy disk directly.