=> R0 = pointer to a block
R1 = pointer to a 1-word special tag (&EE50EE50), followed by handler code
R2 = pointer to workspace for the soft-loadable module (passed in R12 to the handler)
<= block at R0 updated
This call registers the soft-loadable driver with the CDFSDriver module. The block pointed to by R0 on entry must be in RAM, whereas anything else, i.e. the code for each CD _SWI, can be in ROM. The block must stay put in the memory so that CDFSDriver can check it when detecting drive types.
CDFSDriver handler code
=> R0-R6 as passed to SWI
R7 = pointer to control block
R11 = SWI number called - 1
R12 = workspace pointer
R13 = 1k stack
R14 = return address
<= R0-R6 for return
R7-R12, R14 corrupted exceptin
CDFSDriver control block
Offset Contents
0 SCSI device ID (0-7)
4 SCSI card number (0-3)
8 Logical unit number (0-7)
12 Drive type
|
|
|