Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
back2root:ibm-pc-ms-dos:hardware:8272-pd765 [2023/02/23 22:19] – [Tableau] frater | back2root:ibm-pc-ms-dos:hardware:8272-pd765 [2023/02/23 22:30] (Version actuelle) – [Key to Abbreviations] frater | ||
---|---|---|---|
Ligne 265: | Ligne 265: | ||
| result byte 5: | sector number | | result byte 5: | sector number | ||
| result byte 6: | bytes per sector | | result byte 6: | bytes per sector | ||
- | + | {{tablelayout? | |
- | |Format a Track\\ (Write Sector IDs) | D7 ^ D6 ^ D5 ^ D4 ^ D3 ^ D2 ^ D1 | + | ^ Format a Track\\ (Write Sector IDs) |
- | |command byte 0: | 0 | MF | 0 |0 | 1 |1 | 0| 1 | + | | command byte 0: | 0 | MF | 0 |
- | |command byte 1: | ? |? | ? |? | ? | HD | US1 |US0 | | + | | command byte 1: | ? | ? |
- | |command byte 2: |bytes per sector | + | | command byte 2: | bytes per sector |
- | |command byte 3: |sectors per track |||||||| | + | | command byte 3: | sectors per track |
- | |command byte 4: |gap 3 length | + | | command byte 4: | gap 3 length |
- | |command byte 5: |filler pattern to write in each byte | + | | command byte 5: | filler pattern to write in each byte |||||||| |
- | |result byte 0: |status register 0 | + | | result byte 0: |
- | |result byte 1: |status register 1 | + | | result byte 1: |
- | |result byte 2: |status register 2 | + | | result byte 2: |
- | |result byte 3: |cylinder number | + | | result byte 3: |
- | |result byte 4: |head number | + | | result byte 4: |
- | |result byte 5: |sector number | + | | result byte 5: |
- | |result byte 6: |bytes per sector | + | | result byte 6: |
- | + | {{tablelayout? | |
- | |Scan Equal | + | ^ Scan Equal ^ |
- | |command byte 0: |MT | MF | SK 1 | 0 |0 | 0 |1 | + | | command byte 0: | MT | MF | SK |
- | |command byte 1: | ? |? | ? |? | ? |HD | US1 |US0 | | + | | command byte 1: | ? |
- | |command byte 2: |cylinder number | + | | command byte 2: | cylinder number |
- | |command byte 3: |head number | + | | command byte 3: | head number |
- | |command byte 4: |sector number | + | | command byte 4: | sector number |
- | |command byte 5: |bytes per sector | + | | command byte 5: | bytes per sector |
- | |command byte 6: |end of track (last sector in track) | + | | command byte 6: | end of track (last sector in track) |
- | |command byte 7: |gap 3 length | + | | command byte 7: | gap 3 length |
- | |command byte 8: |scan test (1=scan contiguous, 2=scan alternate) | + | | command byte 8: | scan test (1=scan contiguous, 2=scan alternate) |
- | |result byte 0: |status register 0 | + | | result byte 0: |
- | |result byte 1: |status register 1 | + | | result byte 1: |
- | |result byte 2: |status register 2 | + | | result byte 2: |
- | |result byte 3: |cylinder number | + | | result byte 3: |
- | |result byte 4: |head number | + | | result byte 4: |
- | |result byte 5: |sector number | + | | result byte 5: |
- | |result byte 6: |bytes per sector | + | | result byte 6: |
- | + | {{tablelayout? | |
- | |Scan Low or Equal | + | ^ Scan Low or Equal |
- | |command byte 0: |MT | MF | SK |1 | 1 |0 | 0 |1 | + | | command byte 0: | MT | MF | SK | |
- | |command byte 1: | ?| ? | ? | ? | ? | HD | US1 |US0 | | + | | command byte 1: | ? |
- | |command byte 2: |cylinder number | + | | command byte 2: | cylinder number |
- | |command byte 3: |head number | + | | command byte 3: | head number |
- | |command byte 4: |sector number | + | | command byte 4: | sector number |
- | |command byte 5: |bytes per sector | + | | command byte 5: | bytes per sector |
- | |command byte 6: |end of track (last sector in track) | + | | command byte 6: | end of track (last sector in track) |
- | |command byte 7: |gap 3 length | + | | command byte 7: | gap 3 length |
- | |command byte 8: |scan test (1=scan contiguous, 2=scan alternate) | + | | command byte 8: | scan test (1=scan contiguous, 2=scan alternate) |
- | |result byte 0: |status register 0 | + | | result byte 0: |
- | |result byte 1: |status register 1 | + | | result byte 1: |
- | |result byte 2: |status register 2 | + | | result byte 2: |
- | |result byte 3: |cylinder number | + | | result byte 3: |
- | |result byte 4: |head number | + | | result byte 4: |
- | |result byte 5: |sector number | + | | result byte 5: |
- | |result byte 6: |bytes per sector | + | | result byte 6: |
- | + | {{tablelayout? | |
- | |Scan High or Equal | D7 ^ D6 ^ D5 ^ D4 ^ D3 ^ D2 ^ D1 | + | ^ Scan High or Equal |
- | |command byte 0: |MT | MF | SK |1 | 1| 1 | 0 |1 | + | | command byte 0: |
- | |command byte 1: | ? |? | ? |? | ? | HD | US1 | US0 | | + | | command byte 1: |
- | |command byte 2: |cylinder number | + | | command byte 2: |
- | |command byte 3: |head number | + | | command byte 3: |
- | |command byte 4: |sector number | + | | command byte 4: |
- | |command byte 5: |bytes per sector | + | | command byte 5: |
- | |command byte 6: |end of track (last sector in track) | + | | command byte 6: |
- | |command byte 7: |gap 3 length | + | | command byte 7: |
- | |command byte 8: |scan test (1=scan contiguous, 2=scan alternate) | + | | command byte 8: |
- | |result byte 0: |status register 0 | + | | result byte 0: | status register 0 |||||||| |
- | |result byte 1: |status register 1 | + | | result byte 1: | status register 1 |||||||| |
- | |result byte 2: |status register 2 | + | | result byte 2: | status register 2 |||||||| |
- | |result byte 3: |cylinder number | + | | result byte 3: | cylinder number |
- | |result byte 4: |head number | + | | result byte 4: | head number |
- | |result byte 5: |sector number | + | | result byte 5: | sector number |
- | |result byte 6: |bytes per sector | + | | result byte 6: | bytes per sector |
- | + | {{tablelayout? | |
- | |Recalibrate | + | ^ Recalibrate |
- | |command byte 0: | 0| 0 | 0 |0 | 0| 1| 1 |1 | + | | command byte 0: | 0 |
- | |command byte 1: | ? |? | ? |? | ? |0 | US1| US0 | | + | | command byte 1: | ? |
- | |returns nothing | + | | returns nothing |
- | + | {{tablelayout? | |
- | |Sense Interrupt\\ Status | + | ^ Sense Interrupt\\ Status |
- | |command byte 0: | 0 |0 | 0| 0 | 1 |0 | 0| 0 | + | | command byte 0: |
- | |result byte 0: |status register 0 | + | | result byte 0: | status register 0 |||||||| |
- | |result byte 1: |present cylinder number | + | | result byte 1: | present cylinder number |
{{tablelayout? | {{tablelayout? | ||
^ Specify Step & \\ Head Load ^ D7 ^ D6 ^ D5 ^ D4 ^ D3 ^ D2 ^ D1 ^ D0 ^ | ^ Specify Step & \\ Head Load ^ D7 ^ D6 ^ D5 ^ D4 ^ D3 ^ D2 ^ D1 ^ D0 ^ | ||
Ligne 350: | Ligne 350: | ||
| command byte 2: | ------head load time------ ND | | command byte 2: | ------head load time------ ND | ||
| returns nothing | | returns nothing | ||
- | + | {{tablelayout? | |
- | |Sense Drive\\ Status | + | ^ Sense Drive\\ Status |
- | |command byte 0: | 0 |0 | 0 |0 | 0 |1 | 0 | 0 | + | | command byte 0: |
- | |command byte 1: | ? |? | ?| ? | ? | HD | US1| US0 | | + | | command byte 1: |
- | |result byte 0: |status register 3 | + | | result byte 0: | status register 3 |||||||| |
{{tablelayout? | {{tablelayout? | ||
^ Seek | ^ Seek | ||
Ligne 369: | Ligne 369: | ||
|Invalid Command | |Invalid Command | ||
|result byte 0: | |result byte 0: | ||
+ | |||
+ | === Key to Abbreviations === | ||
+ | {{tablelayout? | ||
+ | ^ HD | Head Number Selected | ||
+ | ^ MT | Multi-Track | ||
+ | ^ MF | MFM mode | | ||
+ | ^ ND | Non-DMA mode | | ||
+ | ^ SK | SKip Deleted-data address mark | | ||
+ | ^ US0 | drive select bit 0 | | ||
+ | ^ US1 | drive select bit 1 | | ||
+ | |||
+ | * Head Load Time = 2 to 254ms in 2ms increments | ||
+ | * Head Unload Time = 16 to 240ms in 16ms increments | ||
+ | * Step Rate Time = 1 to 16ms in 1ms increments | ||
+ | |||
<WRAP round box> | <WRAP round box> | ||
* PS/2 systems use the 8272A diskette controller which is software and port compatible with the NEC µPD765 | * PS/2 systems use the 8272A diskette controller which is software and port compatible with the NEC µPD765 | ||
- | * accessed through ports 3F0h-3F7h; NEC µPD765 is accessed through ports 3F2h, 3F4h and 3F5h; the 8272A uses ports 3F0h, 3F1h, 3F2h, 3F4h, 3F5h and 3F7h | + | * accessed through ports 3F0h-3F7h;\\ NEC µPD765 is accessed through ports 3F2h, 3F4h and 3F5h;\\ the 8272A uses ports 3F0h, 3F1h, 3F2h, 3F4h, 3F5h and 3F7h |
* data, command and status registers are all accessed through port 3F5h a register stack with one address presented to the bus | * data, command and status registers are all accessed through port 3F5h a register stack with one address presented to the bus | ||
* bit 7 of BIOS Data Area byte 40:3E can be polled to determine if a disk operation has completed; this bit is set by the interrupt handler when the operation has completed; it should be reset before continuing on with the next FDC operation | * bit 7 of BIOS Data Area byte 40:3E can be polled to determine if a disk operation has completed; this bit is set by the interrupt handler when the operation has completed; it should be reset before continuing on with the next FDC operation | ||
Ligne 378: | Ligne 393: | ||
* see [[back2root: | * see [[back2root: | ||
- | * see [[back2root: | + | * see [[back2root: |