boot sector
- From: bob@xxxxxxxxxxxxxx
- Date: 23 Nov 2006 15:32:38 -0800
I've been looking at the code for my hard drive's boot sector, and I am
somewhat confused by this portion:
60 pusha
6A00 push byte +0x0
6A00 push byte +0x0
FF760A push word [bp+0xa]
FF7608 push word [bp+0x8]
6A00 push byte +0x0
68007C push word 0x7c00
6A01 push byte +0x1
6A10 push byte +0x10
B442 mov ah,0x42
8BF4 mov si,sp
CD13 int 0x13
61 popa
It appears to call this interrupt for an "EXTENDED READ":
http://www.ctyme.com/intr/rb-0708.htm
That page indicates the format of a disk address packet is as follows:
00h BYTE size of packet (10h or 18h)
01h BYTE reserved (0)
02h WORD number of blocks to transfer (max 007Fh for Phoenix EDD)
04h DWORD -> transfer buffer
08h QWORD starting absolute block number
The code says the size of packet is 0x10 with the line "push byte
+0x10". However, it seems to put a 1 in the reserved section with
"push byte +0x1" - or am I reading it wrong?
Also, it doesn't appear to specify all 16 bytes of the disk address
packet. Is it planning to use the leftovers from the initial pusha
call?
Thanks.
.
- Follow-Ups:
- Re: boot sector
- From: Benjamin David Lunt
- Re: boot sector
- Prev by Date: my first time server
- Next by Date: Re: boot sector
- Previous by thread: my first time server
- Next by thread: Re: boot sector
- Index(es):
Relevant Pages
|