OSDN Git Service

svn rev.329より移動。
[chnosproject/CHNOSProject.git] / CHNOSProject / chnos / tolset_chn_000 / chnos_008 / apilib / a_nask.nas
diff --git a/CHNOSProject/chnos/tolset_chn_000/chnos_008/apilib/a_nask.nas b/CHNOSProject/chnos/tolset_chn_000/chnos_008/apilib/a_nask.nas
new file mode 100644 (file)
index 0000000..1126120
--- /dev/null
@@ -0,0 +1,162 @@
+[FORMAT "WCOFF"]\r
+[INSTRSET "i486p"]\r
+[OPTIMIZE 1]\r
+[OPTION 1]\r
+[BITS 32]\r
+[FILE "a_nask.nas"]\r
+       GLOBAL  _api_putchar\r
+       GLOBAL  _api_putstr\r
+       GLOBAL  _api_end\r
+       GLOBAL  _api_openwin\r
+       GLOBAL  _api_putstrwin\r
+       GLOBAL  _api_boxfilwin\r
+       GLOBAL  _api_initmalloc\r
+       GLOBAL  _api_malloc\r
+       GLOBAL  _api_free\r
+       GLOBAL  _api_point\r
+       GLOBAL  _api_linewin\r
+\r
+[SECTION .text]\r
+\r
+_api_putchar:\r
+       mov     edx,1\r
+       mov     al,[esp+4]\r
+       int     0x40\r
+       ret\r
+\r
+_api_putstr:\r
+       push    ebx\r
+       mov     edx,2\r
+       mov     ebx,[esp+8]\r
+       int     0x40\r
+       pop     ebx\r
+       ret\r
+\r
+_api_end:\r
+       mov     edx,4\r
+       int     0x40\r
+\r
+_api_openwin:\r
+;col_inv\82Í\96³\8e\8b\82³\82ê\82Ü\82·\81Bbuf\82Íunsigned char\82Ì\82Ý\8b\96\89Â\81B\r
+       push    edi\r
+       push    esi\r
+       push    ebx\r
+       mov     edx,5\r
+       mov     ebx,[esp+16]\r
+       mov     esi,[esp+20]\r
+       mov     edi,[esp+24]\r
+       mov     eax,[esp+28]\r
+       mov     ecx,[esp+32]\r
+       int     0x40\r
+       pop     ebx\r
+       pop     esi\r
+       pop     edi\r
+       ret\r
+\r
+_api_putstrwin:\r
+;len\82Í\96³\8e\8b\82³\82ê\82Ü\82·\81B\r
+       push    edi\r
+       push    esi\r
+       push    ebp\r
+       push    ebx\r
+       mov     edx,6\r
+       mov     ebx,[esp+20]\r
+       mov     esi,[esp+24]\r
+       mov     edi,[esp+28]\r
+       mov     eax,[esp+32]\r
+       mov     ecx,[esp+36]\r
+       mov     ebp,[esp+40]\r
+       int     0x40\r
+       pop     ebx\r
+       pop     ebp\r
+       pop     esi\r
+       pop     edi\r
+       ret\r
+\r
+_api_boxfilwin:\r
+;\90F\8ew\92è\82Í\82Æ\82è\82 \82¦\82¸32\83r\83b\83g\82Å\8ds\82Á\82Ä\82­\82¾\82³\82¢\81B\r
+       push    edi\r
+       push    esi\r
+       push    ebp\r
+       push    ebx\r
+       mov     edx,7\r
+       mov     ebx,[esp+20]\r
+       mov     eax,[esp+24]\r
+       mov     ecx,[esp+28]\r
+       mov     esi,[esp+32]\r
+       mov     edi,[esp+36]\r
+       mov     ebp,[esp+40]\r
+       int     0x40\r
+       pop     ebx\r
+       pop     ebp\r
+       pop     esi\r
+       pop     edi\r
+       ret\r
+\r
+\r
+_api_initmalloc:\r
+       push    ebx\r
+       mov     edx,8\r
+       mov     ebx,[cs:0x0020]\r
+       mov     eax,ebx\r
+       add     eax,32*1024\r
+       mov     ecx,[cs:0x0000]\r
+       sub     ecx,eax\r
+       int     0x40\r
+       pop     ebx\r
+       ret\r
+\r
+_api_malloc:\r
+       push    ebx\r
+       mov     edx,9\r
+       mov     ebx,[cs:0x0020]\r
+       mov     ecx,[esp+8]\r
+       int     0x40\r
+       pop     ebx\r
+       ret\r
+\r
+_api_free:\r
+       push    ebx\r
+       mov     edx,10\r
+       mov     ebx,[cs:0x0020]\r
+       mov     eax,[esp+8]\r
+       mov     ecx,[esp+12]\r
+       int     0x40\r
+       pop     ebx\r
+       ret\r
+\r
+_api_point:\r
+;\90F\8ew\92è\82Í\82Æ\82è\82 \82¦\82¸32\83r\83b\83g\82Å\8ds\82Á\82Ä\82­\82¾\82³\82¢\81B\r
+       push    edi\r
+       push    esi\r
+       push    ebx\r
+       mov     edx,11\r
+       mov     ebx,[esp+16]\r
+       mov     esi,[esp+20]\r
+       mov     edi,[esp+24]\r
+       mov     eax,[esp+28]\r
+       int     0x40\r
+       pop     ebx\r
+       pop     esi\r
+       pop     edi\r
+       ret     \r
+\r
+_api_linewin:\r
+       push    edi\r
+       push    esi\r
+       push    ebp\r
+       push    ebx\r
+       mov     edx,13\r
+       mov     ebx,[esp+20]\r
+       mov     eax,[esp+24]\r
+       mov     ecx,[esp+28]\r
+       mov     esi,[esp+32]\r
+       mov     edi,[esp+36]\r
+       mov     ebp,[esp+40]\r
+       int     0x40\r
+       pop     ebx\r
+       pop     ebp\r
+       pop     esi\r
+       pop     edi\r
+       ret\r
+\r