OSDN Git Service

SimpleHTMLEditorを追加。
[chnosproject/CHNOSProject.git] / CHNOSProject / chnos / tolset_chn_000 / chnos_008 / chnos / naskfunc.nas
diff --git a/CHNOSProject/chnos/tolset_chn_000/chnos_008/chnos/naskfunc.nas b/CHNOSProject/chnos/tolset_chn_000/chnos_008/chnos/naskfunc.nas
deleted file mode 100644 (file)
index 50bac68..0000000
+++ /dev/null
@@ -1,891 +0,0 @@
-[FORMAT "WCOFF"]\r
-[INSTRSET "i486p"]\r
-[BITS 32]\r
-[FILE "naskfunc.nas"]\r
-\r
-       GLOBAL  _io_hlt, _io_cli, _io_sti, _io_stihlt\r
-       GLOBAL  _io_in8,  _io_in16,  _io_in32\r
-       GLOBAL  _io_out8, _io_out16, _io_out32\r
-       GLOBAL  _io_load_eflags, _io_store_eflags\r
-       GLOBAL  _load_gdtr, _load_idtr\r
-       GLOBAL  _load_cr0, _store_cr0\r
-       GLOBAL  _load_cr1, _store_cr1\r
-       GLOBAL  _load_cr2, _store_cr2\r
-       GLOBAL  _load_cr3, _store_cr3\r
-       GLOBAL  _load_tr\r
-       GLOBAL  _asm_end_app\r
-       GLOBAL  _memtest_sub\r
-       GLOBAL  _farjmp, _farcall\r
-       GLOBAL  _start_app\r
-       GLOBAL  _asm_osselect_third\r
-       GLOBAL  _clts, _fnsave, _frstor\r
-       GLOBAL  _pit_beep_on, _pit_beep_off\r
-       GLOBAL  _pipelineflush\r
-       GLOBAL  _read_tsc\r
-       GLOBAL  _cpuid\r
-\r
-       GLOBAL  _asm_inthandler00, _asm_inthandler01, _asm_inthandler02, _asm_inthandler03, _asm_inthandler04, _asm_inthandler05, _asm_inthandler06, _asm_inthandler07, _asm_inthandler08, _asm_inthandler09, _asm_inthandler0a, _asm_inthandler0b, _asm_inthandler0c, _asm_inthandler0d, _asm_inthandler0e, _asm_inthandler0f, _asm_inthandler10, _asm_inthandler11, _asm_inthandler12, _asm_inthandler13, _asm_inthandler14, _asm_inthandler15, _asm_inthandler16, _asm_inthandler17, _asm_inthandler18, _asm_inthandler19, _asm_inthandler1a, _asm_inthandler1b, _asm_inthandler1c, _asm_inthandler1d, _asm_inthandler1e, _asm_inthandler1f\r
-       EXTERN  _inthandler00, _inthandler01, _inthandler02, _inthandler03, _inthandler04, _inthandler05, _inthandler06, _inthandler07, _inthandler08, _inthandler09, _inthandler0a, _inthandler0b, _inthandler0c, _inthandler0d, _inthandler0e, _inthandler0f, _inthandler10, _inthandler11, _inthandler12, _inthandler13, _inthandler14, _inthandler15, _inthandler16, _inthandler17, _inthandler18, _inthandler19, _inthandler1a, _inthandler1b, _inthandler1c, _inthandler1d, _inthandler1e, _inthandler1f\r
-\r
-       GLOBAL  _asm_inthandler27\r
-       EXTERN  _inthandler27\r
-\r
-       GLOBAL  _asm_inthandler20\r
-       EXTERN  _inthandler20\r
-\r
-       GLOBAL  _asm_inthandler21\r
-       EXTERN  _inthandler21\r
-\r
-       GLOBAL  _asm_inthandler2c\r
-       EXTERN  _inthandler2c\r
-\r
-       GLOBAL  _asm_hrb_api\r
-       EXTERN  _hrb_api\r
-\r
-[SECTION .text]\r
-\r
-_asm_hrb_api:\r
-       sti\r
-       push    ds\r
-       push    es\r
-       pushad\r
-       pushad\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call _hrb_api\r
-       cmp     eax,0\r
-       jne     _asm_end_app\r
-       add     esp,32\r
-       popad\r
-       pop     es\r
-       pop     ds\r
-       iretd\r
-\r
-_cpuid:\r
-       pushad\r
-       mov     esi,[esp+36]\r
-       mov     eax,[esp+40]\r
-       db      0x0f,0xa2\r
-       mov     [esi   ],eax\r
-       mov     [esi+ 4],ebx\r
-       mov     [esi+ 8],edx\r
-       mov     [esi+12],ecx\r
-       popad\r
-       ret\r
-\r
-_read_tsc:\r
-       pushad\r
-       mov     ebx,[esp+36]\r
-       db      0x0f,0x31\r
-       mov     [ebx],edx\r
-       mov     [ebx+4],eax\r
-       popad\r
-       ret\r
-\r
-_asm_inthandler2c:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler2c\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler21:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler21\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler20:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler20\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_pipelineflush:\r
-       jmp     flush\r
-flush:\r
-       ret\r
-\r
-\r
-_asm_inthandler00:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler00\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler01:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler01\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler02:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler02\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler03:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler03\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler04:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler04\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler05:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler05\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler06:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler06\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler07:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler07\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler08:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler08\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler09:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler09\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler0a:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler0a\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler0b:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler0b\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler0c:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler0c\r
-       cmp     eax,0\r
-       jne     _asm_end_app\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler0d:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler0d\r
-       cmp     eax,0\r
-       jne     _asm_end_app\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler0e:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler0e\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler0f:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler0f\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler10:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler10\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler11:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler11\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler12:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler12\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler13:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler13\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler14:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler14\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler15:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler15\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler16:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler16\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler17:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler17\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler18:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler18\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler19:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler19\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler1a:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler1a\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler1b:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler1b\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler1c:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler1c\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler1d:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler1d\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler1e:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler1e\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler1f:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler1f\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_asm_inthandler27:\r
-       push    es\r
-       push    ds\r
-       pushad\r
-       mov     eax,esp\r
-       push    eax\r
-       mov     ax,ss\r
-       mov     ds,ax\r
-       mov     es,ax\r
-       call    _inthandler27\r
-       pop     eax\r
-       popad\r
-       pop     ds\r
-       pop     es\r
-       iretd\r
-\r
-_pit_beep_on:\r
-       in      al,0x61\r
-       or      al,0x03\r
-       and     al,0x0f\r
-       out     0x61,al\r
-       ret\r
-\r
-_pit_beep_off:\r
-       in      al,0x61\r
-       and     al,0xd\r
-       out     0x61,al\r
-       ret\r
-\r
-_asm_osselect_third:\r
-        mov     ax,ss\r
-        mov     fs,ax\r
-        mov     gs,ax\r
-        mov     esp,[esp+4]\r
-        jmp     2*8:0x0000001b\r
-\r
-_clts:\r
-        clts\r
-        ret\r
-\r
-_fnsave:\r
-        mov     eax,[esp+4]     ; addr\r
-        fnsave  [eax]\r
-        ret\r
-\r
-_frstor:\r
-        mov     eax,[esp+4]     ; addr\r
-        frstor  [eax]\r
-        ret\r
-\r
-\r
-_io_hlt:\r
-       hlt\r
-       ret\r
-\r
-_io_cli:\r
-       cli\r
-       ret\r
-\r
-_io_sti:\r
-       sti\r
-       ret\r
-\r
-_io_stihlt:\r
-       sti\r
-       hlt\r
-       ret\r
-\r
-_io_in8:\r
-       mov     edx,[esp+4]\r
-       mov     eax,0\r
-       in      al,dx\r
-       ret\r
-\r
-_io_in16:\r
-       mov     edx,[esp+4]\r
-       mov     eax,0\r
-       in      ax,dx\r
-       ret\r
-\r
-_io_in32:\r
-       mov     edx,[esp+4]\r
-       in      eax,dx\r
-       ret\r
-\r
-_io_out8:\r
-       mov     edx,[esp+4]\r
-       mov     al,[esp+8]\r
-       out     dx,al\r
-       ret\r
-\r
-_io_out16:\r
-       mov     edx,[esp+4]\r
-       mov     eax,[esp+8]\r
-       out     dx,ax\r
-       ret\r
-\r
-_io_out32:\r
-       mov     edx,[esp+4]\r
-       mov     eax,[esp+8]\r
-       out     dx,eax\r
-       ret\r
-\r
-_io_load_eflags:\r
-       pushfd\r
-       pop     eax\r
-       ret\r
-\r
-_io_store_eflags:\r
-       mov     eax,[esp+4]\r
-       push    eax\r
-       popfd\r
-       ret\r
-\r
-_load_gdtr:\r
-       mov     ax,[esp+4]\r
-       mov     [esp+6],ax\r
-       lgdt    [esp+6]\r
-       ret\r
-\r
-_load_idtr:\r
-       mov     ax,[esp+4]\r
-       mov     [esp+6],ax\r
-       lidt    [esp+6]\r
-       ret\r
-\r
-_load_cr0:\r
-       mov     eax,cr0\r
-       ret\r
-\r
-_store_cr0:\r
-       mov     eax,[esp+4]\r
-       mov     cr0,eax\r
-       ret\r
-\r
-_load_cr1:\r
-       mov     eax,cr1\r
-       ret\r
-\r
-_store_cr1:\r
-       mov     eax,[esp+4]\r
-       mov     cr1,eax\r
-       ret\r
-\r
-_load_cr2:\r
-       mov     eax,cr2\r
-       ret\r
-\r
-_store_cr2:\r
-       mov     eax,[esp+4]\r
-       mov     cr2,eax\r
-       ret\r
-\r
-_load_cr3:\r
-       mov     eax,cr3\r
-       ret\r
-\r
-_store_cr3:\r
-       mov     eax,[esp+4]\r
-       mov     cr3,eax\r
-       ret\r
-\r
-_load_tr:\r
-       ltr     [esp+4]\r
-       ret\r
-\r
-_memtest_sub:\r
-       push    edi\r
-       push    esi\r
-       push    ebx\r
-       mov     esi,0xaa55aa55\r
-       mov     edi,0x55aa55aa\r
-       mov     eax,[esp+12+4]\r
-mts_loop:\r
-       mov     ebx,eax\r
-       add     ebx,0xffc\r
-       mov     edx,[ebx]\r
-       mov     [ebx],esi\r
-       xor     dword [ebx],0xffffffff\r
-       cmp     edi,[ebx]\r
-       jne     mts_fin\r
-       xor     dword [ebx],0xffffffff\r
-       cmp     esi,[ebx]\r
-       jne     mts_fin\r
-       mov     [ebx],edx\r
-       add     eax,0x1000\r
-       cmp     eax,[esp+12+8]\r
-       jbe     mts_loop\r
-       pop     ebx\r
-       pop     esi\r
-       pop     edi\r
-       ret\r
-mts_fin:\r
-       mov     [ebx],edx\r
-       pop     ebx\r
-       pop     esi\r
-       pop     edi\r
-       ret\r
-\r
-_farjmp:\r
-       jmp     far     [esp+4]\r
-       ret\r
-\r
-_farcall:\r
-       call    far     [esp+4]\r
-       ret\r
-\r
-\r
-_asm_end_app:\r
-       mov     esp,[eax]\r
-       mov     dword [eax+4],0\r
-       popad\r
-       ret\r
-\r
-_start_app:\r
-       pushad\r
-       mov     eax,[esp+36]\r
-       mov     ecx,[esp+40]\r
-       mov     edx,[esp+44]\r
-       mov     ebx,[esp+48]\r
-       mov     ebp,[esp+52]\r
-       mov     [ebp  ],esp\r
-       mov     [ebp+4],ss\r
-       mov     es,bx\r
-       mov     ds,bx\r
-       mov     fs,bx\r
-       mov     gs,bx\r
-\r
-       or      ecx,3\r
-       or      ebx,3\r
-       push    ebx\r
-       push    edx\r
-       push    ecx\r
-       push    eax\r
-       retf\r
-\r