Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use16
- org 7C00h
- mov ax, 9ch
- mov ss, ax
- mov sp, 4096d
- mov ax, 7C0h
- mov ds, ax
- mov ah, 02h
- mov dx, 0000h
- int 10h
- ;----------------------------------------
- loadup:
- mov ah, 00h
- mov dl, 00h
- int 13h
- jc reset_err
- mov ah, 00h
- mov al, 03h
- int 10h
- mov ah, 0Eh
- mov al, 'N'
- int 10h
- mov al, 'O'
- int 10h
- mov al, 'S'
- int 10h
- mov al, 20h
- int 10h
- mov al, '1'
- int 10h
- mov al, '.'
- int 10h
- mov al, '0'
- int 10h
- mov al, '.'
- int 10h
- mov al, '4'
- int 10h
- call print_enter
- kernel_load:
- mov ah, 02h
- mov al, 01h
- mov ch, 00h
- mov dh, 00h
- mov cl, 02h
- mov dl, 00h
- mov bx, 2000h
- mov es, bx
- mov bx, 0000h
- int 13h
- jc int13_err
- mov ch, [es:bx]
- inc bx
- mov dh, [es:bx]
- inc bx
- mov cl, [es:bx]
- inc bx
- mov al, [es:bx]
- cmp al, 0FFh
- je non_sys_disk
- mov ah, 02h
- mov dl, 00h
- mov bx, 1000h
- mov es, bx
- mov bx, 0000h
- int 13h
- jc int13_err
- jmp 1000h:0000h
- stop:
- cli
- hlt
- jmp stop
- non_sys_disk:
- mov ah, 0Eh
- mov al, 'F'
- int 10h
- mov al, 'S'
- int 10h
- mov al, 'B'
- int 10h
- mov al, 20h
- int 10h
- mov al, 'E'
- int 10h
- mov al, 'R'
- int 10h
- int 10h
- jmp stop
- int13_err:
- mov ah, 0Eh
- mov al, 'I'
- int 10h
- mov al, '1'
- int 10h
- mov al, '3'
- int 10h
- mov al, 20h
- int 10h
- mov al, 'E'
- int 10h
- mov al, 'R'
- int 10h
- int 10h
- jmp stop
- reset_err:
- mov ah, 0Eh
- mov al, 'R'
- int 10h
- mov al, 'S'
- int 10h
- mov al, 'T'
- int 10h
- mov al, 20h
- int 10h
- mov al, 'E'
- int 10h
- mov al, 'R'
- int 10h
- int 10h
- print_enter:
- mov ah, 03h
- int 10h
- mov ah, 02h
- inc dh
- mov dl, 00h
- int 10h
- ret
- times 510-($-$$) db 0
- dw 0xAA55
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement