int 13h 42h no carga nada en Bochs

Cambié mi gestor de arranque de CHS a LBA, así que reemplacéint 13h 02h conint 13h 42h. Funciona correctamente en QEMU, sin embargo, tengo problemas para ejecutarlo con Bochs y mi computadora portátil.

Escribí el gestor de arranque en la unidad flash USB condd if=main.bin of=/dev/sdb bs=512. La computadora portátil carga Intel UNDI y me da el siguiente error:No bootable device - insert boot disk and press any key.

Así que traté de depurarlo con Bochs y noté que Bochs reconoce este archivo binario como de arranque. Sin embargo, nada se había cargado despuésint 13h ejecutado.

Luego intenté cargar mi vieja PC desde esta unidad flash, ¡y funciona! Carga el programa y lo ejecuta correctamente. QEMU me da el mismo resultado.

Aquí está el código del gestor de arranque:

org 0x7c00
bits 16

boot:
    cli
    ; Overlap CS and DS
    mov ax, cs
    mov ds, ax
    mov es, ax
    ; Setup 4K stack before this bootloader
    mov ax, 0x07c0
    mov ss, ax
    mov sp, 4096
    ; Load next sectors
    mov si, DAP
    mov ah, 42h
    ; DL didn't changed
    int 13h
    ; Start
    jmp bootend

; Disk address packet
DAP:
    db 10h, 0
    dw %1 ; Number of sectors to be loaded
    dd bootend
    dq 1

; Fill the rest of bootsector with zeroes and end it
times 510 - ($ - boot) db 0
dw 0xAA55
bootend:

bochsrc:

megs: 32
romimage: file=/usr/share/bochs/BIOS-bochs-latest, address=0xfffe0000
vgaromimage: file=/usr/share/bochs/VGABIOS-lgpl-latest
floppya: 1_44=main.bin, status=inserted
boot: a
panic: action=ask
log: bochsout.txt
mouse: enabled=0
keyboard: type=mf, serial_delay=200, paste_delay=100000
display_library: x, options="gui_debug"

Respuestas a la pregunta(1)

Su respuesta a la pregunta