Changes

Jump to: navigation, search

765 FDC

196 bytes added, 14:37, 12 August 2018
µPD765 - Floppy Disc Controller (used in [[DDI-1]] and CPC 664/6128).
 
The ports used by Amstrad and compatible interfaces use:
* Port FA7Eh - Floppy Motor On/Off Flipflop
* Port FB7Eh - FDC 765 Main Status Register (read only)
* Port FB7Fh - FDC 765 Data Register (read/write)
 
The Vortex disc interface uses other ports - exactly how this works has not yet been discovered.
== IC Models used in CPC ==
More than one manufacturer made 765 compatible ICs. These are the ones known to be used in the CPC by looking at pictures of CPC mainboards.
 
All should operate almost identically.
The Data Register (Port FB7Fh) is used to write Commands and Parameters, to read/write data bytes, and to receive result bytes. These three operations are called Command-, Execution-, and Result-Phase. The Main Status Register signalizes when the FDC is ready to send/receive the next byte through the Data Register.
a. Command Phase 
A command consists of a command byte (eventually including the MF, MK, SK bits), and up to eight parameter bytes.
b. Execution Phase 
During this phase, the actual data is transferred (if any). Usually that are the data bytes for the read/written sector(s), except for the Format Track Command, in that case four bytes for each sector are transferred.
c. Result Phase 
Returns up to seven result bytes (depending on the command) that are containing status information. The Recalibrate and Seek Track commands do not return result bytes directly, instead the program must wait until the Main Status Register signalizes that the command has been completed, and then it must (!) send a Sense Interrupt State command to 'terminate' the Seek/Recalibrate command.
== Motor On/Off Flipflop ==
Writing 00h to Port FA7Eh turns all disk drive motors off, writing 01h turns all motors on. It is not possible to turn on/off the motor of a specific drive separately.
 An exception are the Vortex F1-S, F1-D, M1-S and M1-D drives.(How are they different?)
== Notes ==
2,541
edits