Code: Select all
readtrack7:
mov ax, 0x1fa0
mov es, ax
mov bx, 0x00
mov ah, 0x02
mov al, 18
mov ch, 3
mov cl, 1
mov dh, 1
mov dl, 0
int 13h
jc readtrack7
Code: Select all
readtrack7:
mov ax, 0x1fa0
mov es, ax
mov bx, 0x00
mov ah, 0x02
mov al, 18
mov ch, 3
mov cl, 1
mov dh, 1
mov dl, 0
int 13h
jc readtrack7
Code: Select all
readtrack7a:
mov ax, 0x1fa0
mov es, ax
mov bx, 0x00
mov ah, 0x02
mov al, 3
mov ch, 3
mov cl, 1
mov dh, 1
mov dl, 0
int 13h
jc readtrack7a
readtrack7b:
mov ax, 0x2000
mov es, ax
mov bx, 0x00
mov ah, 0x02
mov al, 15
mov ch, 3
mov cl, 4
mov dh, 1
mov dl, 0
int 13h
jc readtrack7b
Code: Select all
readdata:
mov si, 3
.retry:
pusha
mov ah, 2
mov es, di
mov bx, 0
mov dl, 0
int 0x13
jnc .ok
sub si, 1
jb .error
popa
jmp .retry
.error:
printf("Error %d reading boot image\n", AH);
popa
jmp abortboot
.ok:
popa
ret
abortboot:
printf("Boot aborted, press control+alt+del to reboot\n");
.die:
jmp .die
Code: Select all
mov di, 0x1fa0
mov al, 3
mov ch, 3
mov cl, 1
mov dh, 1
call readdata
mov di, 0x2000
mov al, 15
mov ch, 3
mov cl, 4
mov dh, 1
call readdata