# -zk0 kanji support~
# -zkl current codepage
+# this enables debug output to the serial port.
+# comment this out on game release.
+# serial output goes to COM1 at 9600 baud 1 stop bit odd parity.
+# serial output is plain text ASCII.
+DEBUGSERIAL=1
+
#%.C
#192x144
#wwww will add these
COPYCOMMAND=cp -f
DIRSEP=/
OBJ=o
+DUMP=cat
!else
REMOVECOMMAND=del
COPYCOMMAND=copy /y
DIRSEP=\
OBJ=obj
+DUMP=type
!endif
TARGET_OS = dos
DOSLIBDIR=$(SRCLIB)doslib
WCPULIB=$(SRCLIB)wcpu$(DIRSEP)
+#
+# quiet flags
+#
WLIBQ=-q
WCLQ=-zq $(WLIBQ)
UPXQ=-qqq
+#
+# compile flags
+#
AFLAGS=-mh -0 -d1
-16FLAGS=-fh=16.hed
-BAKAPIFLAGS=-fh=bakapi.hed
SFLAGS=-sg -st -of+ -zu -zdf -zff -zgf -k32768#54096#60000
DFLAGS=-DTARGET_MSDOS=16 -DMSDOS=1 $(SFLAGS)
-ZFLAGS=-zk0 -zc -zp8 $(WCLQ) ## -zm
-CFLAGS=$(AFLAGS) $(IFLAGS)-lr -l=dos -wo -i$(DOSLIB)##wwww
-OFLAGS=-obmiler -out -oh -ei -zp8 -fpi87 -onac -ol+ -ok####x
+ZFLAGS=-zk0 -zc -zp8 -zm $(WCLQ)
+LFLAGS=-lr -l=dos
+CFLAGS=$(AFLAGS) $(IFLAGS) -wo -i$(DOSLIB) $(LFLAGS)
+OFLAGS=-obmilr -oe=24 -out -oh -ei -zp8 -fpi87 -onac -ol+ -ok####x
FLAGS=$(CFLAGS) $(OFLAGS) $(DFLAGS) $(ZFLAGS)
-
+#
+# objects
+#
VGMSNDOBJ = vgmSnd.$(OBJ) 16_snd.$(OBJ)
DOSLIBOBJ = adlib.$(OBJ) 8254.$(OBJ) 8259.$(OBJ) dos.$(OBJ) cpu.$(OBJ)
-16LIBOBJS = 16_in.$(OBJ) 16_mm.$(OBJ) wcpu.$(OBJ) 16_head.$(OBJ) 16_ca.$(OBJ) kitten.$(OBJ) 16_hc.$(OBJ) 16_timer.$(OBJ)
-
-GFXLIBOBJS = modex16.$(OBJ) bitmap.$(OBJ) planar.$(OBJ) 16text.$(OBJ) bakapee.$(OBJ) scroll16.$(OBJ) 16render.$(OBJ) 16planar.$(OBJ) $(DOSLIBLIBS)
-
+16LIBOBJS = 16_in.$(OBJ) 16_mm.$(OBJ) wcpu.$(OBJ) 16_head.$(OBJ) 16_ca.$(OBJ) 16_dbg.$(OBJ) kitten.$(OBJ) 16_hc.$(OBJ) 16_timer.$(OBJ)
+GFXLIBOBJS = modex16.$(OBJ) bitmap.$(OBJ) 16text.$(OBJ) bakapee.$(OBJ) scroll16.$(OBJ) 16render.$(OBJ) $(DOSLIBLIBS)
+#16_vrs.$(OBJ)
+#planar.$(OBJ) 16planar.$(OBJ)
DOSLIBLIBS=$(DOSLIBDIR)$(DIRSEP)hw$(DIRSEP)cpu$(DIRSEP)dos86h$(DIRSEP)cpu.lib $(DOSLIBDIR)$(DIRSEP)hw$(DIRSEP)dos$(DIRSEP)dos86h$(DIRSEP)dos.lib $(DOSLIBDIR)$(DIRSEP)hw$(DIRSEP)vga$(DIRSEP)dos86h$(DIRSEP)vga.lib
-TESTEXEC = exmmtest.exe test.exe pcxtest.exe pcxtest2.exe test2.exe palettec.exe maptest.exe fmemtest.exe fonttest.exe fontgfx.exe scroll.exe vgmtest.exe inputest.exe palettel.exe planrpcx.exe
+!ifeq DEBUGSERIAL 1
+FLAGS += -DDEBUGSERIAL
+DOSLIBOBJ += 8250.$(OBJ)
+DOSLIBLIBS += $(DOSLIBDIR)$(DIRSEP)hw$(DIRSEP)8250$(DIRSEP)dos86h$(DIRSEP)8250.lib
+!endif
-EXEC = 16.exe bakapi.exe $(TESTEXEC) tesuto.exe
+TESTEXEC = test.exe test0.exe pcxtest.exe pcxtest2.exe palettec.exe maptest.exe fmemtest.exe fonttest.exe fontgfx.exe scroll.exe vgmtest.exe inputest.exe palettel.exe exmmtest.exe
+#planrpcx.exe test2.exe
+EXEC = 16.exe bakapi.exe tesuto.exe 0.exe $(TESTEXEC)
-all: $(EXEC) joytest.exe vrs
+all: $(EXEC) joytest.exe
#16.lib => $(16LIBOBJS) bug....
16LIB=$(16LIBOBJS)
+#16LIB=16.lib
+
+!ifeq DEBUGSERIAL 1
+16LIBOBJS += $(DOSLIBLIBS)
+!endif
#
#game and bakapi executables
#
# %write tmp.cmd library $(DOSLIBDIR)$(DIRSEP)hw$(DIRSEP)cpu$(DIRSEP)dos86h$(DIRSEP)cpu.lib
# %write tmp.cmd library $(DOSLIBDIR)$(DIRSEP)hw$(DIRSEP)dos$(DIRSEP)dos86h$(DIRSEP)dos.lib
# @wlink @tmp.cmd
+
+#
+# add this ww to reduce junk www
+#
+# NTS we have to construct the command line into tmp.cmd because for MS-DOS
+# systems all arguments would exceed the pitiful 128 char command line limit
+#.C.OBJ:
+# %write temp.cmd $(CFLAGS_THIS) $(CFLAGS_CON) $[@
+# wcl @temp.cmd
+#
wcl $(FLAGS) $(WCLQ) tesuto.$(OBJ) $(DOSLIBLIBS) 16_head.$(OBJ) gfx.lib
tesuto.$(OBJ): $(SRC)tesuto.c
wcl $(FLAGS) $(WCLQ) -c $(SRC)tesuto.c
-test.exe: test.$(OBJ) gfx.lib 16_in.$(OBJ) 16_head.$(OBJ) $(DOSLIBLIBS) $(16LIB)
- wcl $(FLAGS) test.$(OBJ) gfx.lib 16_in.$(OBJ) 16_head.$(OBJ) $(DOSLIBLIBS) $(16LIB) -fm=test.mah
+0.exe: 0.$(OBJ) $(DOSLIBLIBS) gfx.lib $(16LIB)
+ wcl $(FLAGS) $(WCLQ) 0.$(OBJ) $(DOSLIBLIBS) gfx.lib $(16LIB)
+0.$(OBJ): $(SRC)0.c
+ wcl $(FLAGS) $(WCLQ) -c $(SRC)0.c
+
+test.exe: test.$(OBJ) gfx.lib $(DOSLIBLIBS) $(16LIB)
+ wcl $(FLAGS) test.$(OBJ) gfx.lib $(DOSLIBLIBS) $(16LIB) -fm=test.mah
-test2.exe: test2.$(OBJ) $(DOSLIBLIBS) gfx.lib
- wcl $(FLAGS) test2.$(OBJ) $(DOSLIBLIBS) gfx.lib -fm=test2.mah
+#test2.exe: test2.$(OBJ) $(DOSLIBLIBS) gfx.lib
+# wcl $(FLAGS) test2.$(OBJ) $(DOSLIBLIBS) gfx.lib -fm=test2.mah
+
+test0.exe: test0.$(OBJ)
+ wcl $(FLAGS) test0.$(OBJ) -fm=test0.mah
fonttest.exe: fonttest.$(OBJ) $(16LIB) gfx.lib
wcl $(FLAGS) fonttest.$(OBJ) $(16LIB) gfx.lib -fm=fonttest.mah
pcxtest2.exe: pcxtest2.$(OBJ) gfx.lib
wcl $(FLAGS) pcxtest2.$(OBJ) gfx.lib -fm=pcxtest2.mah
-planrpcx.exe: planrpcx.$(OBJ) gfx.lib
- wcl $(FLAGS) planrpcx.$(OBJ) gfx.lib -fm=planrpcx.mah
+##planrpcx.exe: planrpcx.$(OBJ) gfx.lib
+## wcl $(FLAGS) planrpcx.$(OBJ) gfx.lib -fm=planrpcx.mah
maptest.exe: maptest.$(OBJ) mapread.$(OBJ) jsmn.$(OBJ) $(16LIB) gfx.lib
wcl $(FLAGS) maptest.$(OBJ) mapread.$(OBJ) jsmn.$(OBJ) $(16LIB) gfx.lib -fm=maptest.mah
fmemtest.exe: fmemtest.$(OBJ) $(16LIB)
wcl $(FLAGS) fmemtest.$(OBJ) $(16LIB) -fm=fmemtest.mah
-exmmtest.exe: exmmtest.$(OBJ) $(16LIB)
+exmmtest.exe: exmmtest.$(OBJ) 16_in.$(OBJ) 16_mm.$(OBJ) wcpu.$(OBJ) 16_head.$(OBJ) 16_ca.$(OBJ) 16_hc.$(OBJ) kitten.$(OBJ)
wcl $(FLAGS) exmmtest.$(OBJ) -fm=exmmtest.mah $(16LIB)
+####0000 ./wlink32 @__wcl__.lnk
vgmtest.exe: vgmtest.$(OBJ) vgmsnd.lib $(16LIB)
wcl $(FLAGS) vgmtest.$(OBJ) vgmsnd.lib -fm=vgmtest.mah $(16LIB)
test.$(OBJ): $(SRC)test.c $(SRCLIB)modex16.h
wcl $(FLAGS) -c $(SRC)test.c
-test2.$(OBJ): $(SRC)test2.c $(SRCLIB)modex16.h
- wcl $(FLAGS) -c $(SRC)test2.c
+#test2.$(OBJ): $(SRC)test2.c $(SRCLIB)modex16.h
+# wcl $(FLAGS) -c $(SRC)test2.c
+
+test0.$(OBJ): $(SRC)test0.c
+ wcl $(FLAGS) -c $(SRC)test0.c
pcxtest.$(OBJ): $(SRC)pcxtest.c $(SRCLIB)modex16.h
wcl $(FLAGS) -c $(SRC)pcxtest.c
-planrpcx.$(OBJ): $(SRC)planrpcx.c $(SRCLIB)modex16.h
- wcl $(FLAGS) -c $(SRC)planrpcx.c
+##planrpcx.$(OBJ): $(SRC)planrpcx.c $(SRCLIB)modex16.h
+## wcl $(FLAGS) -c $(SRC)planrpcx.c
pcxtest2.$(OBJ): $(SRC)pcxtest2.c $(SRCLIB)modex16.h
wcl $(FLAGS) -c $(SRC)pcxtest2.c
maptest.$(OBJ): $(SRC)maptest.c $(SRCLIB)modex16.h
wcl $(FLAGS) -c $(SRC)maptest.c
-#maptest0.$(OBJ): $(SRC)maptest0.c# $(SRCLIB)modex16.h
-# wcl $(FLAGS) $(MFLAGS) -c $(SRC)maptest0.c
-
#emmtest.$(OBJ): $(SRC)emmtest.c
# wcl $(FLAGS) $(MFLAGS) -c $(SRC)emmtest.c
wcl $(FLAGS) -c $(SRC)tsthimem.c
exmmtest.$(OBJ): $(SRC)exmmtest.c
- wcl $(FLAGS) -c $(SRC)exmmtest.c
+ wcl $(FLAGS) -c $(SRC)exmmtest.c 16_in.$(OBJ) 16_mm.$(OBJ) wcpu.$(OBJ) 16_head.$(OBJ) 16_ca.$(OBJ) 16_hc.$(OBJ) kitten.$(OBJ)
vgmtest.$(OBJ): $(SRC)vgmtest.c
wcl $(FLAGS) -c $(SRC)vgmtest.c
16.lib: $(16LIBOBJS)# doslib.lib vgmsnd.lib
wlib -b $(WLIBQ) 16.lib $(16LIBOBJS)# doslib.lib vgmsnd.lib
-gfx.lib: $(GFXLIBOBJS) 16_in.$(OBJ) 16_head.$(OBJ)
- wlib -b $(WLIBQ) gfx.lib $(GFXLIBOBJS) 16_in.$(OBJ) 16_head.$(OBJ)
+gfx.lib: $(GFXLIBOBJS)
+ wlib -b $(WLIBQ) gfx.lib $(GFXLIBOBJS)
vgmsnd.lib: $(VGMSNDOBJ)
wlib -b $(WLIBQ) vgmsnd.lib $(VGMSNDOBJ)
cd $(DOSLIBDIR)$(DIRSEP)hw$(DIRSEP)vga && .$(DIRSEP)make.sh
$(DOSLIBDIR)$(DIRSEP)hw$(DIRSEP)vga$(DIRSEP)dos86h$(DIRSEP)vga.lib:
cd $(DOSLIBDIR)$(DIRSEP)hw$(DIRSEP)vga && .$(DIRSEP)make.sh
+$(DOSLIBDIR)$(DIRSEP)hw$(DIRSEP)8250$(DIRSEP)dos86h$(DIRSEP)8250.lib:
+ cd $(DOSLIBDIR)$(DIRSEP)hw$(DIRSEP)8250 && .$(DIRSEP)make.sh
joytest.exe:
cd $(DOSLIBDIR)$(DIRSEP)hw$(DIRSEP)joystick && .$(DIRSEP)make.sh && $(COPYCOMMAND) dos86h$(DIRSEP)test.exe $(PDIR)$(PDIR)$(PDIR)$(PDIR)$(PDIR)joytest.exe
16render.$(OBJ): $(MODEXLIB)16render.h $(MODEXLIB)16render.c
wcl $(FLAGS) -c $(MODEXLIB)16render.c
-16planar.$(OBJ): $(MODEXLIB)16planar.h $(MODEXLIB)16planar.c
- wcl $(FLAGS) -c $(MODEXLIB)16planar.c
+##16planar.$(OBJ): $(MODEXLIB)16planar.h $(MODEXLIB)16planar.c
+## wcl $(FLAGS) -c $(MODEXLIB)16planar.c
+
+16_vrs.$(OBJ): $(SRCLIB)16_vrs.h $(SRCLIB)16_vrs.c
+ wcl $(FLAGS) -c $(SRCLIB)16_vrs.c
bitmap.$(OBJ): $(SRCLIB)bitmap.h $(SRCLIB)bitmap.c
wcl $(FLAGS) -c $(SRCLIB)bitmap.c
-planar.$(OBJ): $(SRCLIB)planar.h $(SRCLIB)planar.c
- wcl $(FLAGS) -c $(SRCLIB)planar.c
+##planar.$(OBJ): $(SRCLIB)planar.h $(SRCLIB)planar.c
+## wcl $(FLAGS) -c $(SRCLIB)planar.c
scroll16.$(OBJ): $(SRCLIB)scroll16.h $(SRCLIB)scroll16.c
wcl $(FLAGS) -c $(SRCLIB)scroll16.c
16_ca.$(OBJ): $(SRCLIB)16_ca.h $(SRCLIB)16_ca.c
wcl $(FLAGS) -c $(SRCLIB)16_ca.c
+16_dbg.$(OBJ): $(SRCLIB)16_dbg.h $(SRCLIB)16_dbg.c
+ wcl $(FLAGS) -c $(SRCLIB)16_dbg.c
+
midi.$(OBJ): $(SRCLIB)midi.h $(SRCLIB)midi.c
wcl $(FLAGS) -c $(SRCLIB)midi.c
#
clean: .symbolic
@$(REMOVECOMMAND) $(EXEC)
- @$(REMOVECOMMAND) /var/www/$(EXEC)*
@$(REMOVECOMMAND) *.$(OBJ)
@$(REMOVECOMMAND) 16.lib
@$(REMOVECOMMAND) gfx.lib
backupconfig: .symbolic
@$(COPYCOMMAND) .git$(DIRSEP)config git_con.fig
@$(COPYCOMMAND) .gitmodules git_modu.les
+ @$(COPYCOMMAND) .gitignore git_igno.re
comp: .symbolic
@upx -9 $(EXEC)
@upx -9 $(UPXQ) $(EXEC)
www: .symbolic
- @ssh -p 26 sparky4@4ch.mooo.com 'rm -f /var/www/16/*exe.zip*'
+ @ssh -p 26 sparky4@4ch.mooo.com 'rm -f /var/www/16/*exe*'
+ #@rm -f /var/www/$(EXEC)*
@rm -f /var/www/*.exe.zip*
#@cp ./$(EXEC) $(DIRSEP)var$(DIRSEP)www$(DIRSEP)
- @./z.sh $(EXEC) $(EXEC)
+ @./src/util/z.sh $(EXEC) $(EXEC)
@scp -r -P 26 *.exe 4ch.mooo.com:/var/www/16/
+ @scp -r -P 26 x4get.bat 4ch.mooo.com:/var/www/16/
@scp -r -P 26 /var/www/*.exe.zip.* 4ch.mooo.com:/var/www/16/
getwww: .symbolic
@x4get.bat $(EXEC)
+vomitchan: .symbolic
+ @$(DUMP) *.err
+
##
## External library management~ ^^
##
@rm -rf $(SRCLIB)jsmn
@rm -rf 16/CatacombApocalypse
@rm -rf 16/wolf3d
+ @rm -rf 16/keen
@wmake -h initlibs
initlibs: .symbolic
@cp git_con.fig .git/config
@cp git_modu.les .gitmodules
+ @cp git_igno.re .gitignore
@cd $(SRCLIB)
@git clone https://github.com/joncampbell123/doslib.git
@git clone https://github.com/zserge/jsmn.git
@cd 16
@git clone https://github.com/FlatRockSoft/CatacombApocalypse.git
@git clone https://github.com/id-Software/wolf3d.git
+ @git clone https://github.com/keendreams/keen.git
@cd $(PDIR)
##