Mail Archives: djgpp-workers/2002/01/27/13:40:09
Eli helpfully replied to a problem on our newsgroup:
> > If I run this code after booting to the dos prompt using a Win98 boot disk
> > it returns a status of 0x01 (Invalid request or a bad command).
>
> Here's why:
>
> > di.sector = 0;
>
> The first sector on a disk is number 1, not zero.
This is taken from the example code for _bios_disk.
Proposed patch - OK to commit? :
*** b_disk.bak Sun Sep 27 09:21:02 1998
--- b_disk.txh Sun Jan 27 12:38:50 2002
*************** struct diskinfo_t @{
*** 19,23 ****
unsigned head; /* Head number. */
unsigned track; /* Track number. */
! unsigned sector; /* Sector number. */
unsigned nsectors; /* Number of sectors to read/write/verify. */
void *buffer; /* Buffer for reading/writing/verifying. */
--- 19,23 ----
unsigned head; /* Head number. */
unsigned track; /* Track number. */
! unsigned sector; /* Sector number. (1-63) */
unsigned nsectors; /* Number of sectors to read/write/verify. */
void *buffer; /* Buffer for reading/writing/verifying. */
*************** di.drive = 0x80;
*** 129,133 ****
di.head = 0;
di.track = 0;
! di.sector = 0;
di.nsectors = 1;
di.buffer = &record_buffer;
--- 129,133 ----
di.head = 0;
di.track = 0;
! di.sector = 1;
di.nsectors = 1;
di.buffer = &record_buffer;
- Raw text -