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