You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

99 lines
1.7 KiB
NASM

[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 print
mov ah, 06h ;draw rect on background
mov cx, 0404h
mov dx, 113Dh
mov bh, 2Eh
int 10h
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 ah, 0x0F
jmp 0x0:0x7c00 ;jump back to bootloader init
hlt
over:
jmp wait_for_key
msg1 db "POETIC SOFTWARE",0x0A,0
msg2 db "testasdfjah lksjdhflkajshd lkjahs lkdjfhals khfdas ohne dieses wort und noch mehr whaaat",0x0D,0x0A,0