Just in case, I'll leave the source code for my bootloader. (Google Translate)
Code: Select all
org 0x7C00
;FAT12
jmp short inicio
nop
nombre_mundial db 'CEOS '
tamaño_byte dw 512
cantidad_sector dw 1
cluster db 1
sectores_reservados dw 6
tabla_archivos db 2
direcotorio_raiz dw 224
total_de_sectores dw 2880
descriptor_de_medio db 0xF0
sectores_por_fat dw 9
numero_de_sectores_por_cara dw 18
numero_de_cabezas dw 2
sectores_ocultos dd 0
sectores_grandes dd 0
inicio:
jmp pila
texto:
bienvenida db 'Bienvenido a CEOS 0.0.1 RE...', 0x0D, 0x0A, 0
;Stack
pila:
xor ax, ax
mov ds, ax
mov es, ax
mov ss, ax
mov sp, 0x8000
cld
mov si,bienvenida
mov ax,0xB800
mov es,ax
xor di,di
calls;
call video
call disk
jmp $
;storage sector
disk:
Push ax
mov ax,0x0000
mov es,ax
mov bx,0x9000
mov di,5
leer:
mov ah,0x2
mov al,5
mov ch,0
mov cl,2
mov dh,0
mov dl,0x00
int 0x13
jnc Odisk
errors:
xor ax, ax
int 0x13
dec di
jnz leer
jc muerte_silenciosa
muerte_silenciosa:
cli
HLT
POP AX
ret
Odisk:
Pop ax
jmp 0x0000:0x9000
Video mode (BIOS)
video:
push ax
push si
push bx
bucle010:
lodsb
or al, al
jz .final
mov ah,0x0E
mov bh,0
int 0x10
jmp bucle010
.final:
pop bx
pop si
pop ax
ret
times 510-($-$$) db 0
dw 0xAA55






