---------------------------
There are 15 commands which the FDC uPD765a wil execute.Each of these commands require multiple 8-bytes
to fully specify the operation which the processor wishes the FDC to perform.
---------------------------
The following commands are available :
---------------------------
00 - INVALID
01 - INVALID
---------------------------
02 - FDC_COMMAND_READ_A_TRACK
---------------------------
D7 D6 D5 D4 D3 D2 D1 D0
Command W MT MF 0 0 0 0 1 0
W 0 0 0 0 0HDSDS1DS2
W ----------C------------ Sector ID Information
W ----------H------------
W ----------R------------
W ----------N------------
W ---------EOT-----------
W ---------GPL-----------
W ---------DTL-----------
Exec R ----------------------- Data transfer between the FDD and main system
Result R ----------ST0---------- Status information after command execution
R ----------ST1----------
R ----------ST2----------
R -----------C----------- Sector ID information after command execution
R -----------H-----------
R -----------R-----------
R -----------N-----------
---------------------------
03 - FDC_COMMAND_SPECIFY
---------------------------
D7 D6 D5 D4 D3 D2 D1 D0
Command W 0 0 0 0 0 0 1 1
W <---SRT---> <---HUT--->
W <-------HLT--------> ND
---------------------------
04 - FDC_COMMAND_SENSE_DRIVE_STATUS
---------------------------
D7 D6 D5 D4 D3 D2 D1 D0
Command W 0 0 0 0 0 1 0 0
W 0 0 0 0 0 HDSDS1DS0
Result R ----------ST3---------- Status information about FDD
---------------------------
05 - FDC_COMMAND_WRITE_DATA
---------------------------
D7 D6 D5 D4 D3 D2 D1 D0
Command W MT MF SK 0 0 1 0 1
W 0 0 0 0 0HDSDS1DS2
W ----------C------------ Sector ID Information
W ----------H------------
W ----------R------------
W ----------N------------
W ---------EOT-----------
W ---------GPL-----------
W ---------DTL-----------
Exec W ----------------------- Data transfer between the FDD and main system
Result R ----------ST0---------- Status information after command execution
R ----------ST1----------
R ----------ST2----------
R -----------C----------- Sector ID information after command execution
R -----------H-----------
R -----------R-----------
R -----------N-----------
---------------------------
06 - FDC_COMMAND_READ_DATA
---------------------------
D7 D6 D5 D4 D3 D2 D1 D0
Command W MT MF SK 0 0 1 1 0
W 0 0 0 0 0HDSDS1DS2
W ----------C------------ Sector ID Information
W ----------H------------
W ----------R------------
W ----------N------------
W ---------EOT-----------
W ---------GPL-----------
W ---------DTL-----------
Exec R ----------------------- Data transfer between the FDD and main system
Result R ----------ST0---------- Status information after command execution
R ----------ST1----------
R ----------ST2----------
R -----------C----------- Sector ID information after command execution
R -----------H-----------
R -----------R-----------
R -----------N-----------
---------------------------
07 - FDC_COMMAND_RECALIBRATE
---------------------------
D7 D6 D5 D4 D3 D2 D1 D0
Command W 0 0 0 0 0 1 1 1
W 0 0 0 0 0 0DS1DS2
---------------------------
08 - FDC_COMMAND_SENSE_INTERRUPT_STATUS
---------------------------
D7 D6 D5 D4 D3 D2 D1 D0
Command W 0 0 0 0 1 0 0 0
Result R ---------ST0---------- Status information about the FDC at the end of each seek operation
R ---------PCN---------- PCN = Present Cylinder No.
---------------------------
09 - FDC_COMMAND_WRITE_DELETED_DATA
---------------------------
D7 D6 D5 D4 D3 D2 D1 D0
Command W MT MF SK 0 1 0 0 1
W 0 0 0 0 0HDSDS1DS2
W ----------C------------ Sector ID Information
W ----------H------------
W ----------R------------
W ----------N------------
W ---------EOT-----------
W ---------GPL-----------
W ---------DTL-----------
Exec W ----------------------- Data transfer between the FDD and main system
Result R ----------ST0---------- Status information after command execution
R ----------ST1----------
R ----------ST2----------
R -----------C----------- Sector ID information after command execution
R -----------H-----------
R -----------R-----------
R -----------N-----------
---------------------------
0A - FDC_COMMAND_READ_ID
---------------------------
D7 D6 D5 D4 D3 D2 D1 D0
Command W 0 MF 0 0 1 0 1 0
W 0 0 0 0 0HDSDS1DS2
Result R ----------ST0---------- Status information after command execution
R ----------ST1----------
R ----------ST2----------
R -----------C----------- Sector ID information after command execution
R -----------H-----------
R -----------R-----------
R -----------N-----------
---------------------------
0B - INVALID
---------------------------
0C - FDC_COMMAND_READ_DELETED_DATA
---------------------------
D7 D6 D5 D4 D3 D2 D1 D0
Command W MT MF SK 0 1 1 0 0
W 0 0 0 0 0HDSDS1DS2
W ----------C------------ Sector ID Information
W ----------H------------
W ----------R------------
W ----------N------------
W ---------EOT-----------
W ---------GPL-----------
W ---------DTL-----------
Exec R ----------------------- Data transfer between the FDD and main system
Result R ----------ST0---------- Status information after command execution
R ----------ST1----------
R ----------ST2----------
R -----------C----------- Sector ID information after command execution
R -----------H-----------
R -----------R-----------
R -----------N-----------
---------------------------
0D - FDC_COMMAND_FORMAT_A_TRACK
---------------------------
D7 D6 D5 D4 D3 D2 D1 D0
Command W 0 MF 0 0 1 1 0 0
W 0 0 0 0 0HDSDS1DS2
W ----------N------------ Bytes/Sector
W ---------SC------------ Sectors/Track
W ---------GPL----------- Gap 3
W ----------D------------ Filler byte
Exec ----------------------- FDC Formats an entire track
Result R ----------ST0---------- Status information after command execution
R ----------ST1----------
R ----------ST2----------
R -----------C----------- In this case, the sector ID information has no meaning
R -----------H-----------
R -----------R-----------
R -----------N-----------
---------------------------
0E - INVALID
---------------------------
0F - FDC_COMMAND_SEEK
---------------------------
D7 D6 D5 D4 D3 D2 D1 D0
Command W 0 0 0 0 1 1 1 1
W 0 0 0 0 0HDSDS1DS2
W ----------NCN---------- New Cylinder Number
---------------------------
10 - INVALID
---------------------------
11 - FDC_COMMAND_SCAN_EQUAL
---------------------------
D7 D6 D5 D4 D3 D2 D1 D0
Command W MT MF SK 1 0 0 0 1
W 0 0 0 0 0HDSDS1DS2
W ----------C------------ Sector ID Information
W ----------H------------
W ----------R------------
W ----------N------------
W ---------EOT-----------
W ---------GPL-----------
W ---------DTL-----------
Exec R ----------------------- Data compared between the FDD and main system
Result R ----------ST0---------- Status information after command execution
R ----------ST1----------
R ----------ST2----------
R -----------C----------- Sector ID information after command execution
R -----------H-----------
R -----------R-----------
R -----------N-----------
---------------------------
12 - INVALID
13 - INVALID
14 - INVALID
15 - INVALID
16 - INVALID
17 - INVALID
18 - INVALID
---------------------------
19 - FDC_COMMAND_SCAN_LOW_OR_EQUAL
---------------------------
D7 D6 D5 D4 D3 D2 D1 D0
Command W MT MF SK 1 0 0 0 1
W 0 0 0 0 0HDSDS1DS2
W ----------C------------ Sector ID Information
W ----------H------------
W ----------R------------
W ----------N------------
W ---------EOT-----------
W ---------GPL-----------
W ---------DTL-----------
Exec R ----------------------- Data compared between the FDD and main system
Result R ----------ST0---------- Status information after command execution
R ----------ST1----------
R ----------ST2----------
R -----------C----------- Sector ID information after command execution
R -----------H-----------
R -----------R-----------
R -----------N-----------
---------------------------
1A - INVALID
1B - INVALID
1C - INVALID
---------------------------
1D - FDC_COMMAND_SCAN_HIGH_OR_EQUAL
---------------------------
D7 D6 D5 D4 D3 D2 D1 D0
Command W MT MF SK 1 0 0 0 1
W 0 0 0 0 0HDSDS1DS2
W ----------C------------ Sector ID Information
W ----------H------------
W ----------R------------
W ----------N------------
W ---------EOT-----------
W ---------GPL-----------
W ---------DTL-----------
Exec R ----------------------- Data compared between the FDD and main system
Result R ----------ST0---------- Status information after command execution
R ----------ST1----------
R ----------ST2----------
R -----------C----------- Sector ID information after command execution
R -----------H-----------
R -----------R-----------
R -----------N-----------
---------------------------
1E - INVALID
1F - INVALID
; ---------------------------
MT Multitrack - If MT is high, a Multitrack operation is performaed. If MT = 1, after finishing
Read/Write operation on side 0, FDC will automatically start searching for sector 1 on side 1.
MF FM or MFM Mode - If MF is low, FM mode is selected, and if it is high, MFM mode is selected.
SK Skip - SK stands for Skip Deleted Data Address mark.
; ---------------------------
; Drive and Head Select Values
; ---------------------------
; HDS - Head Select - Head 1 selected when "1" (high). Head 0 selected when "0" (low).
; DS1DS0 - Drive Select - Selects FDD unit number 00,01,02 or 03
---------------------------
Sector ID Information prior to command execution
---------------------------
C Cylinder Number C stands for the current selected Cylinder track number 0 through 76 of the medium
H Head Address H stands for head number 0 or 1, as specified in the ID field
R Record R stands for the Sector Number which will be read or written.
N Number N stands for the number of data bytes written in a sector
EOT End Of Track EOT stands for the final Sector number of a Cylinder
GPL Gap Length GPL stands for the length of Gap 3 (spacing between sectors excluding VCO Sync field)
DTL Data Length When N is defined as 00, DTL stands for the data length which users are going to
read out or write into the sector.
---------------------------
Example :
a) read a sector &c1 at track 0 with MFM Data
46-00 00 00 c1 02 c1 2a ff
Note : last parameter DTL can be anything as N=2
b) read a deleted 2 sectors &45 and &46 at track 2 with MFM Data
4c-00 00 00 45 02 46 2a ff
Note : last parameter DTL can be anything as N=2
c) scan or equal sector &c1 at track 10 with MFM Data
41-00 00 0a c1 02 c1 2a ff
---------------------------