Floppy Disk Controller: Difference between revisions

added 2 commands to the command listing
[unchecked revision][unchecked revision]
m (Minor link fixes)
(added 2 commands to the command listing)
Line 492:
PERPENDICULAR_MODE = 18, // * used during initialization, once, maybe
CONFIGURE = 19, // * set controller parameters
LOCK = 20, // * protect controller params from a reset
VERIFY = 22,
SCAN_LOW_OR_EQUAL = 25,
Line 558 ⟶ 559:
* Third parameter byte = precomp_val = 0
* No result bytes.
 
==== Version ====
Returns one byte. If the value is 0x90, the floppy controller is a 82077AA.
 
* Version command = 0x10
* No parameter bytes.
* First result byte = 0x90
 
==== Lock ====
Under default circumstances, every Controller Reset will disable the fifo, and set the fifo threshold to 1 (thresh_val = 0).
If you change these settings with the Configure command and don't want to have to fix them after every Controller Reset,
then you can send a Lock command with the lock bit turned on. You can "unset" the lock, by sending another Lock command
with the lock bit turned off. Use the MT option bit as the lock bit.
 
* Lock command = 0x94
* '''or''' Unlock command = 0x14
* No parameter bytes.
* First result byte = lock bit << 4
 
==== Specify ====
Line 612 ⟶ 631:
# After the completion of a Recalibrate command.
 
These are the only times when you should send a Sense Interrupt. You canshould optionallystill send it anyeven otherif timeyou thathave theIRQs turned off in
the DOR and you are using polling instead.
controller is in command phase, but you will get an error if you try to send it when the controller is still in result phase,
and when you get an IRQ6, you usually do not know what phase the controller is in.
 
* Sense Interrupt command = 0x8
Line 633 ⟶ 651:
 
It is possible to poll the "disk active" bits in the MSR to find out when the head movement is finished.
HIHI!! mention that Sense Int is only needed if INTs are turned on!
 
A Sense Interrupt command is required after this command completes, to clear it from being BUSY. (Multiple Sense Interrupts,
if you ran multiple simultaneous Recalibrates.)
 
==== Seek ====
Anonymous user