added a second program to load from 0x2000 on keypress 0 or 1
parent
20e2e1a88c
commit
b33cc00d31
Binary file not shown.
@ -0,0 +1,90 @@
|
||||
[org 0x2000]
|
||||
|
||||
|
||||
start:
|
||||
mov ah, 01h ;make cursor invisible
|
||||
mov cx, 2607h
|
||||
int 10h
|
||||
|
||||
mov ah, 06h ; Scroll up function
|
||||
xor al, al ; Clear entire screen
|
||||
xor cx, cx ; Upper left corner CH=row, CL=column
|
||||
mov dx, 184FH ; lower right corner DH=row, DL=column
|
||||
mov bh, 1Eh ; YellowOnBlue
|
||||
int 10H ; execute interrupt
|
||||
|
||||
mov ah, 06h ;draw rect on background
|
||||
mov cx, 0101h
|
||||
mov dx, 164Dh
|
||||
mov bh, 4Fh
|
||||
int 10h
|
||||
|
||||
mov ah, 06h ;draw shadow
|
||||
mov cx, 1702h
|
||||
mov dx, 174Eh
|
||||
mov bh, 0Eh
|
||||
int 10h
|
||||
mov ah, 06h ;draw shadow
|
||||
mov cx, 024Eh
|
||||
mov dx, 174Eh
|
||||
mov bh, 0Eh
|
||||
int 10h
|
||||
|
||||
|
||||
mov ah, 02h ;sets cursor to top to write
|
||||
mov bh, 0h
|
||||
mov dh, 1h
|
||||
mov dl, 1h
|
||||
int 10h
|
||||
|
||||
mov al, 0xC9 ;draw border
|
||||
mov bl, 0x03
|
||||
mov ah,0x0e
|
||||
int 10h
|
||||
mov al, 0xCD
|
||||
mov bl, 0x03
|
||||
mov ah,0x0e
|
||||
int 10h
|
||||
|
||||
mov ah, 02h ;sets cursor to top to write
|
||||
mov bh, 0h
|
||||
mov dh, 4h
|
||||
mov dl, 4h
|
||||
int 10h
|
||||
|
||||
mov si, msg1
|
||||
call print
|
||||
mov si, msg2
|
||||
|
||||
call wait_for_key
|
||||
|
||||
wait_for_key:
|
||||
mov ah, 0x00
|
||||
int 0x16
|
||||
cmp al, "0"
|
||||
je exit_bootloader
|
||||
jmp over
|
||||
|
||||
|
||||
print:
|
||||
lodsb
|
||||
or al,al
|
||||
jz .exit
|
||||
mov bl, 0x03
|
||||
mov ah,0x0e
|
||||
int 10h
|
||||
jmp print
|
||||
.exit:
|
||||
ret
|
||||
|
||||
exit_bootloader:
|
||||
mov dl, 0x05
|
||||
jmp 0x0:0x7c00 ;jump back to bootloader init
|
||||
hlt
|
||||
|
||||
over:
|
||||
jmp wait_for_key
|
||||
|
||||
|
||||
msg1 db "TEST",0x0A,0
|
||||
msg2 db "TEST",0x0D,0x0A,0
|
Binary file not shown.
Loading…
Reference in New Issue