FileCore_DiscOp & DiscOp64
Alan Robertson (52) 420 posts |
I’m working on the documentation for FileCore_DiscOp64, for each of the reason codes. Am I right in thinking that each Register passed (for each of the reason codes), exactly the same as DiscOp? e.g DiscOp 2 uses R1, R2, R3 & R4, so DiscOp64 will also pass R1, R2, R3 & R4 - regardless of their slightly different meanings. Also, the current documentation surrounding the use of DiscOp 6 and DiscOp 15 is at best vague. Does anyone know what they actually do, and the registers status on exit? Any info would be most welcome. |
Ben Avison (25) 445 posts |
I think we can safely say that all the registers other than R2 (the disc address) mean the same thing in DiscOp, Sector(Disc)Op and DiscOp64 SWIs in FileCore, ADFS etc. DiscOp 6 has the action of seeking to track 0 and recalibrating the drive. DiscOp 15 is used to specify the numbers of heads and sectors per track on drive (which is probably an obsolete operation for modern drives, I’d think). Also, I see you’re uncertain about whether some registers are preserved – I refer you to PRM page 1-29: registers are preserved across SWIs unless documented otherwise (though the part of that sentence applying to processor flags is no longer true, since the move to 32-bit mode). |