Skip to content

Commit f02a565

Browse files
authored
Change 1st stage int 13h addressing (#123)
1 parent aa9e5b8 commit f02a565

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

Diff for: src/stage_1.s

+13-1
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,18 @@ check_int13h_extensions:
8080
load_rest_of_bootloader_from_disk:
8181
lea eax, _rest_of_bootloader_start_addr
8282

83-
# start of memory buffer
83+
# dap buffer segment
84+
mov ebx, eax
85+
shr ebx, 4 # divide by 16
86+
mov [dap_buffer_seg], bx
87+
88+
# buffer offset
89+
shl ebx, 4 # multiply by 16
90+
sub eax, ebx
8491
mov [dap_buffer_addr], ax
8592

93+
lea eax, _rest_of_bootloader_start_addr
94+
8695
# number of disk blocks to load
8796
lea ebx, _rest_of_bootloader_end_addr
8897
sub ebx, eax # end - start
@@ -99,6 +108,9 @@ load_rest_of_bootloader_from_disk:
99108
mov ah, 0x42
100109
int 0x13
101110
jc rest_of_bootloader_load_failed
111+
112+
# reset segment to 0
113+
mov word ptr [dap_buffer_seg], 0
102114

103115
jump_to_second_stage:
104116
lea eax, [stage_2]

0 commit comments

Comments
 (0)