OSDN Git Service

SimpleHTMLEditorを追加。
[chnosproject/CHNOSProject.git] / CHNOSProject / chnos / tolset_chn_000 / chnos_008 / chnos / asmhead.nas
diff --git a/CHNOSProject/chnos/tolset_chn_000/chnos_008/chnos/asmhead.nas b/CHNOSProject/chnos/tolset_chn_000/chnos_008/chnos/asmhead.nas
deleted file mode 100644 (file)
index 6483b9b..0000000
+++ /dev/null
@@ -1,649 +0,0 @@
-\r
-[INSTRSET "i486p"]\r
-VBEMODE equ             0x0115  ;0x0115\r
-;Graphic Modes\r
-;0x0100                640x400         256\r
-;0x0101                640x480         256\r
-;0x0102                800x600         16\r
-;0x0103                800x600         256\r
-;0x0104                1024x768        16\r
-;0x0105                1024x768        256\r
-;0x0106                1280x1024       16\r
-;0x0107                1280x1024       256\r
-;0x010D                320x200         32768           (1:5:5:5)\r
-;0x010E                320x200         65536           (0:5:6:5)\r
-;0x010F                320x200         16777216        (8:8:8:8)\r
-;0x0110                640x480         32768           (1:5:5:5)\r
-;0x0111                640x480         65536           (0:5:6:5)\r
-;0x0112                640x480         16777216        (8:8:8:8)\r
-;0x0113                800x600         32768           (1:5:5:5)\r
-;0x0114                800x600         65536           (0:5:6:5)\r
-;0x0115                800x600         16777216        (8:8:8:8)\r
-;0x0116                1024x768        32768           (1:5:5:5)\r
-;0x0117                1024x768        65536           (0:5:6:5)\r
-;0x0118                1024x768        16777216        (8:8:8:8)\r
-;0x0119                1280x1024       32768           (1:5:5:5)\r
-;0x011A                1280x1024       65536           (0:5:6:5) \r
-;0x011B                1280x1024       16777216        (8:8:8:8) \r
-\r
-\r
-BOTPAK  equ             0x00280000\r
-DSKCAC  equ             0x00100000\r
-DSKCAC0 equ             0x00008000\r
-\r
-; BOOT_INFO\r
-CYLS    equ             0x0ff0\r
-LEDS    equ             0x0ff1\r
-VMODE   equ             0x0ff2\r
-SCRNX   equ             0x0ff4\r
-SCRNY   equ             0x0ff6\r
-VRAM    equ             0x0ff8\r
-\r
-[BITS 16]\r
-\r
-        org     0xc200\r
-asmhead:\r
-        mov     ax, 0\r
-        mov     ss, ax\r
-        mov     sp, 0xc200\r
-        mov     ds, ax\r
-        mov     es, ax\r
-\r
-        call    backc\r
-\r
-        lea     esi, [msg001]\r
-        mov     edi, 0\r
-        call    printf\r
-\r
-        call    a20_try_loop\r
-\r
-        lea     esi, [msg002]\r
-        mov     edi, 80*2\r
-        call    printf\r
-\r
-        call    vbecheck\r
-        call    keyled\r
-        call    pmode\r
-\r
-\r
-;\83T\83u\83\8b\81[\83`\83\93\r
-\r
-halthalt:\r
-        lea     esi, [msg005]\r
-        mov     ax, 0xB800\r
-        mov     es, ax\r
-        mov     edi, 80*2*2*2*2\r
-        call    printf\r
-        call    entkeywait\r
-        call    shutdown\r
-\r
-printf:\r
-        push    eax\r
-        mov     ax, 0xB800\r
-        mov     es, ax\r
-printf_loop:\r
-        mov     al, byte [esi]\r
-        mov     byte [es:edi], al\r
-        or      al, al\r
-        jz      printf_end\r
-        inc     edi\r
-        mov     byte [es:edi], 0x03\r
-        inc     esi\r
-        inc     edi\r
-        jmp     printf_loop\r
-printf_end:\r
-        pop     eax\r
-        ret\r
-\r
-backc:\r
-        mov     ax,0xb800\r
-        mov     es,ax\r
-        mov     di,0\r
-        mov     ax,word[backcc]\r
-        mov     cx,0x7ff\r
-\r
-paint:\r
-        mov     word[es:di],ax\r
-        add     di,2\r
-        dec     cx\r
-        jnz     paint\r
-        ret\r
-\r
-A20_TEST_LOOPS          equ     32\r
-A20_ENABLE_LOOPS        equ     255\r
-A20_TEST_ADDR           equ     4*0x80\r
-\r
-\r
-a20_try_loop:\r
-a20_none:\r
-        call    a20_test\r
-        jnz     a20_done\r
-a20_bios:\r
-        mov     ax, 0x2401\r
-\r
-        pushfd\r
-        int     0x15\r
-        popfd\r
-        call    a20_test\r
-        jnz     a20_done\r
-a20_kbc:\r
-        call    empty_8042\r
-        call    a20_test\r
-        jnz     a20_done\r
-        mov     al, 0xD1\r
-        out     0x64, al\r
-        call    empty_8042\r
-        mov     al, 0xDF\r
-        out     0x60, al\r
-        call    empty_8042\r
-a20_kbc_wait:\r
-        xor     cx, cx\r
-a20_kbc_wait_loop:\r
-        call    a20_test\r
-        jnz     a20_done\r
-        loop    a20_kbc_wait_loop\r
-a20_fast:\r
-        in      al, 0x92\r
-        or      al, 0x02\r
-\r
-        and     al, 0xFE\r
-        out     0x92, al\r
-a20_fast_wait:\r
-        xor     cx, cx\r
-a20_fast_wait_loop:\r
-        call    a20_test\r
-        jnz     a20_done\r
-        loop    a20_fast_wait_loop\r
-        dec     byte [a20_tries]\r
-        jnz     a20_try_loop\r
-\r
-a20_die:\r
-        lea     esi, [msg003]    \r
-        mov     edi, 80*2          \r
-        call    printf\r
-        jmp     halthalt\r
-\r
-a20_tries:\r
-        db      A20_ENABLE_LOOPS\r
-\r
-a20_done:\r
-        ret\r
-\r
-a20_test:\r
-        push    cx\r
-        push    ax\r
-        xor     cx, cx\r
-        mov     fs, cx                      \r
-        dec     cx\r
-        mov     gs, cx                      \r
-        mov     cx, A20_TEST_LOOPS\r
-        mov     ax, word [fs:A20_TEST_ADDR]\r
-        push    ax\r
-a20_test_wait:\r
-        inc     ax\r
-        mov     word [fs:A20_TEST_ADDR], ax\r
-        call    delay\r
-        cmp     ax, word [gs:A20_TEST_ADDR+0x10]\r
-        loop    a20_test_wait\r
-\r
-        pop     word [fs:A20_TEST_ADDR]\r
-        pop     ax\r
-        pop     cx\r
-        ret\r
-\r
-empty_8042:\r
-        push    ecx\r
-        mov     ecx, 100000\r
-\r
-empty_8042_loop:\r
-        dec     ecx\r
-        jz      empty_8042_end_loop\r
-\r
-        call    delay\r
-\r
-        in      al, 0x64\r
-        test    al, 1           \r
-        jz      no_output\r
-\r
-        call    delay\r
-;       in      al, 0x60\r
-        jmp     empty_8042_loop\r
-\r
-no_output:\r
-        test    al, 2\r
-        jnz     empty_8042_loop\r
-\r
-empty_8042_end_loop:\r
-        pop     ecx\r
-        ret\r
-\r
-delay:\r
-        out     0x80, al\r
-        ret\r
-\r
-getc:\r
-        mov     ah,0x00\r
-        int     0x16\r
-        ret\r
-\r
-vbecheck:\r
-        lea     esi, [msg007]\r
-        mov     edi, 80*2*3             \r
-        call    printf\r
-\r
-        lea     esi, [msg008]\r
-        mov     edi, 80*2*4\r
-        call    printf\r
-\r
-        lea     esi, [msg009]\r
-        mov     edi, 80*2*5\r
-        call    printf\r
-\r
-        lea     esi, [msg010]\r
-        mov     edi, 80*2*6\r
-        call    printf\r
-\r
-        lea     esi, [msg011]\r
-        mov     edi, 80*2*7\r
-        call    printf\r
-\r
-        lea     esi, [msg012]\r
-        mov     edi, 80*2*8\r
-        call    printf\r
-\r
-        call    getc\r
-\r
-        cmp     ah,0x01\r
-        je      vbe00\r
-\r
-        cmp     ah,0x02\r
-        je      vbe01\r
-        cmp     ah,0x03\r
-        je      vbe02\r
-        cmp     ah,0x04\r
-        je      vbe03\r
-        cmp     ah,0x05\r
-        je      vbe04\r
-        cmp     ah,0x06\r
-        je      vbe05\r
-        cmp     ah,0x07\r
-        je      vbe06\r
-        cmp     ah,0x08\r
-        je      vbe07\r
-        cmp     ah,0x09\r
-        je      vbe08\r
-        cmp     ah,0x0a\r
-        je      vbe09\r
-\r
-        cmp     ah,0x1e\r
-        je      vbe0a\r
-        cmp     ah,0x30\r
-        je      vbe0b\r
-        cmp     ah,0x2e\r
-        je      vbe0c\r
-        cmp     ah,0x20\r
-        je      vbe0d\r
-        cmp     ah,0x12\r
-        je      vbe0e\r
-        cmp     ah,0x21\r
-        je      vbe0f\r
-        cmp     ah,0x22\r
-        je      vbe0g\r
-        cmp     ah,0x23\r
-        je      vbe0h\r
-        cmp     ah,0x17\r
-        je      vbe0i\r
-\r
-        cmp     ah,0x2d\r
-        je      vbetext\r
-\r
-        jmp     vbecheck\r
-\r
-vbe00:\r
-        mov     al,0x13\r
-        mov     ah,0x00\r
-        int     0x10\r
-        mov     ax,0xe0\r
-        mov     es,ax\r
-        mov     di,0\r
-        mov     word[es:di+0x12],320\r
-        mov     word[es:di+0x14],200\r
-        mov     byte[es:di+0x19],8\r
-        mov     dword[es:di+0x28],0x000a0000\r
-        mov     byte[VMODE],8\r
-        mov     word[SCRNX],320\r
-        mov     word[SCRNY],200\r
-        mov     dword[VRAM],0x000a0000\r
-        ret\r
-\r
-vbe01:\r
-        mov     word[videomode],0x010f\r
-        jmp     vbesub\r
-vbe02:\r
-        mov     word[videomode],0x0112\r
-        jmp     vbesub\r
-vbe03:\r
-        mov     word[videomode],0x0115\r
-        jmp     vbesub\r
-vbe04:\r
-        mov     word[videomode],0x0118\r
-        jmp     vbesub\r
-vbe05:\r
-        mov     word[videomode],0x011b\r
-        jmp     vbesub\r
-vbe06:\r
-        mov     word[videomode],0x011f\r
-        jmp     vbesub\r
-vbe07:\r
-        mov     word[videomode],0x010e\r
-        jmp     vbesub\r
-vbe08:\r
-        mov     word[videomode],0x0111\r
-        jmp     vbesub\r
-vbe09:\r
-        mov     word[videomode],0x0114\r
-        jmp     vbesub\r
-vbe0a:\r
-        mov     word[videomode],0x0117\r
-        jmp     vbesub\r
-vbe0b:\r
-        mov     word[videomode],0x011a\r
-        jmp     vbesub\r
-vbe0c:\r
-        mov     word[videomode],0x011e\r
-        jmp     vbesub\r
-vbe0d:\r
-        mov     word[videomode],0x0100\r
-        jmp     vbesub\r
-vbe0e:\r
-        mov     word[videomode],0x0101\r
-        jmp     vbesub\r
-vbe0f:\r
-        mov     word[videomode],0x0103\r
-        jmp     vbesub\r
-vbe0g:\r
-        mov     word[videomode],0x0105\r
-        jmp     vbesub\r
-vbe0h:\r
-        mov     word[videomode],0x0107\r
-        jmp     vbesub\r
-vbe0i:\r
-        mov     word[videomode],0x011c\r
-        jmp     vbesub\r
-\r
-vbesub:\r
-        mov     ax,0xe0\r
-        mov     es,ax\r
-        mov     di,0\r
-        mov     cx,[videomode]\r
-        mov     ax,0x4f01\r
-        int     0x10\r
-\r
-        mov     ax,0x9000\r
-        mov     es,ax\r
-        mov     di,0\r
-        mov     ax,0x4f00\r
-        int     0x10\r
-        cmp     ax,0x004f\r
-        jne     scrn320\r
-        mov     ax,[es:di+4]\r
-        cmp     ax,0x0200\r
-        jb      scrn320\r
-        mov     cx,[videomode]\r
-        mov     ax,0x4f01\r
-        int     0x10\r
-        cmp     ax,0x004f\r
-        jne     scrn320\r
-\r
-        mov     bx,[videomode]\r
-        add     bx,0x4000\r
-        mov     ax,0x4f02\r
-        int     0x10\r
-        mov     byte[VMODE],16\r
-        mov     ax,[es:di+0x12]\r
-        mov     [SCRNX],ax\r
-        mov     ax,[es:di+0x14]\r
-        mov     [SCRNY],ax\r
-        mov     eax,[es:di+0x28]\r
-        mov     [VRAM],eax\r
-        ret\r
-\r
-vbetext:\r
-        mov     byte[VMODE],0\r
-        mov     word[SCRNX],80\r
-        mov     word[SCRNY],25\r
-        mov     dword[VRAM],0xb8000\r
-        ret\r
-\r
-scrn320:\r
-\r
-        lea     esi, [msg004]            \r
-        mov     edi, 80*2*2*2       \r
-        call    printf\r
-       call    entkeywait\r
-        jmp     vbecheck\r
-\r
-keyled:\r
-        mov     ah,0x02\r
-        int     0x16\r
-        mov     [LEDS],al\r
-        ret\r
-\r
-pmode:\r
-        mov     al,0xff\r
-        out     0x21,al\r
-        nop\r
-        out     0xa1,al\r
-        cli\r
-\r
-        lgdt    [GDTR0]\r
-        mov     eax,cr0\r
-        and     eax,0x7fffffff\r
-        or      eax,0x00000001\r
-        mov     cr0,eax\r
-        jmp     pipelineflush\r
-pipelineflush:\r
-        mov     ax,1*8\r
-        mov     ds,ax\r
-        mov     es,ax\r
-        mov     fs,ax\r
-        mov     gs,ax\r
-        mov     ss,ax\r
-        mov     esi,bootpack    \r
-        mov     edi,BOTPAK      \r
-        mov     ecx,512*1024/4\r
-        call    memcpy\r
-        mov     esi,0x7c00\r
-        mov     edi,DSKCAC\r
-        mov     ecx,512/4\r
-\r
-        call    memcpy\r
-        mov     esi,DSKCAC0+512\r
-        mov     edi,DSKCAC+512\r
-        mov     ecx,0\r
-        mov     cl,byte[CYLS]\r
-        imul    ecx,512*18*2/4\r
-        sub     ecx,512/4\r
-        call    memcpy\r
-\r
-        mov     ebx,BOTPAK\r
-        mov     ecx,[ebx+16]\r
-        add     ecx,3\r
-        shr     ecx,2\r
-        jz      skip\r
-        mov     esi,[ebx+20]\r
-        add     esi,ebx\r
-        mov     edi,[ebx+12]\r
-        call    memcpy\r
-skip:\r
-        mov     esp,[ebx+12]\r
-        jmp     dword 2*8:0x0000001b\r
-\r
-\r
-memcpy:\r
-        mov     eax,[esi]\r
-        add     esi,4\r
-        mov     [edi],eax\r
-        add     edi,4\r
-        sub     ecx,1\r
-        jnz     memcpy\r
-        ret\r
-\r
-entkeywait:\r
-        mov     ah,0\r
-        int     0x16\r
-        cmp     ah,0x1c\r
-        jne     entkeywait\r
-        ret\r
-\r
-shutdown:\r
-        mov     ax,0x5300\r
-        mov     bx,0\r
-        int     0x15\r
-        jc      thend\r
-        mov     ax,0x5301\r
-        mov     bx,0\r
-        int     0x15\r
-        mov     ax,0x530e\r
-        mov     bx,0\r
-        mov     cx,0x0101\r
-        int     0x15\r
-        jc      thend\r
-        mov     ax,0x530f\r
-        mov     bx,0x0001\r
-        mov     cx,0x0001\r
-        int     0x15\r
-        jc      thend\r
-        mov     ax,0x5308\r
-        mov     bx,0x0001\r
-        mov     cx,0x0001\r
-        int     0x15\r
-        jc      thend\r
-        mov     ax,0x5307\r
-        mov     bx,0x0001\r
-        mov     cx,0x0003\r
-        int     0x15\r
-        hlt\r
-\r
-thend:\r
-        lea     esi, [msg006]\r
-        mov     ax, 0xB800\r
-        mov     es, ax\r
-        mov     edi, 80*2*2*2*2\r
-        call    printf\r
-thend2:\r
-        hlt\r
-        jmp     thend2\r
-\r
-;data\r
-\r
-msg001: db      "Welcome to chnos project .",0\r
-msg002: db      "A20GATE on .",0\r
-msg003: db      "A20GATE filed .",0\r
-msg004: db      "Video mode is not supported or invalid.",0\r
-msg005: db      "Press the Enter key to shut down ...",0\r
-msg006: db      "Sorry . Shutdown filed . Press power button .",0\r
-msg007: db      "Video Mode List. Please select the mode number.",0\r
-msg008: db      "32bit--1:320x200--2:640x480--3:800x600--4:1024x768--5:1280x1024--6:1600x1200",0\r
-msg009: db      "16bit--7:320x200--8:640x480--9:800x600--a:1024x768--b:1280x1024--c:1600x1200",0\r
-msg010: db      " 8bit--d:640x400--e:640x480--f:800x600--g:1024x768--h:1280x1024--i:1600x1200",0\r
-msg011: db      "Press ESC to start in VGA mode.",0\r
-msg012: db      "Press X to start in TEXT mode.",0\r
-backcc: db      ".",0x03\r
-\r
-videomode:      dw 0\r
-\r
-                alignb  16\r
-GDT0:\r
-                resb    8                               ; \83k\83\8b\83Z\83\8c\83N\83^\r
-                dw              0xffff,0x0000,0x9200,0x00cf     ; \93Ç\82Ý\8f\91\82«\89Â\94\\83Z\83O\83\81\83\93\83g32bit\r
-                dw              0xffff,0x0000,0x9a28,0x0047     ; \8eÀ\8ds\89Â\94\\83Z\83O\83\81\83\93\83g32bit\81ibootpack\97p\81j\r
-\r
-                dw              0\r
-GDTR0:\r
-                dw              8*3-1\r
-                dd              GDT0\r
-\r
-                alignb  16\r
-bootpack:\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r