Changes

765 FDC

45 bytes removed, Sunday at 03:09
/* Other Variants */
|}
Note: Bit b10 of the address port is reset as the FDC is seen as an expansion, even if it is an internal chip. Bit b7 is reset to select the FDC. Bits b8 and b0 are used to select the specific mode of operation. All other bits should be set to 1 to avoid conflict. [https://www.cpc-power.com/cpcarchives/index.php?page=articles&num=48 Source]
Note2: The [[Vortex Disc Drives|Vortex disc interface]] uses other ports. See its dedicated wiki page.
<br>
== Accessing the FDC 765 Motor On/Off Flip-Flop ==Writing 00h to Port &FA7E 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.
The Main Status Register An exception are the Vortex F1-S, F1-D, M1-S and M1-D drives. (Port &FB7EHow are they different?) signalizes when the FDC is ready to send/receive the next byte through the Data Register.
The Data Register (Port &FB7F) Another exception is used to write Commands the Gotek drives. They don't take the motor flip-flop into account and Parameters, to readare always on. [https:/write data bytes, and to receive result bytes/64nops. These 3 operations are called Commandwordpress.com/2021/07/04/a-, Executionla-, and Resultdecouverte-Phase.du-fdc/ Source]
<br>Some FDC commands don't require the motor to be on. For example, the seek or recalibrate commands, that move the floppy drive head, work fine with the motor off. And seek/recalibrate also work with an empty drive (ie. without a floppy disk inserted). [https://64nops.wordpress.com/2021/07/10/a-la-decouverte-du-fdc-episode-2/ Source]
=== Command Phase ===The floppy disk rotates at a nominal speed of 300rpm, with some tolerance. This tolerance of the FDC has been measured by [[Roudoudou]] to be ±12% (it worked from 220 kbits/s to 283 kbits/s for a reference of 250 kbits/s). [https://64nops.wordpress.com/2021/09/02/a-la-decouverte-du-fdc-episode-4/ Source]
A command consists The FDC speed is more impressive when you realize the Amstrad CPC’s tape loads at only 2 kbits/s in fast mode. Note: tape loading can be way faster than that if an MP3 player is used instead of a command byte (eventually including the MT, MF, SK bits)real physical tape, and up to 8 parameter bytesas it has been demonstrated here: https://youtu.be/MAIsOIwgJWA
<br>
=== Execution Phase =Accessing the FDC 765 ==
During this phase, The Main Status Register signalizes when the actual data FDC is transferred (if any). Usually that are ready to send/receive the data bytes for the read/written sector(s), except for next byte through the Format Track Command, in that case 4 bytes for each sector are transferredData Register.
During data transfers between the FDC The Data Register is used to write Commands and the processorParameters, the FDC must be serviced every 26µs (for MFM mode with CPC timings) or the FDC terminates the FDC commandto read/write data bytes, and to receive result bytes.These 3 operations are:
<br>* Command Phase: A command consists of a command byte (eventually including the MT, MF, SK bits), and up to 8 parameter bytes.
=== Result * 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 4 bytes for each sector are transferred. During data transfers between the FDC and the processor, the FDC must be serviced every 26µs (for MFM mode with CPC timings) or the FDC terminates the FDC command.
* Result Phase: Returns up to 7 result bytes (depending on the command) that are containing status information. The Recalibrate and Seek Track commands do not return During the result bytes directlyphase, instead all the program result bytes must wait until the Main Status Register signalizes that the command has been completed, and then it must (!) send be read. The FDC will not accept a Sense Interrupt State new command to 'terminate' until all the Seek/Recalibrate commandresult bytes are read.
During the Note: The Recalibrate and Seek Track commands do not return result phasebytes directly. Instead, all the result bytes program must be readwait until the Main Status Register signalizes that the command has been completed. The FDC will not accept And then it must (!) send a new Sense Interrupt State command until all to 'terminate' the result bytes are readSeek/Recalibrate command.
<br>
=== The 15 FDC Commands ===
{|
<br>
== Motor On/Off Flip-Flop =Notes =Writing 00h to Port &FA7E 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?) Another exception is the Gotek drives. They don't take the motor flip-flop into account and are always on. [https://64nops.wordpress.com/2021/07/04/a-la-decouverte-du-fdc/ Source] Some FDC commands don't require the motor to be on. For example, the seek or recalibrate commands, that move the floppy drive head, work fine with the motor off. And seek/recalibrate also work with an empty drive (ie. without a floppy disk inserted). [https://64nops.wordpress.com/2021/07/10/a-la-decouverte-du-fdc-episode-2/ Source] The floppy disk rotates at a nominal speed of 300rpm, with some tolerance. This tolerance of the FDC has been measured by [[Roudoudou]] to be ±12% (it worked from 220 kbits/s to 283 kbits/s for a reference of 250 kbits/s). [https://64nops.wordpress.com/2021/09/02/a-la-decouverte-du-fdc-episode-4/ Source] The FDC speed is more impressive when you realize the Amstrad CPC’s tape loads at only 2 kbits/s in fast mode. Note: tape loading can be way faster than that if an MP3 player is used instead of a real physical tape, as it has been demonstrated here: https://youtu.be/MAIsOIwgJWA <br> == Notes ==
Before accessing a disk you should issue a ''recalibrate'' command to the drive to move the head backwards until the ''track zero'' signal from the drive is sensed by the FDC. The FDC will also set its track counter for that drive to zero.
<br>
== IC Models used in CPC Chip Variants ==
More than one manufacturer made 765 compatible ICs. These are the ones known to be === IC Models used in the CPC by looking at pictures of CPC mainboards.===
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.
* NEC D765AC [https://www.cpcwiki.eu/imgs/3/3c/CPC664_Z70205_MC0005B_PCB_Top.jpg Source]
All the floppy disk drive models used by Amstrad are referenced here: [https://www.cpcwiki.eu/index.php/Amstrad_FDD_part Amstrad FDD part]
<br> == Chip = Other Variants ===
NEC has developed various successors to the original uPD765, such as the uPD72065, uPD72067, and uPD72069.
The КР1810ВГ72А is a Soviet clone of the Intel i8272. It is used in the [[Aleste 520EX]] clone of the Amstrad CPC computer.
 
=== Competitors ===
The main competitor of the µPD765 FDC chip on the market was the WD179x FDC chip family. Its main differences are:
12,551
edits