
Misc_Eject (5)
--------------
This is a new FileCore MiscOp, which can be used to power-eject the drives
if the hardware supports it. Calling convention is:

R0 = 5
R1 = drive

FileCore will call Misc_Eject for all drives that support eject after all
discs have been dismounted as part of FSControl_Shutdown.

Misc_Eject can also be called externally using the filing system's SWIs eg.
SYS "XADFS_MiscOp", 5, 0 to eject drive 0 on ADFS (assuming the hardware
supported this).

There are two new flag bits in the FileCore descriptor block flags. Bit 6 if
set specifies that the floppy discs (drives 0 to 3) support power eject. Bit
7 if set specifies that the winchesters (drives 4 to 7) support power eject.
If both of these bits are clear, then FileCore will never call MiscOp eject,
which is backwards compatible with old modules. This applies to MiscOp calls
made through the filing system too ie. SYS "XADFS_MiscOp", 5, 0 will not get
passed back to ADFS from FileCore unless bit 6 is set.

FileCore will also call Misc_Eject whenever it issues UpCall 1 (media not
present) or UpCall 2 (media not known). In this case the top bit of the
drive number is set, indicating that the filing system should expell
whichever drive it thinks is most appropriate. R4 (iteration count) and R5
(timeout period) of the UpCall are also passed to Misc_Eject in this case,
to allow the filing system some choice in what to do eg. it may wish to only
eject on iteration 0 if doing further ejects on an auto-insert detect drive
makes it very hard to get the new disk into the drive. Registers are:

R0 = 5
R1 = bit 31 set
R4 = UpCall 1 & 2 iteration count
R5 = UpCall 1 & 2 timeout period

This call cannot be made externally using the filing system's SWIs.
