
I found out that the DS register does not change in the entire routine, which means that the variable is stored in PB's data segment, right?
When I put a breakpoint on the line ! int &h13, and then continue the program, the sector will be written.
When I put a breakpoint on the line ! pop ds, the call has already failed.
If I insert a (dummy) Basic statement, eg. DELAY 0 or MTIMER, between the INT and the POP, the call always succeeds. However if I insert an assembler loop of 32000 NOPs there, the call always fails....
Added 07-05: the Basic statement simply clears the carry flag, so the call fails either way, signalling error "Disk is write-protected"... it's scary how step-by-step execution bypasses this write-protection, I wish I could do this too)
Regards,
------------------
Sebastian Groeneveld
mailto:[email protected][email protected]</A>
[This message has been edited by Sebastian Groeneveld (edited July 05, 2001).]
Leave a comment: