]> wirehaze git hosting - BOS.git/blobdiff - kernel/vga/vga.asm

wirehaze git hosting

Update shell.asm
[BOS.git] / kernel / vga / vga.asm
index c27c62a4cad3e725804581ae442b901964e66308..460dc3283f6f43e1af182247da9df06fe749a4b3 100755 (executable)
      ;   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
@@ -124,25 +125,25 @@ set_mode_0x13:
 ; 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
@@ -154,33 +155,33 @@ put_0x13_pixel:
 ; 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
@@ -190,32 +191,32 @@ put_0x13_sprite:
 ; 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