; VGA palettes ;\r
;-------------------;\r
\r
- palette256 db 00, 00, 00, 00, 10, 41, 12, 28, 18, 02, 43, 22, 35\r
- db 19, 09, 58, 00, 00, 57, 35, 12, 43, 43, 47, 24, 24\r
- db 28, 20, 24, 60, 10, 60, 15, 31, 47, 63, 62, 56, 20\r
- db 60, 56, 22, 63, 61, 36, 63, 63, 63, 00, 00, 00, 05\r
- db 05, 05, 08, 08, 08, 11, 11, 11, 14, 14, 14, 17, 17\r
- db 17, 20, 20, 20, 24, 24, 24, 28, 28, 28, 32, 32, 32\r
- db 36, 36, 36, 40, 40, 40, 45, 45, 45, 50, 50, 50, 56\r
- db 56, 56, 63, 63, 63, 13, 12, 15, 15, 16, 22, 17, 20\r
- db 29, 19, 24, 36, 21, 28, 43, 23, 31, 50, 25, 34, 57\r
- db 26, 42, 63, 00, 15, 02, 01, 22, 04, 02, 29, 06, 03\r
- db 36, 08, 04, 43, 10, 05, 50, 12, 06, 57, 14, 20, 63\r
- db 40, 18, 06, 07, 25, 12, 11, 33, 17, 14, 40, 23, 18\r
- db 48, 28, 21, 55, 34, 25, 62, 39, 27, 63, 48, 36, 15\r
- db 03, 02, 22, 06, 04, 29, 09, 06, 36, 12, 08, 43, 15\r
- db 10, 50, 18, 12, 57, 21, 14, 63, 28, 20, 15, 00, 00\r
- db 22, 07, 00, 29, 15, 00, 36, 23, 00, 43, 31, 00, 50\r
- db 39, 00, 57, 47, 00, 63, 55, 00, 15, 05, 03, 22, 11\r
- db 07, 29, 17, 11, 36, 23, 15, 43, 29, 19, 50, 35, 23\r
- db 57, 41, 27, 63, 53, 34, 28, 14, 12, 33, 20, 14, 38\r
- db 26, 16, 43, 32, 18, 48, 38, 20, 53, 44, 22, 58, 50\r
- db 24, 63, 56, 30, 05, 05, 06, 10, 10, 13, 15, 15, 20\r
- db 20, 20, 27, 25, 25, 34, 30, 30, 41, 35, 35, 48, 44\r
- db 44, 63, 03, 06, 05, 05, 11, 09, 07, 16, 13, 09, 21\r
- db 17, 11, 26, 21, 13, 31, 25, 15, 36, 29, 20, 48, 38\r
- db 06, 06, 07, 13, 13, 15, 20, 20, 23, 27, 27, 31, 34\r
- db 34, 39, 41, 41, 47, 48, 48, 55, 57, 57, 63, 06, 15\r
- db 04, 12, 22, 08, 18, 29, 12, 24, 36, 16, 30, 43, 20\r
- db 36, 50, 24, 42, 57, 28, 54, 63, 35, 15, 10, 10, 22\r
- db 16, 16, 29, 21, 21, 36, 27, 27, 43, 32, 32, 50, 38\r
- db 38, 57, 43, 43, 63, 54, 54, 15, 15, 06, 22, 22, 12\r
- db 29, 29, 18, 36, 36, 24, 43, 43, 30, 50, 50, 36, 57\r
- db 57, 42, 63, 63, 54, 02, 04, 14, 06, 12, 21, 10, 20\r
- db 28, 14, 28, 35, 18, 36, 42, 22, 44, 49, 26, 52, 56\r
- db 36, 63, 63, 18, 04, 14, 24, 08, 21, 31, 12, 28, 37\r
- db 16, 35, 44, 20, 42, 50, 24, 49, 57, 28, 56, 63, 38\r
- db 63, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
- db 00, 00, 00, 00, 00, 00, 00, 00, 00, 53, 44, 22, 09\r
- db 08, 12, 16, 14, 16, 22, 21, 20, 29, 27, 24, 35, 34\r
- db 28, 42, 40, 32, 48, 47, 36, 57, 56, 43, 08, 12, 16\r
- db 14, 16, 22, 21, 20, 29, 27, 24, 35, 34, 28, 42, 40\r
- db 32, 48, 47, 36, 57, 56, 43, 63, 13, 09, 11, 21, 16\r
- db 15, 27, 22, 18, 36, 29, 22, 42, 35, 25, 51, 42, 29\r
- db 57, 48, 32, 63, 56, 39, 06, 14, 09, 12, 21, 14, 18\r
- db 27, 22, 24, 33, 28, 30, 39, 36, 36, 46, 42, 42, 52\r
- db 47, 50, 59, 53, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
- db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
- db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
- db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
- db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
- db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
- db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
- db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
- db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
- db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
- db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
- db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
- db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
- db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
- db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
- db 00\r
+ palette256:\r
+ db 00, 00, 00, 00, 10, 41, 12, 28, 18, 02, 43, 22, 35\r
+ db 19, 09, 58, 00, 00, 57, 35, 12, 43, 43, 47, 24, 24\r
+ db 28, 20, 24, 60, 10, 60, 15, 31, 47, 63, 62, 56, 20\r
+ db 60, 56, 22, 63, 61, 36, 63, 63, 63, 00, 00, 00, 05\r
+ db 05, 05, 08, 08, 08, 11, 11, 11, 14, 14, 14, 17, 17\r
+ db 17, 20, 20, 20, 24, 24, 24, 28, 28, 28, 32, 32, 32\r
+ db 36, 36, 36, 40, 40, 40, 45, 45, 45, 50, 50, 50, 56\r
+ db 56, 56, 63, 63, 63, 13, 12, 15, 15, 16, 22, 17, 20\r
+ db 29, 19, 24, 36, 21, 28, 43, 23, 31, 50, 25, 34, 57\r
+ db 26, 42, 63, 00, 15, 02, 01, 22, 04, 02, 29, 06, 03\r
+ db 36, 08, 04, 43, 10, 05, 50, 12, 06, 57, 14, 20, 63\r
+ db 40, 18, 06, 07, 25, 12, 11, 33, 17, 14, 40, 23, 18\r
+ db 48, 28, 21, 55, 34, 25, 62, 39, 27, 63, 48, 36, 15\r
+ db 03, 02, 22, 06, 04, 29, 09, 06, 36, 12, 08, 43, 15\r
+ db 10, 50, 18, 12, 57, 21, 14, 63, 28, 20, 15, 00, 00\r
+ db 22, 07, 00, 29, 15, 00, 36, 23, 00, 43, 31, 00, 50\r
+ db 39, 00, 57, 47, 00, 63, 55, 00, 15, 05, 03, 22, 11\r
+ db 07, 29, 17, 11, 36, 23, 15, 43, 29, 19, 50, 35, 23\r
+ db 57, 41, 27, 63, 53, 34, 28, 14, 12, 33, 20, 14, 38\r
+ db 26, 16, 43, 32, 18, 48, 38, 20, 53, 44, 22, 58, 50\r
+ db 24, 63, 56, 30, 05, 05, 06, 10, 10, 13, 15, 15, 20\r
+ db 20, 20, 27, 25, 25, 34, 30, 30, 41, 35, 35, 48, 44\r
+ db 44, 63, 03, 06, 05, 05, 11, 09, 07, 16, 13, 09, 21\r
+ db 17, 11, 26, 21, 13, 31, 25, 15, 36, 29, 20, 48, 38\r
+ db 06, 06, 07, 13, 13, 15, 20, 20, 23, 27, 27, 31, 34\r
+ db 34, 39, 41, 41, 47, 48, 48, 55, 57, 57, 63, 06, 15\r
+ db 04, 12, 22, 08, 18, 29, 12, 24, 36, 16, 30, 43, 20\r
+ db 36, 50, 24, 42, 57, 28, 54, 63, 35, 15, 10, 10, 22\r
+ db 16, 16, 29, 21, 21, 36, 27, 27, 43, 32, 32, 50, 38\r
+ db 38, 57, 43, 43, 63, 54, 54, 15, 15, 06, 22, 22, 12\r
+ db 29, 29, 18, 36, 36, 24, 43, 43, 30, 50, 50, 36, 57\r
+ db 57, 42, 63, 63, 54, 02, 04, 14, 06, 12, 21, 10, 20\r
+ db 28, 14, 28, 35, 18, 36, 42, 22, 44, 49, 26, 52, 56\r
+ db 36, 63, 63, 18, 04, 14, 24, 08, 21, 31, 12, 28, 37\r
+ db 16, 35, 44, 20, 42, 50, 24, 49, 57, 28, 56, 63, 38\r
+ db 63, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
+ db 00, 00, 00, 00, 00, 00, 00, 00, 00, 53, 44, 22, 09\r
+ db 08, 12, 16, 14, 16, 22, 21, 20, 29, 27, 24, 35, 34\r
+ db 28, 42, 40, 32, 48, 47, 36, 57, 56, 43, 08, 12, 16\r
+ db 14, 16, 22, 21, 20, 29, 27, 24, 35, 34, 28, 42, 40\r
+ db 32, 48, 47, 36, 57, 56, 43, 63, 13, 09, 11, 21, 16\r
+ db 15, 27, 22, 18, 36, 29, 22, 42, 35, 25, 51, 42, 29\r
+ db 57, 48, 32, 63, 56, 39, 06, 14, 09, 12, 21, 14, 18\r
+ db 27, 22, 24, 33, 28, 30, 39, 36, 36, 46, 42, 42, 52\r
+ db 47, 50, 59, 53, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
+ db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
+ db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
+ db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
+ db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
+ db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
+ db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
+ db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
+ db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
+ db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
+ db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
+ db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
+ db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
+ db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
+ db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00\r
+ db 00\r
\r
\r
;---------------------------------;\r
; sets the screen to mode 0x03 ;\r
;---------------------------------;\r
set_mode_0x03:\r
- push eax\r
+ push eax\r
\r
- ;mov ax, 0x0003 ; "realmode ax", move to\r
- ;shl eax, 16 ; the high part of eax\r
- ;mov ax, 0x77 ; os function number for ints\r
- ;int 0x32\r
+ ;mov ax, 0x0003 ; "realmode ax", move to\r
+ ;shl eax, 16 ; the high part of eax\r
+ ;mov ax, 0x77 ; os function number for ints\r
+ ;int 0x32\r
\r
- ;mov eax, 0x00030077 ; or it could look like this.\r
+ ;mov eax, 0x00030077 ; or it could look like this.\r
\r
- mov eax, 0x00030000\r
- mov ebx, 0x00100000 ; int no. in high part and\r
- call rmode_int ; realmode bx in low part\r
+ mov eax, 0x00030000\r
+ mov ebx, 0x00100000 ; int no. in high part and\r
+ call rmode_int ; realmode bx in low part\r
\r
- pop eax\r
- ret\r
+ pop eax\r
+ ret\r
\r
\r
;---------------------------------;\r
; sets the screen to mode 0x13 ;\r
;---------------------------------;\r
set_mode_0x13:\r
- push eax\r
- push ebx\r
+ push eax\r
+ push ebx\r
\r
- mov eax, 0x00130000 ; realmode ax in high part\r
- mov ebx, 0x00100000 ; int no. in high part and\r
- call rmode_int ; realmode bx in low part\r
+ mov eax, 0x00130000 ; realmode ax in high part\r
+ mov ebx, 0x00100000 ; int no. in high part and\r
+ call rmode_int ; realmode bx in low part\r
\r
- mov esi, palette256\r
- call set_palette256\r
+ mov esi, palette256\r
+ call set_palette256\r
\r
- pop ebx\r
- pop eax\r
- ret\r
+ pop ebx\r
+ pop eax\r
+ ret\r
\r
\r
;------------------------------------;\r
; output: none. ;\r
;------------------------------------;\r
put_0x13_pixel:\r
- push ax\r
- push bx\r
- push cx\r
- push edi\r
-\r
- mov edi, 0xa0000 ; directly to mem\r
- add di, bx\r
- mov bx, cx\r
- shl cx, 8\r
- shl bx, 6\r
- add cx, bx\r
- add di, cx\r
- stosb\r
-\r
- pop edi\r
- pop cx\r
- pop bx\r
- pop ax\r
- ret\r
+ push ax\r
+ push bx\r
+ push cx\r
+ push edi\r
+\r
+ mov edi, 0xa0000 ; directly to mem\r
+ add di, bx\r
+ mov bx, cx\r
+ shl cx, 8\r
+ shl bx, 6\r
+ add cx, bx\r
+ add di, cx\r
+ stosb\r
+\r
+ pop edi\r
+ pop cx\r
+ pop bx\r
+ pop ax\r
+ ret\r
\r
\r
;-----------------------------------------------------;\r
; output: none. ;\r
;-----------------------------------------------------;\r
put_0x13_sprite:\r
- pushad ; this was a\r
- .row_loop: ; nightmare to write.\r
- dec dx ; guess how many times\r
- push cx ; i got lost in the push\r
- push ax ; and pops here.. ;)\r
- .col_loop: ; not to mention what\r
- dec cx ; time it was when i wrote\r
- push ax ; it.. :P\r
- push bx\r
- push cx\r
- mov cx, bx\r
- mov bx, ax\r
- lodsb\r
- call put_0x13_pixel\r
- pop cx\r
- pop bx\r
- pop ax\r
- inc ax\r
- cmp cx, 0\r
- jne .col_loop\r
- pop ax\r
- pop cx\r
- inc bx\r
- cmp dx, 0\r
- jne .row_loop\r
- popad\r
- ret\r
+ pushad ; this was a\r
+ .row_loop: ; nightmare to write.\r
+ dec dx ; guess how many times\r
+ push cx ; i got lost in the push\r
+ push ax ; and pops here.. ;)\r
+ .col_loop: ; not to mention what\r
+ dec cx ; time it was when i wrote\r
+ push ax ; it.. :P\r
+ push bx\r
+ push cx\r
+ mov cx, bx\r
+ mov bx, ax\r
+ lodsb\r
+ call put_0x13_pixel\r
+ pop cx\r
+ pop bx\r
+ pop ax\r
+ inc ax\r
+ cmp cx, 0\r
+ jne .col_loop\r
+ pop ax\r
+ pop cx\r
+ inc bx\r
+ cmp dx, 0\r
+ jne .row_loop\r
+ popad\r
+ ret\r
\r
\r
;---------------------------------------------;\r
; output: none. ;\r
;---------------------------------------------;\r
set_palette256:\r
- push ax\r
- push cx\r
- push dx\r
-\r
- xor cx, cx\r
- .l1:\r
- mov dx, 0x03C8\r
- mov al, cl ; color no. = loop no.\r
- out dx, al\r
- inc dx ; port 0x3C9\r
- mov al, byte [esi] ; red\r
- out dx, al\r
- inc esi\r
- mov al, byte [esi] ; green\r
- out dx, al\r
- inc esi\r
- mov al, byte [esi] ; blue\r
- out dx, al\r
- inc esi\r
-\r
- inc cx\r
- cmp cx, 256\r
- jl .l1\r
-\r
- pop dx\r
- pop cx\r
- pop ax\r
- ret\r
+ push ax\r
+ push cx\r
+ push dx\r
+\r
+ xor cx, cx\r
+ .l1:\r
+ mov dx, 0x03C8\r
+ mov al, cl ; color no. = loop no.\r
+ out dx, al\r
+ inc dx ; port 0x3C9\r
+ mov al, byte [esi] ; red\r
+ out dx, al\r
+ inc esi\r
+ mov al, byte [esi] ; green\r
+ out dx, al\r
+ inc esi\r
+ mov al, byte [esi] ; blue\r
+ out dx, al\r
+ inc esi\r
+\r
+ inc cx\r
+ cmp cx, 256\r
+ jl .l1\r
+\r
+ pop dx\r
+ pop cx\r
+ pop ax\r
+ ret\r
\r