Advertisement
Guest User

Untitled

a guest
Oct 29th, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     BITS 16
  2. start:
  3.     mov ax, 07C0h       ; Set up 4K stack space after this bootloader
  4.     add ax, 288     ; (4096 + 512) / 16 bytes per paragraph
  5.     mov ss, ax
  6.     mov sp, 4096
  7.  
  8.     mov ax, 07C0h       ; Set data segment to where we're loaded
  9.     mov ds, ax
  10.  
  11. loop:
  12.     mov ah, 00h
  13.  
  14.     int 16h
  15.  
  16.     mov ah, 0Eh
  17.  
  18.     int 10h
  19.  
  20.     cmp al, 0Dh
  21.     je set_video_mode
  22.  
  23.     jmp loop
  24.  
  25. set_video_mode:
  26.     mov ah, 0Fh
  27.     int 10h
  28.     cmp al, 13h
  29.     je set_video_mode_back
  30.  
  31.     mov ah, 00h
  32.     mov al, 13h
  33.  
  34.     int 10h
  35.  
  36.     jmp init_draw
  37.  
  38. set_video_mode_back:
  39.     mov ah, 00h
  40.     mov al, 3h
  41.  
  42.     int 10h
  43.  
  44.     mov al, 0
  45.  
  46.     jmp loop
  47.  
  48. init_draw:
  49.     mov ax, 0A000h;
  50.     mov es, ax;
  51.    
  52.     mov ax, 32010
  53.     mov di, ax
  54.     mov dl, 7
  55.  
  56.     mov [es:di], dl
  57.  
  58.     jmp draw
  59.  
  60. draw:
  61.  
  62.     inc di
  63.     inc dl
  64.  
  65.     cmp di, 32009
  66.     je loop
  67.  
  68.     cmp dl, 13
  69.     je c_color
  70.  
  71.     mov [es:di], dl
  72.  
  73.     jmp draw
  74.  
  75. c_color:
  76.     mov dl, 0
  77.     jmp draw
  78.  
  79.     times 510-($-$$) db 0   ; Pad remainder of boot sector with 0s
  80.     dw 0xAA55       ; The standard PC boot signature
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement