chiefdruid
Technical User
Hi All,
Can anyone please advise? I have a QBasic set of routines one of which allows me to read a Hard Disk sector via interrupt 13h, information found from Ralph Browns interrupts, - this works without error:
snipett:
InRegs.CX = &H1 ' Get sector 1 of track zero
InRegs.DX = (Head% * 256) + Disk% ' of selected drive
InRegs.AX = &H201 ' Read one full sector
InRegs.BX = VARPTR(Sector) ' Offset of read buffer
InRegs.ES = VARSEG(Sector) ' Segment of read buffer
CALL INTERRUPTX(&H13, InRegs, OutRegs) ' Read sector
but I would like to be able to write back the sector, again using interrupt 13h I use the same notation as the above snoppet but this fails, (I use InRegs.AX = &H301 which according to Ralph Browns Interrupt list should write back the sector read)
Either I have the AX register value wrong or clearly something else so I'm wondering if anyone may be able to guide me in the right direction to a resolution?
I have seen the QBasic FAQ which talks about disk access but this seems only pertinent to floppy drives and I'm dubious to try the cod on a hard disk!
Many thanks for your time
Can anyone please advise? I have a QBasic set of routines one of which allows me to read a Hard Disk sector via interrupt 13h, information found from Ralph Browns interrupts, - this works without error:
snipett:
InRegs.CX = &H1 ' Get sector 1 of track zero
InRegs.DX = (Head% * 256) + Disk% ' of selected drive
InRegs.AX = &H201 ' Read one full sector
InRegs.BX = VARPTR(Sector) ' Offset of read buffer
InRegs.ES = VARSEG(Sector) ' Segment of read buffer
CALL INTERRUPTX(&H13, InRegs, OutRegs) ' Read sector
but I would like to be able to write back the sector, again using interrupt 13h I use the same notation as the above snoppet but this fails, (I use InRegs.AX = &H301 which according to Ralph Browns Interrupt list should write back the sector read)
Either I have the AX register value wrong or clearly something else so I'm wondering if anyone may be able to guide me in the right direction to a resolution?
I have seen the QBasic FAQ which talks about disk access but this seems only pertinent to floppy drives and I'm dubious to try the cod on a hard disk!
Many thanks for your time