times 442 - ($-$$) db 0 db "####" times 446 - ($-$$) db 0 mbr_table: .part_1: db 0x80 ; bootable flag db 0, 2, 0 ; CHS - start-address (ordering: cylinder, sector, header) db 0x9d db 0, 16, 0 ; CHS - end-address (ordering: cylinder, sector, header) dd 2 dd 16 .part_2: db 0x00 ; bootable flag db 0, 0, 0 ; CHS - start-address (ordering: cylinder, sector, header) db 0x0 db 0, 0, 0 ; CHS - end-address (ordering: cylinder, sector, header) dd 0 dd 0 .part_3: db 0x00 ; bootable flag db 0, 0, 0 ; CHS - start-address (ordering: cylinder, sector, header) db 0x00 db 0, 0, 0 ; CHS - end-address (ordering: cylinder, sector, header) dd 0 dd 0 .part_4: db 0x00 ; bootable flag db 0, 0, 0 ; CHS - start-address (ordering: cylinder, sector, header) db 0x00 db 0, 0, 0 ; CHS - end-address (ordering: cylinder, sector, header) dd 0 dd 0 .signature: db 0x55, 0xaa second_stage: ;mov si, finish_text ;mov dl, 36 ;mov dh, 12 ;mov cx, 8 ; set the video mode correctly xor ah, ah ; bios-function (set video mode) mov al, 3 ; video mode with 80x25 characters int 0x10 .happiness: mov ah, 0x02 ; action: move cursor mov bh, 0 ; page mov dh, 1 ; row mov dl, 1 ; column int 0x10 mov ah, 0x0a ; action: write character mov al, '$' ; character mov bh, 0 ; page mov cx, 13 ; count int 10h jmp .happiness .prolog: push di push cx push bx push ax xor di, di ; character index .printing_loop: .set_cursor_position: .write_character: push cx ; save len_buffer ; get the current character mov bx, si add bx, di mov al, [bx] ; al now contains the current character ; set the other needed interrupt values mov ah, 0x0a ; wanted function (write character at cursor position) mov bh, 0 ; page number mov cx, 1 ; repetitions of character int 0x10 ; call bios basic draw functions pop cx ; restore len_buffer inc dl ; go to next column ; go to a new line if needed cmp dl, 80 jb .no_new_line_needed xor dl, dl inc dh ; increase column .no_new_line_needed: inc di ; go to next character ; go further if the string-printing hasn't been finished cmp di, cx jb .printing_loop .epilog: jmp .epilog finish_text: db "-FINISH-"