DOSLIB_DOS=$(DOSLIBDIR)/hw/dos
DOSLIB_VGA=$(DOSLIBDIR)/hw/vga
DOSLIB_8250=$(DOSLIBDIR)/hw/8250
+DOSLIB_8254=$(DOSLIBDIR)/hw/8254
+DOSLIB_ADLIB=$(DOSLIBDIR)/hw/adlib
DOSLIB_JOYSTICK=$(DOSLIBDIR)/hw/joystick
DOSLIB_MEMMODE=dos86$(MEMORYMODE)
#
# objects
#
-VGMSNDOBJ = vgmSnd.$(OBJ) 16_snd.$(OBJ)
+VGMSNDOBJ = vgmSnd.$(OBJ) 16_sd.$(OBJ)
#OLDLIBOBJS=bitmap.$(OBJ) 16render.$(OBJ)
GFXLIBOBJS = 16_vl.$(OBJ) 16_vl_1.$(OBJ) 16_vlpal.$(OBJ) 16text.$(OBJ) bakapee.$(OBJ) scroll16.$(OBJ) 16_vrs.$(OBJ) 16_spri.$(OBJ) $(OLDLIBOBJS)
16LIBOBJS = 16_mm.$(OBJ) 16_pm.$(OBJ) 16_ca.$(OBJ) 16_tail.$(OBJ) 16_head.$(OBJ) 16_enti.$(OBJ) 16_dbg.$(OBJ) 16_in.$(OBJ) kitten.$(OBJ) 16_hc.$(OBJ) 16_wcpu.$(OBJ) 16_timer.$(OBJ) jsmn.$(OBJ) 16_map.$(OBJ) 16text.$(OBJ)
#
# libraries
#
-DOSLIBLIBS = $(DOSLIB_CPU)/$(DOSLIB_MEMMODE)/cpu.lib $(DOSLIB_DOS)/$(DOSLIB_MEMMODE)/dos.lib $(DOSLIB_VGA)/$(DOSLIB_MEMMODE)/vga.lib
+DOSLIBLIBS = $(DOSLIB_CPU)/$(DOSLIB_MEMMODE)/cpu.lib $(DOSLIB_DOS)/$(DOSLIB_MEMMODE)/dos.lib $(DOSLIB_VGA)/$(DOSLIB_MEMMODE)/vga.lib $(DOSLIB_8254)/$(DOSLIB_MEMMODE)/8254.lib $(DOSLIB_ADLIB)/$(DOSLIB_MEMMODE)/adlib.lib
!ifeq DEBUGSERIAL 1
DOSLIBLIBS += $(DOSLIB_8250)/$(DOSLIB_MEMMODE)/8250.lib
!endif
.asm : $(MODEXLIB);$(UTIL)
-.lib : .;$(DOSLIB_CPU)/$(DOSLIB_MEMMODE);$(DOSLIB_DOS)/$(DOSLIB_MEMMODE);$(DOSLIB_VGA)/$(DOSLIB_MEMMODE);$(DOSLIB_8250)/$(DOSLIB_MEMMODE)
+.lib : .;$(DOSLIB_CPU)/$(DOSLIB_MEMMODE);$(DOSLIB_DOS)/$(DOSLIB_MEMMODE);$(DOSLIB_VGA)/$(DOSLIB_MEMMODE);$(DOSLIB_8250)/$(DOSLIB_MEMMODE);$(DOSLIB_8254)/$(DOSLIB_MEMMODE);$(DOSLIB_ADLIB)/$(DOSLIB_MEMMODE)
.$(OBJ) : .
vidtest.exe &
exmmtest.exe &
vgmtest.exe &
+ sountest.exe &
xcroll.exe &
inputest.exe &
vrstest.exe &
fontgfx.exe: fontgfx.$(OBJ) gfx.lib $(DOSLIB)
inputest.exe: inputest.$(OBJ) $(16LIB) $(DOSLIB) gfx.lib
#inntest.exe: inntest.$(OBJ) $(16LIBNOINOBJS) 16_in_1.$(OBJ) $(DOSLIB) gfx.lib
-#sountest.exe: sountest.$(OBJ) $(16LIB)
+sountest.exe: sountest.$(OBJ) $(16LIB) $(DOSLIB) gfx.lib
pcxtest.exe: pcxtest.$(OBJ) gfx.lib $(DOSLIB) $(16LIB)
vrstest.exe: vrstest.$(OBJ) $(16LIB) gfx.lib $(DOSLIB)
#vgacamm.exe: vgacamm.$(OBJ) $(16LIB) gfx.lib $(DOSLIB)
fontgfx.$(OBJ):$(SRC)/fontgfx.c
inputest.$(OBJ):$(SRC)/inputest.c
#inntest.$(OBJ):$(SRC)/inntest.c
-#sountest.$(OBJ): $(SRC)/sountest.c
+sountest.$(OBJ): $(SRC)/sountest.c
#miditest.$(OBJ): $(SRC)/miditest.c
#testemm.$(OBJ):$(SRC)/testemm.c
#testemm0.$(OBJ): $(SRC)/testemm0.c
cd $(DOSLIB_VGA:$(to_os_path)) && $(DOSLIBMAKE) $(DOSLIB_MEMMODE) && cd $(BUILD_ROOT)
$(DOSLIB_8250)/$(DOSLIB_MEMMODE)/8250.lib:
cd $(DOSLIB_8250:$(to_os_path)) && $(DOSLIBMAKE) $(DOSLIB_MEMMODE) && cd $(BUILD_ROOT)
+$(DOSLIB_8254)/$(DOSLIB_MEMMODE)/8254.lib:
+ cd $(DOSLIB_8254:$(to_os_path)) && $(DOSLIBMAKE) $(DOSLIB_MEMMODE) && cd $(BUILD_ROOT)
+$(DOSLIB_ADLIB)/$(DOSLIB_MEMMODE)/adlib.lib:
+ cd $(DOSLIB_ADLIB:$(to_os_path)) && $(DOSLIBMAKE) $(DOSLIB_MEMMODE) && cd $(BUILD_ROOT)
joytest.exe:
cd $(DOSLIB_JOYSTICK:$(to_os_path)) && $(DOSLIBMAKE) $(DOSLIB_MEMMODE) && cd $(BUILD_ROOT)
16_head.$(OBJ):$(SRCLIB)/16_head.c $(SRCLIB)/16_head.h
16_tail.$(OBJ):$(SRCLIB)/16_tail.c $(SRCLIB)/16_tail.h
16_hc.$(OBJ): $(SRCLIB)/16_hc.c $(SRCLIB)/16_hc.h
-16_snd.$(OBJ): $(SRCLIB)/16_snd.c $(SRCLIB)/16_snd.h
+16_sd.$(OBJ): $(SRCLIB)/16_sd.c $(SRCLIB)/16_sd.h
jsmn.$(OBJ): $(JSMNLIB)/jsmn.c $(JSMNLIB)/jsmn.h
kitten.$(OBJ): $(NYANLIB)/kitten.c $(NYANLIB)/kitten.h
vgmSnd.$(OBJ): $(VGMSNDLIB)/vgmSnd.c $(VGMSNDLIB)/vgmSnd.h
static bakapee_t bakapee;\r
word key,d,xpos,ypos,xdir,ydir;\r
sword vgamodex_mode = 1; // 320x240 default\r
+void TL_VidInit(global_game_variables_t *gvar){}\r
//int ch=0x0;\r
\r
void\r
*\r
*/\r
\r
-#include "src/lib/16_snd.h"\r
+#include "src/lib/16_sd.h"\r
\r
void opl2out(word reg, word data)\r
{\r
*\r
*/\r
\r
-#ifndef __16_SND_H_\r
-#define __16_SND_H_\r
+#ifndef __16_SD_H_\r
+#define __16_SD_H_\r
\r
#include "src/lib/16_head.h"\r
+#include <hw/8254/8254.h> /* 8254 timer */\r
+#include <hw/adlib/adlib.h>\r
\r
#define MIN_REGISTER 0x01\r
#define MAX_REGISTER 0xF5\r
#ifdef __16_PM__\r
PM_UnlockMainMem(gvar);\r
#endif\r
- //snd\r
+ //sd\r
MM_SortMem (gvar);\r
}\r
\r
default: // init the video\r
if(gv->video.VL_Started)\r
return;\r
+ if(!gv->video.VL_Initiated)\r
+ TL_VidInit(gv);\r
// get old video mode\r
//in.h.ah = 0xf;\r
//int86(0x10, &in, &out);\r
\r
void\r
modexSelectPlane(byte plane) {\r
- outp(SC_INDEX, MAP_MASK); /* select plane */\r
+ outp(SC_INDEX, SC_MAPMASK); /* select plane */\r
outp(SC_DATA, plane);\r
}\r
\r
MOV ES, AX\r
MOV DI, poffset ; go to the first pixel\r
MOV DX, SC_INDEX ; point to the map mask\r
- MOV AL, MAP_MASK\r
+ MOV AL, SC_MAPMASK\r
OUT DX, AL\r
INC DX\r
MOV AL, color ; get ready to write colors\r
\r
MOV AX, SC_INDEX ; point to the mask register\r
MOV DX, AX ;\r
- MOV AL, MAP_MASK ;\r
+ MOV AL, SC_MAPMASK ;\r
OUT DX, AL ;\r
INC DX ;\r
\r
#define ATR_INDEX AC_INDEX\r
#define ATR_OVERSCAN 17\r
#define DISPLAY_ENABLE 0x01\r
-#define MAP_MASK 0x02\r
+//#define MAP_MASK 0x02\r
#define PAL_READ_REG 0x03C7 /* Color register, read address */\r
#define PAL_WRITE_REG 0x03C8 /* Color register, write address */\r
#define PAL_DATA_REG 0x03C9 /* Color register, data port */\r
void VGAmodeX(sword vq, boolean cmem, global_game_variables_t *gv);\r
void modexEnter(sword vq, boolean cmem, global_game_variables_t *gv);\r
byte vgaGetMode();\r
+extern void TL_VidInit(global_game_variables_t *gvar);\r
void modexLeave();\r
-void VL_SetLineWidth (unsigned width, ofs_t *ofs);\r
void modexsetBaseXMode();\r
page_t modexDefaultPage(page_t *p);\r
page_t modexNextPage(page_t *p);\r
void modexWaitBorder_start();\r
void modexWaitBorder_end();\r
void VL_WaitVBL(word num);\r
+void VL_SetLineWidth (unsigned width, ofs_t *ofs);\r
void VL_PrintmodexmemInfo(video_t *v);\r
\r
#endif\r
#include <stdio.h>\r
\r
#include "src/lib/16_in.h"\r
-//#include "src/lib/16_snd.h"\r
-#include "src/lib/doslib/adlib.h"\r
-#include "src/lib/doslib/8254.h" /* 8254 timer */\r
+#include "src/lib/16_sd.h"\r
+//#include <hw/8254/8254.h> /* 8254 timer */\r
+//#include <hw/adlib/adlib.h>\r
\r
static unsigned int musical_scale[18] = {\r
0x1B0, /* E */\r
{\r
static global_game_variables_t gvar;\r
word i;\r
+ boolean done;\r
+ ScanCode scan;\r
// static FMInstrument testInst =\r
//{\r
//0x00, 0x01, /* modulator frequency multiple... 0x20 */\r
//0x36, /* feedback algorithm and strength 0xC0 */\r
//};\r
\r
- IN_Startup();\r
+ IN_Startup(&gvar);\r
//FMReset();\r
//FMSetVoice(0, &testInst);\r
if(!init_adlib())\r
{\r
- Quit(gvar, "Cannot init library");\r
+ Quit(&gvar, "Cannot init library");\r
}\r
\r
if (adlib_fm_voices > 9)\r
adlib_apply_all();\r
\r
printf("press Z! to noise\npress ESC to quit");\r
- printf("p");\r
- while(!IN_qb(1))\r
+ printf("\np");\r
+ for (done = false;!done;)\r
{\r
- if(IN_qb(44))\r
- {\r
- printf("e");\r
- adlib_fm[0].mod.key_on = 1;\r
- //FMKeyOn(0, 0x106, 4);\r
- }\r
- else\r
+ while (!(scan = gvar.in.inst->LastScan))\r
+ {}\r
+// SD_Poll();\r
+\r
+ IN_ClearKey(scan);\r
+ switch (scan)\r
{\r
- adlib_fm[0].mod.key_on = 0;\r
- //FMKeyOff(0);\r
+ case sc_Escape:\r
+ done = true;\r
+ break;\r
+ case sc_Z:\r
+ adlib_fm[0].mod.key_on = 1;\r
+ //FMKeyOn(0, 0x106, 4);\r
+ break;\r
+ default:\r
+ adlib_fm[0].mod.key_on = 0;\r
+ //FMKeyOff(0);\r
+ break;\r
}\r
+ if(adlib_fm[0].mod.key_on) printf("e");\r
adlib_update_groupA0(0,&adlib_fm[0]);\r
}\r
printf("!\n");\r
shutdown_adlib();\r
- IN_Shutdown();\r
+ IN_Shutdown(&gvar);\r
}\r
*/\r
\r
#include "src/lib/vgmsnd/vgmSnd.h"\r
-#include "src/lib/16_snd.h"\r
+#include "src/lib/16_sd.h"\r
//#include "src/lib/doslib/adlib.h"\r
#include "src/lib/16_in.h"\r
\r