From f025b0083fcd1aed1b1742fb6d3dbc9fb657a5c6 Mon Sep 17 00:00:00 2001 From: Yourtion Date: Tue, 17 May 2016 13:30:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B4=E7=90=86make=E7=8E=AF=E5=A2=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + 27_day/Makefile | 312 ++++++++++------------------- 27_day/a/!cons_9x.bat | 1 + 27_day/a/!cons_nt.bat | 1 + 27_day/a/Makefile | 5 + 27_day/{ => a}/a.c | 0 27_day/a/make.bat | 1 + 27_day/apilib/!cons_9x.bat | 1 + 27_day/apilib/!cons_nt.bat | 1 + 27_day/apilib/Makefile | 47 +++++ 27_day/{ => apilib}/api001.nas | 0 27_day/{ => apilib}/api002.nas | 0 27_day/{ => apilib}/api003.nas | 0 27_day/{ => apilib}/api004.nas | 0 27_day/{ => apilib}/api005.nas | 0 27_day/{ => apilib}/api006.nas | 0 27_day/{ => apilib}/api007.nas | 0 27_day/{ => apilib}/api008.nas | 0 27_day/{ => apilib}/api009.nas | 0 27_day/{ => apilib}/api010.nas | 0 27_day/{ => apilib}/api011.nas | 0 27_day/{ => apilib}/api012.nas | 0 27_day/{ => apilib}/api013.nas | 0 27_day/{ => apilib}/api014.nas | 0 27_day/{ => apilib}/api015.nas | 0 27_day/{ => apilib}/api016.nas | 0 27_day/{ => apilib}/api017.nas | 0 27_day/{ => apilib}/api018.nas | 0 27_day/{ => apilib}/api019.nas | 0 27_day/{ => apilib}/api020.nas | 0 27_day/apilib/apilib.lib | Bin 0 -> 8966 bytes 27_day/apilib/make.bat | 1 + 27_day/app_make.txt | 79 ++++++++ 27_day/beepdown/!cons_9x.bat | 1 + 27_day/beepdown/!cons_nt.bat | 1 + 27_day/beepdown/Makefile | 5 + 27_day/{ => beepdown}/beepdown.c | 0 27_day/beepdown/make.bat | 1 + 27_day/color/!cons_9x.bat | 1 + 27_day/color/!cons_nt.bat | 1 + 27_day/color/Makefile | 5 + 27_day/{ => color}/color.c | 0 27_day/color/make.bat | 1 + 27_day/color2/!cons_9x.bat | 1 + 27_day/color2/!cons_nt.bat | 1 + 27_day/color2/Makefile | 5 + 27_day/{ => color2}/color2.c | 0 27_day/color2/make.bat | 1 + 27_day/haribote.rul | 10 + 27_day/haribote/!cons_9x.bat | 1 + 27_day/haribote/!cons_nt.bat | 1 + 27_day/haribote/Makefile | 79 ++++++++ 27_day/{ => haribote}/asmhead.nas | 0 27_day/{ => haribote}/bootpack.c | 0 27_day/{ => haribote}/bootpack.h | 0 27_day/{ => haribote}/console.c | 0 27_day/{ => haribote}/dsctbl.c | 0 27_day/{ => haribote}/fifo.c | 0 27_day/{ => haribote}/file.c | 0 27_day/{ => haribote}/graphic.c | 0 27_day/{ => haribote}/hankaku.txt | 0 27_day/haribote/haribote.sys | Bin 0 -> 33331 bytes 27_day/{ => haribote}/int.c | 0 27_day/haribote/ipl10.bin | Bin 0 -> 512 bytes 27_day/{ => haribote}/ipl10.nas | 0 27_day/{ => haribote}/keyboard.c | 0 27_day/haribote/make.bat | 1 + 27_day/{ => haribote}/memory.c | 0 27_day/{ => haribote}/mouse.c | 0 27_day/{ => haribote}/mtask.c | 0 27_day/{ => haribote}/naskfunc.nas | 0 27_day/{ => haribote}/sheet.c | 0 27_day/{ => haribote}/timer.c | 0 27_day/{ => haribote}/window.c | 0 27_day/hello3/!cons_9x.bat | 1 + 27_day/hello3/!cons_nt.bat | 1 + 27_day/hello3/Makefile | 5 + 27_day/{ => hello3}/hello3.c | 0 27_day/hello3/make.bat | 1 + 27_day/hello4/!cons_9x.bat | 1 + 27_day/hello4/!cons_nt.bat | 1 + 27_day/hello4/Makefile | 5 + 27_day/{ => hello4}/hello4.c | 0 27_day/hello4/make.bat | 1 + 27_day/hello5/!cons_9x.bat | 1 + 27_day/hello5/!cons_nt.bat | 1 + 27_day/hello5/Makefile | 5 + 27_day/{ => hello5}/hello5.nas | 0 27_day/hello5/make.bat | 1 + 27_day/lines/!cons_9x.bat | 1 + 27_day/lines/!cons_nt.bat | 1 + 27_day/lines/Makefile | 5 + 27_day/{ => lines}/lines.c | 0 27_day/lines/make.bat | 1 + 27_day/noodle/!cons_9x.bat | 1 + 27_day/noodle/!cons_nt.bat | 1 + 27_day/noodle/Makefile | 5 + 27_day/noodle/make.bat | 1 + 27_day/{ => noodle}/noodle.c | 0 27_day/star1/!cons_9x.bat | 1 + 27_day/star1/!cons_nt.bat | 1 + 27_day/star1/Makefile | 5 + 27_day/star1/make.bat | 1 + 27_day/{ => star1}/star1.c | 5 + 27_day/stars/!cons_9x.bat | 1 + 27_day/stars/!cons_nt.bat | 1 + 27_day/stars/Makefile | 5 + 27_day/stars/make.bat | 1 + 27_day/{ => stars}/stars.c | 5 + 27_day/stars2/!cons_9x.bat | 1 + 27_day/stars2/!cons_nt.bat | 1 + 27_day/stars2/Makefile | 5 + 27_day/stars2/make.bat | 1 + 27_day/{ => stars2}/stars2.c | 5 + 27_day/walk/!cons_9x.bat | 1 + 27_day/walk/!cons_nt.bat | 1 + 27_day/walk/Makefile | 5 + 27_day/walk/make.bat | 1 + 27_day/{ => walk}/walk.c | 0 27_day/winhelo/!cons_9x.bat | 1 + 27_day/winhelo/!cons_nt.bat | 1 + 27_day/winhelo/Makefile | 5 + 27_day/winhelo/make.bat | 1 + 27_day/{ => winhelo}/winhelo.c | 5 + 27_day/winhelo2/!cons_9x.bat | 1 + 27_day/winhelo2/!cons_nt.bat | 1 + 27_day/winhelo2/Makefile | 5 + 27_day/winhelo2/make.bat | 1 + 27_day/{ => winhelo2}/winhelo2.c | 5 + 27_day/winhelo3/!cons_9x.bat | 1 + 27_day/winhelo3/!cons_nt.bat | 1 + 27_day/winhelo3/Makefile | 5 + 27_day/winhelo3/make.bat | 1 + 27_day/{ => winhelo3}/winhelo3.c | 5 + 134 files changed, 490 insertions(+), 202 deletions(-) create mode 100644 .gitignore create mode 100644 27_day/a/!cons_9x.bat create mode 100644 27_day/a/!cons_nt.bat create mode 100644 27_day/a/Makefile rename 27_day/{ => a}/a.c (100%) create mode 100644 27_day/a/make.bat create mode 100644 27_day/apilib/!cons_9x.bat create mode 100644 27_day/apilib/!cons_nt.bat create mode 100644 27_day/apilib/Makefile rename 27_day/{ => apilib}/api001.nas (100%) rename 27_day/{ => apilib}/api002.nas (100%) rename 27_day/{ => apilib}/api003.nas (100%) rename 27_day/{ => apilib}/api004.nas (100%) rename 27_day/{ => apilib}/api005.nas (100%) rename 27_day/{ => apilib}/api006.nas (100%) rename 27_day/{ => apilib}/api007.nas (100%) rename 27_day/{ => apilib}/api008.nas (100%) rename 27_day/{ => apilib}/api009.nas (100%) rename 27_day/{ => apilib}/api010.nas (100%) rename 27_day/{ => apilib}/api011.nas (100%) rename 27_day/{ => apilib}/api012.nas (100%) rename 27_day/{ => apilib}/api013.nas (100%) rename 27_day/{ => apilib}/api014.nas (100%) rename 27_day/{ => apilib}/api015.nas (100%) rename 27_day/{ => apilib}/api016.nas (100%) rename 27_day/{ => apilib}/api017.nas (100%) rename 27_day/{ => apilib}/api018.nas (100%) rename 27_day/{ => apilib}/api019.nas (100%) rename 27_day/{ => apilib}/api020.nas (100%) create mode 100644 27_day/apilib/apilib.lib create mode 100644 27_day/apilib/make.bat create mode 100644 27_day/app_make.txt create mode 100644 27_day/beepdown/!cons_9x.bat create mode 100644 27_day/beepdown/!cons_nt.bat create mode 100644 27_day/beepdown/Makefile rename 27_day/{ => beepdown}/beepdown.c (100%) create mode 100644 27_day/beepdown/make.bat create mode 100644 27_day/color/!cons_9x.bat create mode 100644 27_day/color/!cons_nt.bat create mode 100644 27_day/color/Makefile rename 27_day/{ => color}/color.c (100%) create mode 100644 27_day/color/make.bat create mode 100644 27_day/color2/!cons_9x.bat create mode 100644 27_day/color2/!cons_nt.bat create mode 100644 27_day/color2/Makefile rename 27_day/{ => color2}/color2.c (100%) create mode 100644 27_day/color2/make.bat create mode 100644 27_day/haribote.rul create mode 100644 27_day/haribote/!cons_9x.bat create mode 100644 27_day/haribote/!cons_nt.bat create mode 100644 27_day/haribote/Makefile rename 27_day/{ => haribote}/asmhead.nas (100%) rename 27_day/{ => haribote}/bootpack.c (100%) rename 27_day/{ => haribote}/bootpack.h (100%) rename 27_day/{ => haribote}/console.c (100%) rename 27_day/{ => haribote}/dsctbl.c (100%) rename 27_day/{ => haribote}/fifo.c (100%) rename 27_day/{ => haribote}/file.c (100%) rename 27_day/{ => haribote}/graphic.c (100%) rename 27_day/{ => haribote}/hankaku.txt (100%) create mode 100644 27_day/haribote/haribote.sys rename 27_day/{ => haribote}/int.c (100%) create mode 100644 27_day/haribote/ipl10.bin rename 27_day/{ => haribote}/ipl10.nas (100%) rename 27_day/{ => haribote}/keyboard.c (100%) create mode 100644 27_day/haribote/make.bat rename 27_day/{ => haribote}/memory.c (100%) rename 27_day/{ => haribote}/mouse.c (100%) rename 27_day/{ => haribote}/mtask.c (100%) rename 27_day/{ => haribote}/naskfunc.nas (100%) rename 27_day/{ => haribote}/sheet.c (100%) rename 27_day/{ => haribote}/timer.c (100%) rename 27_day/{ => haribote}/window.c (100%) create mode 100644 27_day/hello3/!cons_9x.bat create mode 100644 27_day/hello3/!cons_nt.bat create mode 100644 27_day/hello3/Makefile rename 27_day/{ => hello3}/hello3.c (100%) create mode 100644 27_day/hello3/make.bat create mode 100644 27_day/hello4/!cons_9x.bat create mode 100644 27_day/hello4/!cons_nt.bat create mode 100644 27_day/hello4/Makefile rename 27_day/{ => hello4}/hello4.c (100%) create mode 100644 27_day/hello4/make.bat create mode 100644 27_day/hello5/!cons_9x.bat create mode 100644 27_day/hello5/!cons_nt.bat create mode 100644 27_day/hello5/Makefile rename 27_day/{ => hello5}/hello5.nas (100%) create mode 100644 27_day/hello5/make.bat create mode 100644 27_day/lines/!cons_9x.bat create mode 100644 27_day/lines/!cons_nt.bat create mode 100644 27_day/lines/Makefile rename 27_day/{ => lines}/lines.c (100%) create mode 100644 27_day/lines/make.bat create mode 100644 27_day/noodle/!cons_9x.bat create mode 100644 27_day/noodle/!cons_nt.bat create mode 100644 27_day/noodle/Makefile create mode 100644 27_day/noodle/make.bat rename 27_day/{ => noodle}/noodle.c (100%) create mode 100644 27_day/star1/!cons_9x.bat create mode 100644 27_day/star1/!cons_nt.bat create mode 100644 27_day/star1/Makefile create mode 100644 27_day/star1/make.bat rename 27_day/{ => star1}/star1.c (74%) create mode 100644 27_day/stars/!cons_9x.bat create mode 100644 27_day/stars/!cons_nt.bat create mode 100644 27_day/stars/Makefile create mode 100644 27_day/stars/make.bat rename 27_day/{ => stars}/stars.c (82%) create mode 100644 27_day/stars2/!cons_9x.bat create mode 100644 27_day/stars2/!cons_nt.bat create mode 100644 27_day/stars2/Makefile create mode 100644 27_day/stars2/make.bat rename 27_day/{ => stars2}/stars2.c (83%) create mode 100644 27_day/walk/!cons_9x.bat create mode 100644 27_day/walk/!cons_nt.bat create mode 100644 27_day/walk/Makefile create mode 100644 27_day/walk/make.bat rename 27_day/{ => walk}/walk.c (100%) create mode 100644 27_day/winhelo/!cons_9x.bat create mode 100644 27_day/winhelo/!cons_nt.bat create mode 100644 27_day/winhelo/Makefile create mode 100644 27_day/winhelo/make.bat rename 27_day/{ => winhelo}/winhelo.c (60%) create mode 100644 27_day/winhelo2/!cons_9x.bat create mode 100644 27_day/winhelo2/!cons_nt.bat create mode 100644 27_day/winhelo2/Makefile create mode 100644 27_day/winhelo2/make.bat rename 27_day/{ => winhelo2}/winhelo2.c (73%) create mode 100644 27_day/winhelo3/!cons_9x.bat create mode 100644 27_day/winhelo3/!cons_nt.bat create mode 100644 27_day/winhelo3/Makefile create mode 100644 27_day/winhelo3/make.bat rename 27_day/{ => winhelo3}/winhelo3.c (76%) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8444cec --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.hrb diff --git a/27_day/Makefile b/27_day/Makefile index f1ed997..23e155c 100644 --- a/27_day/Makefile +++ b/27_day/Makefile @@ -1,234 +1,142 @@ -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/ MAKE = $(TOOLPATH)make.exe -r -NASK = $(TOOLPATH)nask.exe -CC1 = $(TOOLPATH)cc1.exe -I$(INCPATH) -Os -Wall -quiet -GAS2NASK = $(TOOLPATH)gas2nask.exe -a -OBJ2BIM = $(TOOLPATH)obj2bim.exe -MAKEFONT = $(TOOLPATH)makefont.exe -BIN2OBJ = $(TOOLPATH)bin2obj.exe -BIM2HRB = $(TOOLPATH)bim2hrb.exe -RULEFILE = $(TOOLPATH)haribote/haribote.rul EDIMG = $(TOOLPATH)edimg.exe IMGTOL = $(TOOLPATH)imgtol.com -GOLIB = $(TOOLPATH)golib00.exe COPY = copy DEL = del -# ƒfƒtƒHƒ‹ƒg“®ì +#默认动作 default : - $(MAKE) img - -# ƒtƒ@ƒCƒ‹¶¬‹K‘¥ - -ipl10.bin : ipl10.nas Makefile - $(NASK) ipl10.nas ipl10.bin ipl10.lst - -asmhead.bin : asmhead.nas Makefile - $(NASK) asmhead.nas asmhead.bin asmhead.lst - -hankaku.bin : hankaku.txt Makefile - $(MAKEFONT) hankaku.txt hankaku.bin - -hankaku.obj : hankaku.bin Makefile - $(BIN2OBJ) hankaku.bin hankaku.obj _hankaku - -bootpack.bim : $(OBJS_BOOTPACK) Makefile - $(OBJ2BIM) @$(RULEFILE) out:bootpack.bim stack:3136k map:bootpack.map \ - $(OBJS_BOOTPACK) -# 3MB+64KB=3136KB - -bootpack.hrb : bootpack.bim Makefile - $(BIM2HRB) bootpack.bim bootpack.hrb 0 - -haribote.sys : asmhead.bin bootpack.hrb Makefile - copy /B asmhead.bin+bootpack.hrb haribote.sys - -apilib.lib : Makefile $(OBJS_API) - $(GOLIB) $(OBJS_API) out:apilib.lib - -a.bim : a.obj apilib.lib Makefile - $(OBJ2BIM) @$(RULEFILE) out:a.bim map:a.map a.obj apilib.lib - -a.hrb : a.bim Makefile - $(BIM2HRB) a.bim a.hrb 0 - -hello3.bim : hello3.obj apilib.lib Makefile - $(OBJ2BIM) @$(RULEFILE) out:hello3.bim map:hello3.map hello3.obj apilib.lib - -hello3.hrb : hello3.bim Makefile - $(BIM2HRB) hello3.bim hello3.hrb 0 - -hello4.bim : hello4.obj apilib.lib Makefile - $(OBJ2BIM) @$(RULEFILE) out:hello4.bim stack:1k map:hello4.map \ - hello4.obj apilib.lib - -hello4.hrb : hello4.bim Makefile - $(BIM2HRB) hello4.bim hello4.hrb 0 - -hello5.bim : hello5.obj Makefile - $(OBJ2BIM) @$(RULEFILE) out:hello5.bim stack:1k map:hello5.map hello5.obj - -hello5.hrb : hello5.bim Makefile - $(BIM2HRB) hello5.bim hello5.hrb 0 - -winhelo.bim : winhelo.obj apilib.lib Makefile - $(OBJ2BIM) @$(RULEFILE) out:winhelo.bim stack:1k map:winhelo.map \ - winhelo.obj apilib.lib - -winhelo.hrb : winhelo.bim Makefile - $(BIM2HRB) winhelo.bim winhelo.hrb 0 - -winhelo2.bim : winhelo2.obj apilib.lib Makefile - $(OBJ2BIM) @$(RULEFILE) out:winhelo2.bim stack:1k map:winhelo2.map \ - winhelo2.obj apilib.lib - -winhelo2.hrb : winhelo2.bim Makefile - $(BIM2HRB) winhelo2.bim winhelo2.hrb 0 - -winhelo3.bim : winhelo3.obj apilib.lib Makefile - $(OBJ2BIM) @$(RULEFILE) out:winhelo3.bim stack:1k map:winhelo3.map \ - winhelo3.obj apilib.lib - -winhelo3.hrb : winhelo3.bim Makefile - $(BIM2HRB) winhelo3.bim winhelo3.hrb 40k - -star1.bim : star1.obj apilib.lib Makefile - $(OBJ2BIM) @$(RULEFILE) out:star1.bim stack:1k map:star1.map \ - star1.obj apilib.lib - -star1.hrb : star1.bim Makefile - $(BIM2HRB) star1.bim star1.hrb 47k - -stars.bim : stars.obj apilib.lib Makefile - $(OBJ2BIM) @$(RULEFILE) out:stars.bim stack:1k map:stars.map \ - stars.obj apilib.lib - -stars.hrb : stars.bim Makefile - $(BIM2HRB) stars.bim stars.hrb 47k - -stars2.bim : stars2.obj apilib.lib Makefile - $(OBJ2BIM) @$(RULEFILE) out:stars2.bim stack:1k map:stars2.map \ - stars2.obj apilib.lib - -stars2.hrb : stars2.bim Makefile - $(BIM2HRB) stars2.bim stars2.hrb 47k - -lines.bim : lines.obj apilib.lib Makefile - $(OBJ2BIM) @$(RULEFILE) out:lines.bim stack:1k map:lines.map \ - lines.obj apilib.lib - -lines.hrb : lines.bim Makefile - $(BIM2HRB) lines.bim lines.hrb 48k - -walk.bim : walk.obj apilib.lib Makefile - $(OBJ2BIM) @$(RULEFILE) out:walk.bim stack:1k map:walk.map \ - walk.obj apilib.lib - -walk.hrb : walk.bim Makefile - $(BIM2HRB) walk.bim walk.hrb 48k - -noodle.bim : noodle.obj apilib.lib Makefile - $(OBJ2BIM) @$(RULEFILE) out:noodle.bim stack:1k map:noodle.map \ - noodle.obj apilib.lib - -noodle.hrb : noodle.bim Makefile - $(BIM2HRB) noodle.bim noodle.hrb 40k - -beepdown.bim : beepdown.obj apilib.lib Makefile - $(OBJ2BIM) @$(RULEFILE) out:beepdown.bim stack:1k map:beepdown.map \ - beepdown.obj apilib.lib - -beepdown.hrb : beepdown.bim Makefile - $(BIM2HRB) beepdown.bim beepdown.hrb 40k - -color.bim : color.obj apilib.lib Makefile - $(OBJ2BIM) @$(RULEFILE) out:color.bim stack:1k map:color.map \ - color.obj apilib.lib - -color.hrb : color.bim Makefile - $(BIM2HRB) color.bim color.hrb 56k - -color2.bim : color2.obj apilib.lib Makefile - $(OBJ2BIM) @$(RULEFILE) out:color2.bim stack:1k map:color2.map \ - color2.obj apilib.lib + $(MAKE) haribote.img -color2.hrb : color2.bim Makefile - $(BIM2HRB) color2.bim color2.hrb 56k +#文件生æˆè§„则 -haribote.img : ipl10.bin haribote.sys Makefile \ - a.hrb hello3.hrb hello4.hrb hello5.hrb winhelo.hrb winhelo2.hrb \ - winhelo3.hrb star1.hrb stars.hrb stars2.hrb lines.hrb walk.hrb \ - noodle.hrb beepdown.hrb color.hrb color2.hrb +haribote.img : haribote/ipl10.bin haribote/haribote.sys Makefile \ + a/a.hrb hello3/hello3.hrb hello4/hello4.hrb hello5/hello5.hrb \ + winhelo/winhelo.hrb winhelo2/winhelo2.hrb winhelo3/winhelo3.hrb \ + star1/star1.hrb stars/stars.hrb stars2/stars2.hrb \ + lines/lines.hrb walk/walk.hrb noodle/noodle.hrb \ + beepdown/beepdown.hrb color/color.hrb color2/color2.hrb $(EDIMG) imgin:../z_tools/fdimg0at.tek \ - wbinimg src:ipl10.bin len:512 from:0 to:0 \ - copy from:haribote.sys to:@: \ - copy from:ipl10.nas to:@: \ + wbinimg src:haribote/ipl10.bin len:512 from:0 to:0 \ + copy from:haribote/haribote.sys to:@: \ + copy from:haribote/ipl10.nas to:@: \ copy from:make.bat to:@: \ - copy from:a.hrb to:@: \ - copy from:hello3.hrb to:@: \ - copy from:hello4.hrb to:@: \ - copy from:hello5.hrb to:@: \ - copy from:winhelo.hrb to:@: \ - copy from:winhelo2.hrb to:@: \ - copy from:winhelo3.hrb to:@: \ - copy from:star1.hrb to:@: \ - copy from:stars.hrb to:@: \ - copy from:stars2.hrb to:@: \ - copy from:lines.hrb to:@: \ - copy from:walk.hrb to:@: \ - copy from:noodle.hrb to:@: \ - copy from:beepdown.hrb to:@: \ - copy from:color.hrb to:@: \ - copy from:color2.hrb to:@: \ + copy from:a/a.hrb to:@: \ + copy from:hello3/hello3.hrb to:@: \ + copy from:hello4/hello4.hrb to:@: \ + copy from:hello5/hello5.hrb to:@: \ + copy from:winhelo/winhelo.hrb to:@: \ + copy from:winhelo2/winhelo2.hrb to:@: \ + copy from:winhelo3/winhelo3.hrb to:@: \ + copy from:star1/star1.hrb to:@: \ + copy from:stars/stars.hrb to:@: \ + copy from:stars2/stars2.hrb to:@: \ + copy from:lines/lines.hrb to:@: \ + copy from:walk/walk.hrb to:@: \ + copy from:noodle/noodle.hrb to:@: \ + copy from:beepdown/beepdown.hrb to:@: \ + copy from:color/color.hrb to:@: \ + copy from:color2/color2.hrb to:@: \ imgout:haribote.img -# ˆê”Ê‹K‘¥ - -%.gas : %.c bootpack.h apilib.h Makefile - $(CC1) -o $*.gas $*.c - -%.nas : %.gas Makefile - $(GAS2NASK) $*.gas $*.nas +#命令 -%.obj : %.nas Makefile - $(NASK) $*.nas $*.obj $*.lst +run : + $(MAKE) haribote.img + $(COPY) haribote.img ..\z_tools\qemu\fdimage0.bin + $(MAKE) -C ../z_tools/qemu -# ƒRƒ}ƒ“ƒh +install : + $(MAKE) haribote.img + $(IMGTOL) w a: haribote.img -img : +full : + $(MAKE) -C haribote + $(MAKE) -C apilib + $(MAKE) -C a + $(MAKE) -C hello3 + $(MAKE) -C hello4 + $(MAKE) -C hello5 + $(MAKE) -C winhelo + $(MAKE) -C winhelo2 + $(MAKE) -C winhelo3 + $(MAKE) -C star1 + $(MAKE) -C stars + $(MAKE) -C stars2 + $(MAKE) -C lines + $(MAKE) -C walk + $(MAKE) -C noodle + $(MAKE) -C beepdown + $(MAKE) -C color + $(MAKE) -C color2 $(MAKE) haribote.img -run : - $(MAKE) img +run_full : + $(MAKE) full $(COPY) haribote.img ..\z_tools\qemu\fdimage0.bin $(MAKE) -C ../z_tools/qemu -install : - $(MAKE) img +install_full : + $(MAKE) full $(IMGTOL) w a: haribote.img +run_os : + $(MAKE) -C haribote + $(MAKE) run + clean : - -$(DEL) *.bin - -$(DEL) *.lst - -$(DEL) *.obj - -$(DEL) *.map - -$(DEL) *.bim - -$(DEL) *.hrb - -$(DEL) haribote.sys - -$(DEL) apilib.lib +#ä¸æ‰§è¡Œä»»ä½•æ“作 src_only : $(MAKE) clean -$(DEL) haribote.img + +clean_full : + $(MAKE) -C haribote clean + $(MAKE) -C apilib clean + $(MAKE) -C a clean + $(MAKE) -C hello3 clean + $(MAKE) -C hello4 clean + $(MAKE) -C hello5 clean + $(MAKE) -C winhelo clean + $(MAKE) -C winhelo2 clean + $(MAKE) -C winhelo3 clean + $(MAKE) -C star1 clean + $(MAKE) -C stars clean + $(MAKE) -C stars2 clean + $(MAKE) -C lines clean + $(MAKE) -C walk clean + $(MAKE) -C noodle clean + $(MAKE) -C beepdown clean + $(MAKE) -C color clean + $(MAKE) -C color2 clean + +src_only_full : + $(MAKE) -C haribote src_only + $(MAKE) -C apilib src_only + $(MAKE) -C a src_only + $(MAKE) -C hello3 src_only + $(MAKE) -C hello4 src_only + $(MAKE) -C hello5 src_only + $(MAKE) -C winhelo src_only + $(MAKE) -C winhelo2 src_only + $(MAKE) -C winhelo3 src_only + $(MAKE) -C star1 src_only + $(MAKE) -C stars src_only + $(MAKE) -C stars2 src_only + $(MAKE) -C lines src_only + $(MAKE) -C walk src_only + $(MAKE) -C noodle src_only + $(MAKE) -C beepdown src_only + $(MAKE) -C color src_only + $(MAKE) -C color2 src_only + -$(DEL) haribote.img + +refresh : + $(MAKE) full + $(MAKE) clean_full + -$(DEL) haribote.img diff --git a/27_day/a/!cons_9x.bat b/27_day/a/!cons_9x.bat new file mode 100644 index 0000000..e42252a --- /dev/null +++ b/27_day/a/!cons_9x.bat @@ -0,0 +1 @@ +command \ No newline at end of file diff --git a/27_day/a/!cons_nt.bat b/27_day/a/!cons_nt.bat new file mode 100644 index 0000000..6e07473 --- /dev/null +++ b/27_day/a/!cons_nt.bat @@ -0,0 +1 @@ +cmd.exe \ No newline at end of file diff --git a/27_day/a/Makefile b/27_day/a/Makefile new file mode 100644 index 0000000..674a683 --- /dev/null +++ b/27_day/a/Makefile @@ -0,0 +1,5 @@ +APP = a +STACK = 1k +MALLOC = 0k + +include ../app_make.txt diff --git a/27_day/a.c b/27_day/a/a.c similarity index 100% rename from 27_day/a.c rename to 27_day/a/a.c diff --git a/27_day/a/make.bat b/27_day/a/make.bat new file mode 100644 index 0000000..6b0dbfc --- /dev/null +++ b/27_day/a/make.bat @@ -0,0 +1 @@ +..\..\z_tools\make.exe %1 %2 %3 %4 %5 %6 %7 %8 %9 \ No newline at end of file diff --git a/27_day/apilib/!cons_9x.bat b/27_day/apilib/!cons_9x.bat new file mode 100644 index 0000000..e42252a --- /dev/null +++ b/27_day/apilib/!cons_9x.bat @@ -0,0 +1 @@ +command \ No newline at end of file diff --git a/27_day/apilib/!cons_nt.bat b/27_day/apilib/!cons_nt.bat new file mode 100644 index 0000000..6e07473 --- /dev/null +++ b/27_day/apilib/!cons_nt.bat @@ -0,0 +1 @@ +cmd.exe \ No newline at end of file diff --git a/27_day/apilib/Makefile b/27_day/apilib/Makefile new file mode 100644 index 0000000..e93248b --- /dev/null +++ b/27_day/apilib/Makefile @@ -0,0 +1,47 @@ +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/ + +MAKE = $(TOOLPATH)make.exe -r +NASK = $(TOOLPATH)nask.exe +CC1 = $(TOOLPATH)cc1.exe -I$(INCPATH) -Os -Wall -quiet +GAS2NASK = $(TOOLPATH)gas2nask.exe -a +OBJ2BIM = $(TOOLPATH)obj2bim.exe +MAKEFONT = $(TOOLPATH)makefont.exe +BIN2OBJ = $(TOOLPATH)bin2obj.exe +BIM2HRB = $(TOOLPATH)bim2hrb.exe +RULEFILE = ../haribote.rul +EDIMG = $(TOOLPATH)edimg.exe +IMGTOL = $(TOOLPATH)imgtol.com +GOLIB = $(TOOLPATH)golib00.exe +COPY = copy +DEL = del + +# ƒfƒtƒHƒ‹ƒg“®ì + +default : + $(MAKE) apilib.lib + +# ƒtƒ@ƒCƒ‹¶¬‹K‘¥ + +apilib.lib : Makefile $(OBJS_API) + $(GOLIB) $(OBJS_API) out:apilib.lib + +# ˆê”Ê‹K‘¥ + +%.obj : %.nas Makefile + $(NASK) $*.nas $*.obj $*.lst + +# ƒRƒ}ƒ“ƒh + +clean : + -$(DEL) *.lst + -$(DEL) *.obj + +src_only : + $(MAKE) clean + -$(DEL) apilib.lib diff --git a/27_day/api001.nas b/27_day/apilib/api001.nas similarity index 100% rename from 27_day/api001.nas rename to 27_day/apilib/api001.nas diff --git a/27_day/api002.nas b/27_day/apilib/api002.nas similarity index 100% rename from 27_day/api002.nas rename to 27_day/apilib/api002.nas diff --git a/27_day/api003.nas b/27_day/apilib/api003.nas similarity index 100% rename from 27_day/api003.nas rename to 27_day/apilib/api003.nas diff --git a/27_day/api004.nas b/27_day/apilib/api004.nas similarity index 100% rename from 27_day/api004.nas rename to 27_day/apilib/api004.nas diff --git a/27_day/api005.nas b/27_day/apilib/api005.nas similarity index 100% rename from 27_day/api005.nas rename to 27_day/apilib/api005.nas diff --git a/27_day/api006.nas b/27_day/apilib/api006.nas similarity index 100% rename from 27_day/api006.nas rename to 27_day/apilib/api006.nas diff --git a/27_day/api007.nas b/27_day/apilib/api007.nas similarity index 100% rename from 27_day/api007.nas rename to 27_day/apilib/api007.nas diff --git a/27_day/api008.nas b/27_day/apilib/api008.nas similarity index 100% rename from 27_day/api008.nas rename to 27_day/apilib/api008.nas diff --git a/27_day/api009.nas b/27_day/apilib/api009.nas similarity index 100% rename from 27_day/api009.nas rename to 27_day/apilib/api009.nas diff --git a/27_day/api010.nas b/27_day/apilib/api010.nas similarity index 100% rename from 27_day/api010.nas rename to 27_day/apilib/api010.nas diff --git a/27_day/api011.nas b/27_day/apilib/api011.nas similarity index 100% rename from 27_day/api011.nas rename to 27_day/apilib/api011.nas diff --git a/27_day/api012.nas b/27_day/apilib/api012.nas similarity index 100% rename from 27_day/api012.nas rename to 27_day/apilib/api012.nas diff --git a/27_day/api013.nas b/27_day/apilib/api013.nas similarity index 100% rename from 27_day/api013.nas rename to 27_day/apilib/api013.nas diff --git a/27_day/api014.nas b/27_day/apilib/api014.nas similarity index 100% rename from 27_day/api014.nas rename to 27_day/apilib/api014.nas diff --git a/27_day/api015.nas b/27_day/apilib/api015.nas similarity index 100% rename from 27_day/api015.nas rename to 27_day/apilib/api015.nas diff --git a/27_day/api016.nas b/27_day/apilib/api016.nas similarity index 100% rename from 27_day/api016.nas rename to 27_day/apilib/api016.nas diff --git a/27_day/api017.nas b/27_day/apilib/api017.nas similarity index 100% rename from 27_day/api017.nas rename to 27_day/apilib/api017.nas diff --git a/27_day/api018.nas b/27_day/apilib/api018.nas similarity index 100% rename from 27_day/api018.nas rename to 27_day/apilib/api018.nas diff --git a/27_day/api019.nas b/27_day/apilib/api019.nas similarity index 100% rename from 27_day/api019.nas rename to 27_day/apilib/api019.nas diff --git a/27_day/api020.nas b/27_day/apilib/api020.nas similarity index 100% rename from 27_day/api020.nas rename to 27_day/apilib/api020.nas diff --git a/27_day/apilib/apilib.lib b/27_day/apilib/apilib.lib new file mode 100644 index 0000000000000000000000000000000000000000..29a8eeebd154eb753bb6d0e59a2125dff5d57df1 GIT binary patch literal 8966 zcmeI2&uv5w%5XY3zgzHW)jywS}zIi{^ zs~^`oyY){J*V10ed5ca-)fYK*TCxI?b?20d;e=|w_fW&6}na@=PnqsV7Bha zllH#Z`liuxcX5h4?T34frc-RR8rFkav)SI2z1`<~9n-YOXg6AxJnfiN-K{$VG#f3` zDeN}e-9hQDY27!!m6wTISd9m!{SkCHS})$E;`RZ|rK z#|@ljv<` zk{TKXJq@0(S4Kv|fTU3jLBsIt#Z#JokY1dkHm1RSlte+J&l|wuM!?oo)Fa?YdgWaq z5Jr@J91^)TiH%C^Mx_v|Uh=Q{?=)o4s((anyz1OXNffL8`Da^wa!*(bQavlP)H}#5 z_bQnc(ug!^#8=xvJ5)&zgy-*-cLjt;4X_o;1C=^a4ne2vx7mNteS+v*rZ%R-eUwB) z=hLk|d5(-{iSR5Fo)yBACOny5Gjo{`-413{)-&R#@Je)y7U@RHA0;cozPqG!{eMD< zcOXHjLX}Af!2ca!tG6Ds^wv0udn73()F@y8O#*o;b z_d>5k$H8&G?9V=eLYT<^1PVXU?+X7jr?#AXi()kkTw9nBbg=@*)j4->8D{hBcrR-3nB Wt<|Qd)cUcbwAxHvcu(R_7XJe03V>?> literal 0 HcmV?d00001 diff --git a/27_day/apilib/make.bat b/27_day/apilib/make.bat new file mode 100644 index 0000000..6b0dbfc --- /dev/null +++ b/27_day/apilib/make.bat @@ -0,0 +1 @@ +..\..\z_tools\make.exe %1 %2 %3 %4 %5 %6 %7 %8 %9 \ No newline at end of file diff --git a/27_day/app_make.txt b/27_day/app_make.txt new file mode 100644 index 0000000..2bca4bc --- /dev/null +++ b/27_day/app_make.txt @@ -0,0 +1,79 @@ +TOOLPATH = ../../z_tools/ +INCPATH = ../../z_tools/haribote/ +APILIBPATH = ../apilib/ +HARIBOTEPATH = ../haribote/ + +MAKE = $(TOOLPATH)make.exe -r +NASK = $(TOOLPATH)nask.exe +CC1 = $(TOOLPATH)cc1.exe -I$(INCPATH) -I../ -Os -Wall -quiet +GAS2NASK = $(TOOLPATH)gas2nask.exe -a +OBJ2BIM = $(TOOLPATH)obj2bim.exe +MAKEFONT = $(TOOLPATH)makefont.exe +BIN2OBJ = $(TOOLPATH)bin2obj.exe +BIM2HRB = $(TOOLPATH)bim2hrb.exe +RULEFILE = ../haribote.rul +EDIMG = $(TOOLPATH)edimg.exe +IMGTOL = $(TOOLPATH)imgtol.com +GOLIB = $(TOOLPATH)golib00.exe +COPY = copy +DEL = del + +#默认动作 + +default : + $(MAKE) $(APP).hrb + +#文件生æˆè§„则 + +$(APP).bim : $(APP).obj $(APILIBPATH)apilib.lib Makefile ../app_make.txt + $(OBJ2BIM) @$(RULEFILE) out:$(APP).bim map:$(APP).map stack:$(STACK) \ + $(APP).obj $(APILIBPATH)apilib.lib + +$(APP).hrb : $(APP).bim Makefile ../app_make.txt + $(BIM2HRB) $(APP).bim $(APP).hrb $(MALLOC) + +haribote.img : ../haribote/ipl10.bin ../haribote/haribote.sys $(APP).hrb \ + Makefile ../app_make.txt + $(EDIMG) imgin:../../z_tools/fdimg0at.tek \ + wbinimg src:../haribote/ipl10.bin len:512 from:0 to:0 \ + copy from:../haribote/haribote.sys to:@: \ + copy from:$(APP).hrb to:@: \ + imgout:haribote.img + +#一般规则 + +%.gas : %.c ../apilib.h Makefile ../app_make.txt + $(CC1) -o $*.gas $*.c + +%.nas : %.gas Makefile ../app_make.txt + $(GAS2NASK) $*.gas $*.nas + +%.obj : %.nas Makefile ../app_make.txt + $(NASK) $*.nas $*.obj $*.lst + +#命令 + +run : + $(MAKE) haribote.img + $(COPY) haribote.img ..\..\z_tools\qemu\fdimage0.bin + $(MAKE) -C ../../z_tools/qemu + +full : + $(MAKE) -C $(APILIBPATH) + $(MAKE) $(APP).hrb + +run_full : + $(MAKE) -C $(APILIBPATH) + $(MAKE) -C ../haribote + $(MAKE) run + +clean : + -$(DEL) *.lst + -$(DEL) *.obj + -$(DEL) *.map + -$(DEL) *.bim + -$(DEL) haribote.img + +src_only : + $(MAKE) clean + -$(DEL) $(APP).hrb diff --git a/27_day/beepdown/!cons_9x.bat b/27_day/beepdown/!cons_9x.bat new file mode 100644 index 0000000..e42252a --- /dev/null +++ b/27_day/beepdown/!cons_9x.bat @@ -0,0 +1 @@ +command \ No newline at end of file diff --git a/27_day/beepdown/!cons_nt.bat b/27_day/beepdown/!cons_nt.bat new file mode 100644 index 0000000..6e07473 --- /dev/null +++ b/27_day/beepdown/!cons_nt.bat @@ -0,0 +1 @@ +cmd.exe \ No newline at end of file diff --git a/27_day/beepdown/Makefile b/27_day/beepdown/Makefile new file mode 100644 index 0000000..ffd14fa --- /dev/null +++ b/27_day/beepdown/Makefile @@ -0,0 +1,5 @@ +APP = beepdown +STACK = 1k +MALLOC = 40k + +include ../app_make.txt diff --git a/27_day/beepdown.c b/27_day/beepdown/beepdown.c similarity index 100% rename from 27_day/beepdown.c rename to 27_day/beepdown/beepdown.c diff --git a/27_day/beepdown/make.bat b/27_day/beepdown/make.bat new file mode 100644 index 0000000..6b0dbfc --- /dev/null +++ b/27_day/beepdown/make.bat @@ -0,0 +1 @@ +..\..\z_tools\make.exe %1 %2 %3 %4 %5 %6 %7 %8 %9 \ No newline at end of file diff --git a/27_day/color/!cons_9x.bat b/27_day/color/!cons_9x.bat new file mode 100644 index 0000000..e42252a --- /dev/null +++ b/27_day/color/!cons_9x.bat @@ -0,0 +1 @@ +command \ No newline at end of file diff --git a/27_day/color/!cons_nt.bat b/27_day/color/!cons_nt.bat new file mode 100644 index 0000000..6e07473 --- /dev/null +++ b/27_day/color/!cons_nt.bat @@ -0,0 +1 @@ +cmd.exe \ No newline at end of file diff --git a/27_day/color/Makefile b/27_day/color/Makefile new file mode 100644 index 0000000..614dac9 --- /dev/null +++ b/27_day/color/Makefile @@ -0,0 +1,5 @@ +APP = color +STACK = 1k +MALLOC = 56k + +include ../app_make.txt diff --git a/27_day/color.c b/27_day/color/color.c similarity index 100% rename from 27_day/color.c rename to 27_day/color/color.c diff --git a/27_day/color/make.bat b/27_day/color/make.bat new file mode 100644 index 0000000..6b0dbfc --- /dev/null +++ b/27_day/color/make.bat @@ -0,0 +1 @@ +..\..\z_tools\make.exe %1 %2 %3 %4 %5 %6 %7 %8 %9 \ No newline at end of file diff --git a/27_day/color2/!cons_9x.bat b/27_day/color2/!cons_9x.bat new file mode 100644 index 0000000..e42252a --- /dev/null +++ b/27_day/color2/!cons_9x.bat @@ -0,0 +1 @@ +command \ No newline at end of file diff --git a/27_day/color2/!cons_nt.bat b/27_day/color2/!cons_nt.bat new file mode 100644 index 0000000..6e07473 --- /dev/null +++ b/27_day/color2/!cons_nt.bat @@ -0,0 +1 @@ +cmd.exe \ No newline at end of file diff --git a/27_day/color2/Makefile b/27_day/color2/Makefile new file mode 100644 index 0000000..93b5f23 --- /dev/null +++ b/27_day/color2/Makefile @@ -0,0 +1,5 @@ +APP = color2 +STACK = 1k +MALLOC = 56k + +include ../app_make.txt diff --git a/27_day/color2.c b/27_day/color2/color2.c similarity index 100% rename from 27_day/color2.c rename to 27_day/color2/color2.c diff --git a/27_day/color2/make.bat b/27_day/color2/make.bat new file mode 100644 index 0000000..6b0dbfc --- /dev/null +++ b/27_day/color2/make.bat @@ -0,0 +1 @@ +..\..\z_tools\make.exe %1 %2 %3 %4 %5 %6 %7 %8 %9 \ No newline at end of file diff --git a/27_day/haribote.rul b/27_day/haribote.rul new file mode 100644 index 0000000..ee8f67b --- /dev/null +++ b/27_day/haribote.rul @@ -0,0 +1,10 @@ +format: + code(align:1, logic:0x24, file:0x24); + data(align:4, logic:stack_end, file:code_end); + +file: + ../../z_tools/haribote/harilibc.lib; + ../../z_tools/haribote/golibc.lib; + +label: + _HariStartup; diff --git a/27_day/haribote/!cons_9x.bat b/27_day/haribote/!cons_9x.bat new file mode 100644 index 0000000..e42252a --- /dev/null +++ b/27_day/haribote/!cons_9x.bat @@ -0,0 +1 @@ +command \ No newline at end of file diff --git a/27_day/haribote/!cons_nt.bat b/27_day/haribote/!cons_nt.bat new file mode 100644 index 0000000..6e07473 --- /dev/null +++ b/27_day/haribote/!cons_nt.bat @@ -0,0 +1 @@ +cmd.exe \ No newline at end of file diff --git a/27_day/haribote/Makefile b/27_day/haribote/Makefile new file mode 100644 index 0000000..b0ce461 --- /dev/null +++ b/27_day/haribote/Makefile @@ -0,0 +1,79 @@ +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 + +TOOLPATH = ../../z_tools/ +INCPATH = ../../z_tools/haribote/ + +MAKE = $(TOOLPATH)make.exe -r +NASK = $(TOOLPATH)nask.exe +CC1 = $(TOOLPATH)cc1.exe -I$(INCPATH) -Os -Wall -quiet +GAS2NASK = $(TOOLPATH)gas2nask.exe -a +OBJ2BIM = $(TOOLPATH)obj2bim.exe +MAKEFONT = $(TOOLPATH)makefont.exe +BIN2OBJ = $(TOOLPATH)bin2obj.exe +BIM2HRB = $(TOOLPATH)bim2hrb.exe +RULEFILE = ../haribote.rul +EDIMG = $(TOOLPATH)edimg.exe +IMGTOL = $(TOOLPATH)imgtol.com +GOLIB = $(TOOLPATH)golib00.exe +COPY = copy +DEL = del + +#默认动作 + +default : + $(MAKE) ipl10.bin + $(MAKE) haribote.sys + +# é•œåƒæ–‡ä»¶ç”Ÿæˆ + +ipl10.bin : ipl10.nas Makefile + $(NASK) ipl10.nas ipl10.bin ipl10.lst + +asmhead.bin : asmhead.nas Makefile + $(NASK) asmhead.nas asmhead.bin asmhead.lst + +hankaku.bin : hankaku.txt Makefile + $(MAKEFONT) hankaku.txt hankaku.bin + +hankaku.obj : hankaku.bin Makefile + $(BIN2OBJ) hankaku.bin hankaku.obj _hankaku + +bootpack.bim : $(OBJS_BOOTPACK) Makefile + $(OBJ2BIM) @$(RULEFILE) out:bootpack.bim stack:3136k map:bootpack.map \ + $(OBJS_BOOTPACK) +# 3MB+64KB=3136KB + +bootpack.hrb : bootpack.bim Makefile + $(BIM2HRB) bootpack.bim bootpack.hrb 0 + +haribote.sys : asmhead.bin bootpack.hrb Makefile + copy /B asmhead.bin+bootpack.hrb haribote.sys + +# 其他指令 + +%.gas : %.c bootpack.h Makefile + $(CC1) -o $*.gas $*.c + +%.nas : %.gas Makefile + $(GAS2NASK) $*.gas $*.nas + +%.obj : %.nas Makefile + $(NASK) $*.nas $*.obj $*.lst + +# è¿è¡Œç¨‹åº + +clean : + -$(DEL) asmhead.bin + -$(DEL) hankaku.bin + -$(DEL) *.lst + -$(DEL) *.obj + -$(DEL) *.map + -$(DEL) *.bim + -$(DEL) *.hrb + +src_only : + $(MAKE) clean + -$(DEL) ipl10.bin + -$(DEL) haribote.sys diff --git a/27_day/asmhead.nas b/27_day/haribote/asmhead.nas similarity index 100% rename from 27_day/asmhead.nas rename to 27_day/haribote/asmhead.nas diff --git a/27_day/bootpack.c b/27_day/haribote/bootpack.c similarity index 100% rename from 27_day/bootpack.c rename to 27_day/haribote/bootpack.c diff --git a/27_day/bootpack.h b/27_day/haribote/bootpack.h similarity index 100% rename from 27_day/bootpack.h rename to 27_day/haribote/bootpack.h diff --git a/27_day/console.c b/27_day/haribote/console.c similarity index 100% rename from 27_day/console.c rename to 27_day/haribote/console.c diff --git a/27_day/dsctbl.c b/27_day/haribote/dsctbl.c similarity index 100% rename from 27_day/dsctbl.c rename to 27_day/haribote/dsctbl.c diff --git a/27_day/fifo.c b/27_day/haribote/fifo.c similarity index 100% rename from 27_day/fifo.c rename to 27_day/haribote/fifo.c diff --git a/27_day/file.c b/27_day/haribote/file.c similarity index 100% rename from 27_day/file.c rename to 27_day/haribote/file.c diff --git a/27_day/graphic.c b/27_day/haribote/graphic.c similarity index 100% rename from 27_day/graphic.c rename to 27_day/haribote/graphic.c diff --git a/27_day/hankaku.txt b/27_day/haribote/hankaku.txt similarity index 100% rename from 27_day/hankaku.txt rename to 27_day/haribote/hankaku.txt diff --git a/27_day/haribote/haribote.sys b/27_day/haribote/haribote.sys new file mode 100644 index 0000000000000000000000000000000000000000..e098d2b2dc72ce95ff296ef38e8f320f59a0abbd GIT binary patch literal 33331 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