From 91a0dd76c3234f0253a83e6b160e6545a2bcae9c Mon Sep 17 00:00:00 2001 From: sparky4 Date: Thu, 19 Nov 2015 15:08:24 -0600 Subject: [PATCH] IT WORKS!!!! well to a degree! wwww --- src/lib/modex/demos/c/c_utils.h | 2 +- src/lib/modex/demos/c/makefile | 28 +++++++++++++++++++++++ src/lib/modex/demos/c/modex.h | 38 +++++++++++++++---------------- src/lib/modex/demos/c/x-demo.exe | Bin 0 -> 40674 bytes 4 files changed, 48 insertions(+), 20 deletions(-) create mode 100755 src/lib/modex/demos/c/makefile create mode 100755 src/lib/modex/demos/c/x-demo.exe diff --git a/src/lib/modex/demos/c/c_utils.h b/src/lib/modex/demos/c/c_utils.h index ed0e188f..9be6ba2d 100755 --- a/src/lib/modex/demos/c/c_utils.h +++ b/src/lib/modex/demos/c/c_utils.h @@ -114,4 +114,4 @@ void far pascal init_random (void); int far pascal int_sqr (int X, int Round); int far pascal timer_count (void); -#endif \ No newline at end of file +#endif diff --git a/src/lib/modex/demos/c/makefile b/src/lib/modex/demos/c/makefile new file mode 100755 index 00000000..ff3463af --- /dev/null +++ b/src/lib/modex/demos/c/makefile @@ -0,0 +1,28 @@ +!ifdef __LINUX__ +REMOVECOMMAND=rm -f +COPYCOMMAND=cp -f +DIRSEP=/ +OBJ=o +!else +REMOVECOMMAND=del +COPYCOMMAND=copy /y +DIRSEP=\ +OBJ=obj +!endif + +all: x-demo.exe + +x-demo.exe: x-demo.$(OBJ) modex.$(OBJ) c_utils.$(OBJ) + wcl -0 -mh x-demo.$(OBJ) modex.$(OBJ) c_utils.$(OBJ) +x-demo.$(OBJ): x-demo.c + wcl -c -0 -mh x-demo.c + +c_utils.$(OBJ): c_utils.asm + wcl -0 -c -mh c_utils.asm +modex.$(OBJ): modex.asm + wcl -c -0 -mh modex.asm + +clean: .symbolic + @$(REMOVECOMMAND) x-demo.exe + @$(REMOVECOMMAND) *.$(OBJ) + @$(REMOVECOMMAND) *.err diff --git a/src/lib/modex/demos/c/modex.h b/src/lib/modex/demos/c/modex.h index 7de25a63..1381abb6 100755 --- a/src/lib/modex/demos/c/modex.h +++ b/src/lib/modex/demos/c/modex.h @@ -1,9 +1,9 @@ - + #ifndef __MODEX_H #define __MODEX_H - + /* ===== SCREEN RESOLUTIONS ===== */ - + #define Mode_320x200 0 #define Mode_320x400 1 #define Mode_360x200 2 @@ -12,14 +12,14 @@ #define Mode_320x480 5 #define Mode_360x240 6 #define Mode_360x480 7 - + /* ===== MODE X SETUP ROUTINES ===== */ - + int far pascal set_vga_modex (int Mode, int MaxXpos, int MaxYpos, int Pages); int far pascal set_modex (int Mode); - + /* ===== BASIC GRAPHICS PRIMITIVES ===== */ - + void far pascal clear_vga_screen (int Color); void far pascal set_point (int Xpos, int Ypos, int Color); int far pascal read_point (int Xpos, int Ypos); @@ -27,18 +27,18 @@ void far pascal fill_block (int Xpos1, int Ypos1, int Xpos2, int Ypos2, int Color); void far pascal draw_line (int Xpos1, int Ypos1, int Xpos2, int Ypos2, int Color); - + /* ===== DAC COLOR REGISTER ROUTINES ===== */ - + void far pascal set_dac_register (int RegNo, int Red, int Green, int Blue); void far pascal get_dac_register (int RegNo, int* Red, int* Green, int* Blue); void far pascal load_dac_registers (char far *PalData, int StartReg, int EndReg, int VSync); void far pascal readd_dac_registers (char far *PalData, int StartReg, int EndReg); - + /* ===== PAGE FLIPPING AND SCROLLING ROUTINES ===== */ - + void far pascal set_active_page (int PageNo); int far pascal get_active_page (void); void far pascal set_display_page (int PageNo); @@ -47,9 +47,9 @@ void far pascal set_window (int DisplayPage, int XOffset, int YOffset); int far pascal get_x_offset (void); int far pascal get_y_offset (void); void far pascal sync_display (void); - + /* ===== TEXT DISPLAY ROUTINES ===== */ - + void far pascal gprintc (int CharNum, int Xpos, int Ypos, int ColorF, int ColorB); void far pascal tgprintc (int CharNum, int Xpos, int Ypos, int ColorF); @@ -58,19 +58,19 @@ void far pascal print_str (char far *Text, int MaxLen, int Xpos, int Ypos, void far pascal tprint_str (char far *Text, int MaxLen, int Xpos, int Ypos, int ColorF); void far pascal set_display_font (char far *FontData, int FontNumber); - + /* ===== BITMAP (SPRITE) DISPLAY ROUTINES ===== */ - + void far pascal draw_bitmap (char far *Image, int Xpos, int Ypos, int Width, int Height); void far pascal tdraw_bitmap (char far *Image, int Xpos, int Ypos, int Width, int Height); - + /* ==== VIDEO MEMORY to VIDEO MEMORY COPY ROUTINES ===== */ - + void far pascal copy_page (int SourcePage, int DestPage); void far pascal copy_bitmap (int SourcePage, int X1, int Y1, int X2, int Y2, int DestPage, int DestX1, int DestY1); - - + + #endif diff --git a/src/lib/modex/demos/c/x-demo.exe b/src/lib/modex/demos/c/x-demo.exe new file mode 100755 index 0000000000000000000000000000000000000000..efe6262243e0d6aa2ee9209c3530fec4c4c6fa96 GIT binary patch literal 40674 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 W2L?GX$bmr)402$Q1OGpB;C};^2~to1 literal 0 HcmV?d00001 -- 2.39.2