|
|
|
|
@ -101,9 +101,8 @@ main:
|
|
|
|
|
or ax, bx
|
|
|
|
|
or eax, eax
|
|
|
|
|
jnz panic
|
|
|
|
|
; Load and spill the GPT starting LBA
|
|
|
|
|
mov ax, [di + 0x48]
|
|
|
|
|
push ax
|
|
|
|
|
; Store the first 16 bits of the GPT starting LBA (we have made sure the remaining bits are 0)
|
|
|
|
|
push word [di + 0x48]
|
|
|
|
|
|
|
|
|
|
; Load number of partitions
|
|
|
|
|
mov ax, [di + 0x50]
|
|
|
|
|
@ -165,11 +164,10 @@ main:
|
|
|
|
|
|
|
|
|
|
; Set up stack variables for our second stage search loop.
|
|
|
|
|
xor ax, ax
|
|
|
|
|
push ax ; Current entry
|
|
|
|
|
push ax ; Current entry within the current sector
|
|
|
|
|
push ax ; Number of sectors loaded
|
|
|
|
|
mov ax, [bp - GPT_ENTRIES_START_LBA]
|
|
|
|
|
push ax ; Current LBA
|
|
|
|
|
push ax ; Current entry
|
|
|
|
|
push ax ; Current entry within the current sector
|
|
|
|
|
push ax ; Number of sectors loaded
|
|
|
|
|
push word [bp - GPT_ENTRIES_START_LBA] ; Current LBA
|
|
|
|
|
|
|
|
|
|
; Search for the partition storing our second stage.
|
|
|
|
|
.loop_find_stage2:
|
|
|
|
|
|