From d63b8acd911fdd04d5efa5c18abeb3ca18c49a34 Mon Sep 17 00:00:00 2001 From: Yourtion Date: Tue, 17 May 2016 12:44:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=BA=94=E7=94=A8=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E7=9A=84=E5=A4=A7=E5=B0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 27_day/Makefile | 71 +++++++------- 27_day/a_nask.nas | 230 ---------------------------------------------- 27_day/api001.nas | 14 +++ 27_day/api002.nas | 16 ++++ 27_day/api003.nas | 17 ++++ 27_day/api004.nas | 12 +++ 27_day/api005.nas | 24 +++++ 27_day/api006.nas | 27 ++++++ 27_day/api007.nas | 27 ++++++ 27_day/api008.nas | 20 ++++ 27_day/api009.nas | 17 ++++ 27_day/api010.nas | 18 ++++ 27_day/api011.nas | 23 +++++ 27_day/api012.nas | 24 +++++ 27_day/api013.nas | 27 ++++++ 27_day/api014.nas | 16 ++++ 27_day/api015.nas | 14 +++ 27_day/api016.nas | 13 +++ 27_day/api017.nas | 17 ++++ 27_day/api018.nas | 17 ++++ 27_day/api019.nas | 16 ++++ 27_day/api020.nas | 14 +++ 22 files changed, 411 insertions(+), 263 deletions(-) delete mode 100644 27_day/a_nask.nas create mode 100644 27_day/api001.nas create mode 100644 27_day/api002.nas create mode 100644 27_day/api003.nas create mode 100644 27_day/api004.nas create mode 100644 27_day/api005.nas create mode 100644 27_day/api006.nas create mode 100644 27_day/api007.nas create mode 100644 27_day/api008.nas create mode 100644 27_day/api009.nas create mode 100644 27_day/api010.nas create mode 100644 27_day/api011.nas create mode 100644 27_day/api012.nas create mode 100644 27_day/api013.nas create mode 100644 27_day/api014.nas create mode 100644 27_day/api015.nas create mode 100644 27_day/api016.nas create mode 100644 27_day/api017.nas create mode 100644 27_day/api018.nas create mode 100644 27_day/api019.nas create mode 100644 27_day/api020.nas diff --git a/27_day/Makefile b/27_day/Makefile index 2bfddd0..719f71d 100644 --- a/27_day/Makefile +++ b/27_day/Makefile @@ -2,6 +2,11 @@ OBJS_BOOTPACK = bootpack.obj naskfunc.obj hankaku.obj graphic.obj dsctbl.obj \ int.obj fifo.obj keyboard.obj mouse.obj memory.obj sheet.obj timer.obj \ mtask.obj window.obj console.obj file.obj +OBJS_API = api001.obj api002.obj api003.obj api004.obj api005.obj api006.obj \ + api007.obj api008.obj api009.obj api010.obj api011.obj api012.obj \ + api013.obj api014.obj api015.obj api016.obj api017.obj api018.obj \ + api019.obj api020.obj + TOOLPATH = ../z_tools/ INCPATH = ../z_tools/haribote/ @@ -55,21 +60,21 @@ hello.hrb : hello.nas Makefile hello2.hrb : hello2.nas Makefile $(NASK) hello2.nas hello2.hrb hello2.lst -a.bim : a.obj a_nask.obj Makefile - $(OBJ2BIM) @$(RULEFILE) out:a.bim map:a.map a.obj a_nask.obj +a.bim : a.obj $(OBJS_API) Makefile + $(OBJ2BIM) @$(RULEFILE) out:a.bim map:a.map a.obj $(OBJS_API) a.hrb : a.bim Makefile $(BIM2HRB) a.bim a.hrb 0 -hello3.bim : hello3.obj a_nask.obj Makefile - $(OBJ2BIM) @$(RULEFILE) out:hello3.bim map:hello3.map hello3.obj a_nask.obj +hello3.bim : hello3.obj $(OBJS_API) Makefile + $(OBJ2BIM) @$(RULEFILE) out:hello3.bim map:hello3.map hello3.obj $(OBJS_API) hello3.hrb : hello3.bim Makefile $(BIM2HRB) hello3.bim hello3.hrb 0 -hello4.bim : hello4.obj a_nask.obj Makefile +hello4.bim : hello4.obj $(OBJS_API) Makefile $(OBJ2BIM) @$(RULEFILE) out:hello4.bim stack:1k map:hello4.map \ - hello4.obj a_nask.obj + hello4.obj $(OBJS_API) hello4.hrb : hello4.bim Makefile $(BIM2HRB) hello4.bim hello4.hrb 0 @@ -80,86 +85,86 @@ hello5.bim : hello5.obj Makefile hello5.hrb : hello5.bim Makefile $(BIM2HRB) hello5.bim hello5.hrb 0 -winhelo.bim : winhelo.obj a_nask.obj Makefile +winhelo.bim : winhelo.obj $(OBJS_API) Makefile $(OBJ2BIM) @$(RULEFILE) out:winhelo.bim stack:1k map:winhelo.map \ - winhelo.obj a_nask.obj + winhelo.obj $(OBJS_API) winhelo.hrb : winhelo.bim Makefile $(BIM2HRB) winhelo.bim winhelo.hrb 0 -winhelo2.bim : winhelo2.obj a_nask.obj Makefile +winhelo2.bim : winhelo2.obj $(OBJS_API) Makefile $(OBJ2BIM) @$(RULEFILE) out:winhelo2.bim stack:1k map:winhelo2.map \ - winhelo2.obj a_nask.obj + winhelo2.obj $(OBJS_API) winhelo2.hrb : winhelo2.bim Makefile $(BIM2HRB) winhelo2.bim winhelo2.hrb 0 -winhelo3.bim : winhelo3.obj a_nask.obj Makefile +winhelo3.bim : winhelo3.obj $(OBJS_API) Makefile $(OBJ2BIM) @$(RULEFILE) out:winhelo3.bim stack:1k map:winhelo3.map \ - winhelo3.obj a_nask.obj + winhelo3.obj $(OBJS_API) winhelo3.hrb : winhelo3.bim Makefile $(BIM2HRB) winhelo3.bim winhelo3.hrb 40k -star1.bim : star1.obj a_nask.obj Makefile +star1.bim : star1.obj $(OBJS_API) Makefile $(OBJ2BIM) @$(RULEFILE) out:star1.bim stack:1k map:star1.map \ - star1.obj a_nask.obj + star1.obj $(OBJS_API) star1.hrb : star1.bim Makefile $(BIM2HRB) star1.bim star1.hrb 47k -stars.bim : stars.obj a_nask.obj Makefile +stars.bim : stars.obj $(OBJS_API) Makefile $(OBJ2BIM) @$(RULEFILE) out:stars.bim stack:1k map:stars.map \ - stars.obj a_nask.obj + stars.obj $(OBJS_API) stars.hrb : stars.bim Makefile $(BIM2HRB) stars.bim stars.hrb 47k -stars2.bim : stars2.obj a_nask.obj Makefile +stars2.bim : stars2.obj $(OBJS_API) Makefile $(OBJ2BIM) @$(RULEFILE) out:stars2.bim stack:1k map:stars2.map \ - stars2.obj a_nask.obj + stars2.obj $(OBJS_API) stars2.hrb : stars2.bim Makefile $(BIM2HRB) stars2.bim stars2.hrb 47k -lines.bim : lines.obj a_nask.obj Makefile +lines.bim : lines.obj $(OBJS_API) Makefile $(OBJ2BIM) @$(RULEFILE) out:lines.bim stack:1k map:lines.map \ - lines.obj a_nask.obj + lines.obj $(OBJS_API) lines.hrb : lines.bim Makefile $(BIM2HRB) lines.bim lines.hrb 48k -walk.bim : walk.obj a_nask.obj Makefile +walk.bim : walk.obj $(OBJS_API) Makefile $(OBJ2BIM) @$(RULEFILE) out:walk.bim stack:1k map:walk.map \ - walk.obj a_nask.obj + walk.obj $(OBJS_API) walk.hrb : walk.bim Makefile $(BIM2HRB) walk.bim walk.hrb 48k -noodle.bim : noodle.obj a_nask.obj Makefile +noodle.bim : noodle.obj $(OBJS_API) Makefile $(OBJ2BIM) @$(RULEFILE) out:noodle.bim stack:1k map:noodle.map \ - noodle.obj a_nask.obj + noodle.obj $(OBJS_API) noodle.hrb : noodle.bim Makefile $(BIM2HRB) noodle.bim noodle.hrb 40k -beepdown.bim : beepdown.obj a_nask.obj Makefile +beepdown.bim : beepdown.obj $(OBJS_API) Makefile $(OBJ2BIM) @$(RULEFILE) out:beepdown.bim stack:1k map:beepdown.map \ - beepdown.obj a_nask.obj + beepdown.obj $(OBJS_API) beepdown.hrb : beepdown.bim Makefile $(BIM2HRB) beepdown.bim beepdown.hrb 40k -color.bim : color.obj a_nask.obj Makefile +color.bim : color.obj $(OBJS_API) Makefile $(OBJ2BIM) @$(RULEFILE) out:color.bim stack:1k map:color.map \ - color.obj a_nask.obj + color.obj $(OBJS_API) color.hrb : color.bim Makefile $(BIM2HRB) color.bim color.hrb 56k -color2.bim : color2.obj a_nask.obj Makefile +color2.bim : color2.obj $(OBJS_API) Makefile $(OBJ2BIM) @$(RULEFILE) out:color2.bim stack:1k map:color2.map \ - color2.obj a_nask.obj + color2.obj $(OBJS_API) color2.hrb : color2.bim Makefile $(BIM2HRB) color2.bim color2.hrb 56k @@ -230,9 +235,9 @@ clean : -$(DEL) *.bin -$(DEL) *.lst -$(DEL) *.obj - -$(DEL) bootpack.map - -$(DEL) bootpack.bim - -$(DEL) bootpack.hrb + -$(DEL) *.map + -$(DEL) *.bim + -$(DEL) *.hrb -$(DEL) haribote.sys src_only : diff --git a/27_day/a_nask.nas b/27_day/a_nask.nas deleted file mode 100644 index 9e63654..0000000 --- a/27_day/a_nask.nas +++ /dev/null @@ -1,230 +0,0 @@ -[FORMAT "WCOFF"] ; 生成对象文件的模式 -[INSTRSET "i486p"] ; 表示使用486兼容指令集 -[BITS 32] ; 生成32位模式机器语言 -[FILE "a_nask.nas"] ; 源文件名信息 - - GLOBAL _api_putchar - GLOBAL _api_putstr0 - GLOBAL _api_end - GLOBAL _api_openwin - GLOBAL _api_putstrwin - GLOBAL _api_boxfilwin - GLOBAL _api_initmalloc - GLOBAL _api_malloc - GLOBAL _api_free - GLOBAL _api_point - GLOBAL _api_refreshwin - GLOBAL _api_linewin - GLOBAL _api_closewin - GLOBAL _api_getkey - GLOBAL _api_alloctimer - GLOBAL _api_inittimer - GLOBAL _api_settimer - GLOBAL _api_freetimer - GLOBAL _api_beep - -[SECTION .text] - -_api_putchar: ; void api_putchar(int c); - MOV EDX,1 - MOV AL,[ESP+4] ; c - INT 0x40 - RET - -_api_putstr0: ; void api_putstr0(char *s); - PUSH EBX - MOV EDX,2 - MOV EBX,[ESP+8] ; s - INT 0x40 - POP EBX - RET - -_api_end: ; void api_end(void); - MOV EDX,4 - INT 0x40 - -_api_openwin: ; int api_openwin(char *buf, int xsiz, int ysiz, int col_inv, char *title); - PUSH EDI - PUSH ESI - PUSH EBX - MOV EDX,5 - MOV EBX,[ESP+16] ; buf - MOV ESI,[ESP+20] ; xsiz - MOV EDI,[ESP+24] ; ysiz - MOV EAX,[ESP+28] ; col_inv - MOV ECX,[ESP+32] ; title - INT 0x40 - POP EBX - POP ESI - POP EDI - RET - -_api_putstrwin: ; void api_putstrwin(int win, int x, int y, int col, int len, char *str); - PUSH EDI - PUSH ESI - PUSH EBP - PUSH EBX - MOV EDX,6 - MOV EBX,[ESP+20] ; win - MOV ESI,[ESP+24] ; x - MOV EDI,[ESP+28] ; y - MOV EAX,[ESP+32] ; col - MOV ECX,[ESP+36] ; len - MOV EBP,[ESP+40] ; str - INT 0x40 - POP EBX - POP EBP - POP ESI - POP EDI - RET - -_api_boxfilwin: ; void api_boxfilwin(int win, int x0, int y0, int x1, int y1, int col); - PUSH EDI - PUSH ESI - PUSH EBP - PUSH EBX - MOV EDX,7 - MOV EBX,[ESP+20] ; win - MOV EAX,[ESP+24] ; x0 - MOV ECX,[ESP+28] ; y0 - MOV ESI,[ESP+32] ; x1 - MOV EDI,[ESP+36] ; y1 - MOV EBP,[ESP+40] ; col - INT 0x40 - POP EBX - POP EBP - POP ESI - POP EDI - RET - -_api_initmalloc: ; void api_initmalloc(void); - PUSH EBX - MOV EDX,8 - MOV EBX,[CS:0x0020] ; malloc内存空间的地址 - MOV EAX,EBX - ADD EAX,32*1024 ; 加上32KB - MOV ECX,[CS:0x0000] ; 数据段的大小 - SUB ECX,EAX - INT 0x40 - POP EBX - RET - -_api_malloc: ; char *api_malloc(int size); - PUSH EBX - MOV EDX,9 - MOV EBX,[CS:0x0020] - MOV ECX,[ESP+8] ; size - INT 0x40 - POP EBX - RET - -_api_free: ; void api_free(char *addr, int size); - PUSH EBX - MOV EDX,10 - MOV EBX,[CS:0x0020] - MOV EAX,[ESP+ 8] ; addr - MOV ECX,[ESP+12] ; size - INT 0x40 - POP EBX - RET - -_api_point: ; void api_point(int win, int x, int y, int col); - PUSH EDI - PUSH ESI - PUSH EBX - MOV EDX,11 - MOV EBX,[ESP+16] ; win - MOV ESI,[ESP+20] ; x - MOV EDI,[ESP+24] ; y - MOV EAX,[ESP+28] ; col - INT 0x40 - POP EBX - POP ESI - POP EDI - RET - -_api_refreshwin: ; void api_refreshwin(int win, int x0, int y0, int x1, int y1); - PUSH EDI - PUSH ESI - PUSH EBX - MOV EDX,12 - MOV EBX,[ESP+16] ; win - MOV EAX,[ESP+20] ; x0 - MOV ECX,[ESP+24] ; y0 - MOV ESI,[ESP+28] ; x1 - MOV EDI,[ESP+32] ; y1 - INT 0x40 - POP EBX - POP ESI - POP EDI - RET - -_api_linewin: ; void api_linewin(int win, int x0, int y0, int x1, int y1, int col); - PUSH EDI - PUSH ESI - PUSH EBP - PUSH EBX - MOV EDX,13 - MOV EBX,[ESP+20] ; win - MOV EAX,[ESP+24] ; x0 - MOV ECX,[ESP+28] ; y0 - MOV ESI,[ESP+32] ; x1 - MOV EDI,[ESP+36] ; y1 - MOV EBP,[ESP+40] ; col - INT 0x40 - POP EBX - POP EBP - POP ESI - POP EDI - RET - -_api_closewin: ; void api_closewin(int win); - PUSH EBX - MOV EDX,14 - MOV EBX,[ESP+8] ; win - INT 0x40 - POP EBX - RET - -_api_getkey: ; int api_getkey(int mode); - MOV EDX,15 - MOV EAX,[ESP+4] ; mode - INT 0x40 - RET - -_api_alloctimer: ; int api_alloctimer(void); - MOV EDX,16 - INT 0x40 - RET - -_api_inittimer: ; void api_inittimer(int timer, int data); - PUSH EBX - MOV EDX,17 - MOV EBX,[ESP+ 8] ; timer - MOV EAX,[ESP+12] ; data - INT 0x40 - POP EBX - RET - -_api_settimer: ; void api_settimer(int timer, int time); - PUSH EBX - MOV EDX,18 - MOV EBX,[ESP+ 8] ; timer - MOV EAX,[ESP+12] ; time - INT 0x40 - POP EBX - RET - -_api_freetimer: ; void api_freetimer(int timer); - PUSH EBX - MOV EDX,19 - MOV EBX,[ESP+ 8] ; timer - INT 0x40 - POP EBX - RET - -_api_beep: ; void api_beep(int tone); - MOV EDX,20 - MOV EAX,[ESP+4] ; tone - INT 0x40 - RET diff --git a/27_day/api001.nas b/27_day/api001.nas new file mode 100644 index 0000000..2f893a9 --- /dev/null +++ b/27_day/api001.nas @@ -0,0 +1,14 @@ +[FORMAT "WCOFF"] +[INSTRSET "i486p"] +[BITS 32] +[FILE "api001.nas"] + + GLOBAL _api_putchar + +[SECTION .text] + +_api_putchar: ; void api_putchar(int c); + MOV EDX,1 + MOV AL,[ESP+4] ; c + INT 0x40 + RET diff --git a/27_day/api002.nas b/27_day/api002.nas new file mode 100644 index 0000000..6ac9cc7 --- /dev/null +++ b/27_day/api002.nas @@ -0,0 +1,16 @@ +[FORMAT "WCOFF"] +[INSTRSET "i486p"] +[BITS 32] +[FILE "api002.nas"] + + GLOBAL _api_putstr0 + +[SECTION .text] + +_api_putstr0: ; void api_putstr0(char *s); + PUSH EBX + MOV EDX,2 + MOV EBX,[ESP+8] ; s + INT 0x40 + POP EBX + RET diff --git a/27_day/api003.nas b/27_day/api003.nas new file mode 100644 index 0000000..6c2d0fd --- /dev/null +++ b/27_day/api003.nas @@ -0,0 +1,17 @@ +[FORMAT "WCOFF"] +[INSTRSET "i486p"] +[BITS 32] +[FILE "api003.nas"] + + GLOBAL _api_putstr1 + +[SECTION .text] + +_api_putstr1: ; void api_putstr1(char *s, int l); + PUSH EBX + MOV EDX,3 + MOV EBX,[ESP+ 8] ; s + MOV ECX,[ESP+12] ; l + INT 0x40 + POP EBX + RET diff --git a/27_day/api004.nas b/27_day/api004.nas new file mode 100644 index 0000000..3c738a3 --- /dev/null +++ b/27_day/api004.nas @@ -0,0 +1,12 @@ +[FORMAT "WCOFF"] +[INSTRSET "i486p"] +[BITS 32] +[FILE "api004.nas"] + + GLOBAL _api_end + +[SECTION .text] + +_api_end: ; void api_end(void); + MOV EDX,4 + INT 0x40 diff --git a/27_day/api005.nas b/27_day/api005.nas new file mode 100644 index 0000000..2157c61 --- /dev/null +++ b/27_day/api005.nas @@ -0,0 +1,24 @@ +[FORMAT "WCOFF"] +[INSTRSET "i486p"] +[BITS 32] +[FILE "api005.nas"] + + GLOBAL _api_openwin + +[SECTION .text] + +_api_openwin: ; int api_openwin(char *buf, int xsiz, int ysiz, int col_inv, char *title); + PUSH EDI + PUSH ESI + PUSH EBX + MOV EDX,5 + MOV EBX,[ESP+16] ; buf + MOV ESI,[ESP+20] ; xsiz + MOV EDI,[ESP+24] ; ysiz + MOV EAX,[ESP+28] ; col_inv + MOV ECX,[ESP+32] ; title + INT 0x40 + POP EBX + POP ESI + POP EDI + RET diff --git a/27_day/api006.nas b/27_day/api006.nas new file mode 100644 index 0000000..94cbb2d --- /dev/null +++ b/27_day/api006.nas @@ -0,0 +1,27 @@ +[FORMAT "WCOFF"] +[INSTRSET "i486p"] +[BITS 32] +[FILE "api006.nas"] + + GLOBAL _api_putstrwin + +[SECTION .text] + +_api_putstrwin: ; void api_putstrwin(int win, int x, int y, int col, int len, char *str); + PUSH EDI + PUSH ESI + PUSH EBP + PUSH EBX + MOV EDX,6 + MOV EBX,[ESP+20] ; win + MOV ESI,[ESP+24] ; x + MOV EDI,[ESP+28] ; y + MOV EAX,[ESP+32] ; col + MOV ECX,[ESP+36] ; len + MOV EBP,[ESP+40] ; str + INT 0x40 + POP EBX + POP EBP + POP ESI + POP EDI + RET diff --git a/27_day/api007.nas b/27_day/api007.nas new file mode 100644 index 0000000..57be736 --- /dev/null +++ b/27_day/api007.nas @@ -0,0 +1,27 @@ +[FORMAT "WCOFF"] +[INSTRSET "i486p"] +[BITS 32] +[FILE "api007.nas"] + + GLOBAL _api_boxfilwin + +[SECTION .text] + +_api_boxfilwin: ; void api_boxfilwin(int win, int x0, int y0, int x1, int y1, int col); + PUSH EDI + PUSH ESI + PUSH EBP + PUSH EBX + MOV EDX,7 + MOV EBX,[ESP+20] ; win + MOV EAX,[ESP+24] ; x0 + MOV ECX,[ESP+28] ; y0 + MOV ESI,[ESP+32] ; x1 + MOV EDI,[ESP+36] ; y1 + MOV EBP,[ESP+40] ; col + INT 0x40 + POP EBX + POP EBP + POP ESI + POP EDI + RET diff --git a/27_day/api008.nas b/27_day/api008.nas new file mode 100644 index 0000000..d1ed6c7 --- /dev/null +++ b/27_day/api008.nas @@ -0,0 +1,20 @@ +[FORMAT "WCOFF"] +[INSTRSET "i486p"] +[BITS 32] +[FILE "api008.nas"] + + GLOBAL _api_initmalloc + +[SECTION .text] + +_api_initmalloc: ; void api_initmalloc(void); + PUSH EBX + MOV EDX,8 + MOV EBX,[CS:0x0020] ; malloc内存空间的地址 + MOV EAX,EBX + ADD EAX,32*1024 ; 加上32KB + MOV ECX,[CS:0x0000] ; 数据段的大小 + SUB ECX,EAX + INT 0x40 + POP EBX + RET diff --git a/27_day/api009.nas b/27_day/api009.nas new file mode 100644 index 0000000..bcd5307 --- /dev/null +++ b/27_day/api009.nas @@ -0,0 +1,17 @@ +[FORMAT "WCOFF"] +[INSTRSET "i486p"] +[BITS 32] +[FILE "api009.nas"] + + GLOBAL _api_malloc + +[SECTION .text] + +_api_malloc: ; char *api_malloc(int size); + PUSH EBX + MOV EDX,9 + MOV EBX,[CS:0x0020] + MOV ECX,[ESP+8] ; size + INT 0x40 + POP EBX + RET diff --git a/27_day/api010.nas b/27_day/api010.nas new file mode 100644 index 0000000..63a4ea5 --- /dev/null +++ b/27_day/api010.nas @@ -0,0 +1,18 @@ +[FORMAT "WCOFF"] +[INSTRSET "i486p"] +[BITS 32] +[FILE "api010.nas"] + + GLOBAL _api_free + +[SECTION .text] + +_api_free: ; void api_free(char *addr, int size); + PUSH EBX + MOV EDX,10 + MOV EBX,[CS:0x0020] + MOV EAX,[ESP+ 8] ; addr + MOV ECX,[ESP+12] ; size + INT 0x40 + POP EBX + RET diff --git a/27_day/api011.nas b/27_day/api011.nas new file mode 100644 index 0000000..f5994b9 --- /dev/null +++ b/27_day/api011.nas @@ -0,0 +1,23 @@ +[FORMAT "WCOFF"] +[INSTRSET "i486p"] +[BITS 32] +[FILE "api011.nas"] + + GLOBAL _api_point + +[SECTION .text] + +_api_point: ; void api_point(int win, int x, int y, int col); + PUSH EDI + PUSH ESI + PUSH EBX + MOV EDX,11 + MOV EBX,[ESP+16] ; win + MOV ESI,[ESP+20] ; x + MOV EDI,[ESP+24] ; y + MOV EAX,[ESP+28] ; col + INT 0x40 + POP EBX + POP ESI + POP EDI + RET diff --git a/27_day/api012.nas b/27_day/api012.nas new file mode 100644 index 0000000..9e9386f --- /dev/null +++ b/27_day/api012.nas @@ -0,0 +1,24 @@ +[FORMAT "WCOFF"] +[INSTRSET "i486p"] +[BITS 32] +[FILE "api012.nas"] + + GLOBAL _api_refreshwin + +[SECTION .text] + +_api_refreshwin: ; void api_refreshwin(int win, int x0, int y0, int x1, int y1); + PUSH EDI + PUSH ESI + PUSH EBX + MOV EDX,12 + MOV EBX,[ESP+16] ; win + MOV EAX,[ESP+20] ; x0 + MOV ECX,[ESP+24] ; y0 + MOV ESI,[ESP+28] ; x1 + MOV EDI,[ESP+32] ; y1 + INT 0x40 + POP EBX + POP ESI + POP EDI + RET diff --git a/27_day/api013.nas b/27_day/api013.nas new file mode 100644 index 0000000..017f1ea --- /dev/null +++ b/27_day/api013.nas @@ -0,0 +1,27 @@ +[FORMAT "WCOFF"] +[INSTRSET "i486p"] +[BITS 32] +[FILE "api013.nas"] + + GLOBAL _api_linewin + +[SECTION .text] + +_api_linewin: ; void api_linewin(int win, int x0, int y0, int x1, int y1, int col); + PUSH EDI + PUSH ESI + PUSH EBP + PUSH EBX + MOV EDX,13 + MOV EBX,[ESP+20] ; win + MOV EAX,[ESP+24] ; x0 + MOV ECX,[ESP+28] ; y0 + MOV ESI,[ESP+32] ; x1 + MOV EDI,[ESP+36] ; y1 + MOV EBP,[ESP+40] ; col + INT 0x40 + POP EBX + POP EBP + POP ESI + POP EDI + RET diff --git a/27_day/api014.nas b/27_day/api014.nas new file mode 100644 index 0000000..363db51 --- /dev/null +++ b/27_day/api014.nas @@ -0,0 +1,16 @@ +[FORMAT "WCOFF"] +[INSTRSET "i486p"] +[BITS 32] +[FILE "api014.nas"] + + GLOBAL _api_closewin + +[SECTION .text] + +_api_closewin: ; void api_closewin(int win); + PUSH EBX + MOV EDX,14 + MOV EBX,[ESP+8] ; win + INT 0x40 + POP EBX + RET diff --git a/27_day/api015.nas b/27_day/api015.nas new file mode 100644 index 0000000..bd27ec7 --- /dev/null +++ b/27_day/api015.nas @@ -0,0 +1,14 @@ +[FORMAT "WCOFF"] +[INSTRSET "i486p"] +[BITS 32] +[FILE "api015.nas"] + + GLOBAL _api_getkey + +[SECTION .text] + +_api_getkey: ; int api_getkey(int mode); + MOV EDX,15 + MOV EAX,[ESP+4] ; mode + INT 0x40 + RET diff --git a/27_day/api016.nas b/27_day/api016.nas new file mode 100644 index 0000000..e232412 --- /dev/null +++ b/27_day/api016.nas @@ -0,0 +1,13 @@ +[FORMAT "WCOFF"] +[INSTRSET "i486p"] +[BITS 32] +[FILE "api016.nas"] + + GLOBAL _api_alloctimer + +[SECTION .text] + +_api_alloctimer: ; int api_alloctimer(void); + MOV EDX,16 + INT 0x40 + RET diff --git a/27_day/api017.nas b/27_day/api017.nas new file mode 100644 index 0000000..9e6a3cd --- /dev/null +++ b/27_day/api017.nas @@ -0,0 +1,17 @@ +[FORMAT "WCOFF"] +[INSTRSET "i486p"] +[BITS 32] +[FILE "api017.nas"] + + GLOBAL _api_inittimer + +[SECTION .text] + +_api_inittimer: ; void api_inittimer(int timer, int data); + PUSH EBX + MOV EDX,17 + MOV EBX,[ESP+ 8] ; timer + MOV EAX,[ESP+12] ; data + INT 0x40 + POP EBX + RET diff --git a/27_day/api018.nas b/27_day/api018.nas new file mode 100644 index 0000000..a91d6f1 --- /dev/null +++ b/27_day/api018.nas @@ -0,0 +1,17 @@ +[FORMAT "WCOFF"] +[INSTRSET "i486p"] +[BITS 32] +[FILE "api018.nas"] + + GLOBAL _api_settimer + +[SECTION .text] + +_api_settimer: ; void api_settimer(int timer, int time); + PUSH EBX + MOV EDX,18 + MOV EBX,[ESP+ 8] ; timer + MOV EAX,[ESP+12] ; time + INT 0x40 + POP EBX + RET diff --git a/27_day/api019.nas b/27_day/api019.nas new file mode 100644 index 0000000..d1c11e2 --- /dev/null +++ b/27_day/api019.nas @@ -0,0 +1,16 @@ +[FORMAT "WCOFF"] +[INSTRSET "i486p"] +[BITS 32] +[FILE "api019.nas"] + + GLOBAL _api_freetimer + +[SECTION .text] + +_api_freetimer: ; void api_freetimer(int timer); + PUSH EBX + MOV EDX,19 + MOV EBX,[ESP+ 8] ; timer + INT 0x40 + POP EBX + RET diff --git a/27_day/api020.nas b/27_day/api020.nas new file mode 100644 index 0000000..166bcda --- /dev/null +++ b/27_day/api020.nas @@ -0,0 +1,14 @@ +[FORMAT "WCOFF"] +[INSTRSET "i486p"] +[BITS 32] +[FILE "api020.nas"] + + GLOBAL _api_beep + +[SECTION .text] + +_api_beep: ; void api_beep(int tone); + MOV EDX,20 + MOV EAX,[ESP+4] ; tone + INT 0x40 + RET