Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- BITS 16
- start:
- mov ax, 07C0h ; Set up 4K stack space after this bootloader
- add ax, 288 ; (4096 + 512) / 16 bytes per paragraph
- mov ss, ax
- mov sp, 4096
- mov ax, 07C0h ; Set data segment to where we're loaded
- mov ds, ax
- loop:
- mov ah, 00h
- int 16h
- mov ah, 0Eh
- int 10h
- cmp al, 0Dh
- je set_video_mode
- jmp loop
- set_video_mode:
- mov ah, 0Fh
- int 10h
- cmp al, 13h
- je set_video_mode_back
- mov ah, 00h
- mov al, 13h
- int 10h
- jmp init_draw
- set_video_mode_back:
- mov ah, 00h
- mov al, 3h
- int 10h
- mov al, 0
- jmp loop
- init_draw:
- mov ax, 0A000h;
- mov es, ax;
- mov ax, 32010
- mov di, ax
- mov dl, 7
- mov [es:di], dl
- jmp draw
- draw:
- inc di
- inc dl
- cmp di, 32009
- je loop
- cmp dl, 13
- je c_color
- mov [es:di], dl
- jmp draw
- c_color:
- mov dl, 0
- jmp draw
- times 510-($-$$) db 0 ; Pad remainder of boot sector with 0s
- dw 0xAA55 ; The standard PC boot signature
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement