OSDN Git Service

new file: 16/modex16.tar.7z
authorsparky4 <sparky4@cock.li>
Fri, 28 Nov 2014 20:03:20 +0000 (14:03 -0600)
committersparky4 <sparky4@cock.li>
Fri, 28 Nov 2014 20:03:20 +0000 (14:03 -0600)
deleted:    16/modex16/286@12.LOG
deleted:    16/modex16/286@8.LOG
deleted:    16/modex16/BITMAP.C
deleted:    16/modex16/dos_kb.c
deleted:    16/modex16/dos_kb.h
deleted:    16/modex16/gfx.pal
deleted:    16/modex16/lib/lib_head.cpp
deleted:    16/modex16/lib/lib_head.h
deleted:    16/modex16/makefile
deleted:    16/modex16/modex16.c
deleted:    16/modex16/modex16.h
deleted:    16/modex16/pcxtest.exe
deleted:    16/modex16/ptmp.pcx
deleted:    16/modex16/ptmp.png
deleted:    16/modex16/scroll.c
deleted:    16/modex16/scroll.exe
deleted:    16/modex16/test.exe
deleted:    16/modex16/test.txt
deleted:    16/modex16/test2.exe
deleted:    16/modex16/types.h
deleted:    BITMAP.H
modified:   Project 16.bfproject
renamed:    16/modex16/46113319.pcx -> data/46113319.pcx
renamed:    16/modex16/COMPUTER.PCX -> data/COMPUTER.PCX
renamed:    16/modex16/EDw.PCX -> data/EDw.PCX
renamed:    16/modex16/MAYU.PCX -> data/MAYU.PCX
renamed:    16/modex16/chikyuu.pcx -> data/chikyuu.pcx
renamed:    16/modex16/ed.pcx -> data/ed.pcx
renamed:    16/modex16/ed2.pcx -> data/ed2.pcx
renamed:    16/modex16/koishi.pcx -> data/koishi.pcx
renamed:    16/modex16/koishi^^.pcx -> data/koishi^^.pcx
renamed:    16/modex16/koishi~.pcx -> data/koishi~.pcx
renamed:    ptmp.pcx -> data/ptmp.pcx
renamed:    16/modex16/q.pcx -> data/q.pcx
renamed:    16/modex16/rarity.pcx -> data/rarity.pcx
renamed:    16/modex16/w.pcx -> data/w.pcx
modified:   makefile
new file:   makefile~
deleted:    palettec.c
deleted:    pcxtest.c
modified:   pcxtest.exe
modified:   scroll.exe
renamed:    BITMAP.C -> src/lib/bitmap.c
renamed:    16/modex16/BITMAP.H -> src/lib/bitmap.h
renamed:    dos_kb.c -> src/lib/dos_kb.c
renamed:    dos_kb.h -> src/lib/dos_kb.h
renamed:    lib/lib_head.cpp -> src/lib/lib_head.cpp
renamed:    lib/lib_head.h -> src/lib/lib_head.h
renamed:    modex16.c -> src/lib/modex16.c
renamed:    modex16.h -> src/lib/modex16.h
renamed:    types.h -> src/lib/types.h
renamed:    lib/wtest/WTEST.EXE -> src/lib/wtest/WTEST.EXE
renamed:    lib/wtest/makefile -> src/lib/wtest/makefile
renamed:    lib/wtest/wtest.c -> src/lib/wtest/wtest.c
renamed:    lib/wtest/wtest.h -> src/lib/wtest/wtest.h
renamed:    16/modex16/palettec.c -> src/palettec.c
renamed:    16/modex16/pcxtest.c -> src/pcxtest.c
renamed:    scroll.c -> src/scroll.c
renamed:    16/modex16/test.c -> src/test.c
renamed:    16/modex16/test2.c -> src/test2.c
deleted:    test.c
modified:   test.exe
deleted:    test2.c
modified:   test2.exe

65 files changed:
16/modex16.tar.7z [new file with mode: 0644]
16/modex16/286@12.LOG [deleted file]
16/modex16/286@8.LOG [deleted file]
16/modex16/BITMAP.C [deleted file]
16/modex16/dos_kb.c [deleted file]
16/modex16/dos_kb.h [deleted file]
16/modex16/gfx.pal [deleted file]
16/modex16/lib/lib_head.cpp [deleted file]
16/modex16/lib/lib_head.h [deleted file]
16/modex16/makefile [deleted file]
16/modex16/modex16.c [deleted file]
16/modex16/modex16.h [deleted file]
16/modex16/pcxtest.exe [deleted file]
16/modex16/ptmp.png [deleted file]
16/modex16/scroll.c [deleted file]
16/modex16/scroll.exe [deleted file]
16/modex16/test.exe [deleted file]
16/modex16/test.txt [deleted file]
16/modex16/test2.exe [deleted file]
BITMAP.H [deleted file]
Project 16.bfproject
data/46113319.pcx [moved from 16/modex16/46113319.pcx with 100% similarity]
data/COMPUTER.PCX [moved from 16/modex16/COMPUTER.PCX with 100% similarity]
data/EDw.PCX [moved from 16/modex16/EDw.PCX with 100% similarity]
data/MAYU.PCX [moved from 16/modex16/MAYU.PCX with 100% similarity]
data/chikyuu.pcx [moved from 16/modex16/chikyuu.pcx with 100% similarity]
data/ed.pcx [moved from 16/modex16/ed.pcx with 100% similarity]
data/ed2.pcx [moved from 16/modex16/ed2.pcx with 100% similarity]
data/koishi.pcx [moved from 16/modex16/koishi.pcx with 100% similarity]
data/koishi^^.pcx [moved from 16/modex16/koishi^^.pcx with 100% similarity]
data/koishi~.pcx [moved from 16/modex16/koishi~.pcx with 100% similarity]
data/ptmp.pcx [moved from 16/modex16/ptmp.pcx with 100% similarity]
data/q.pcx [moved from 16/modex16/q.pcx with 100% similarity]
data/rarity.pcx [moved from 16/modex16/rarity.pcx with 100% similarity]
data/w.pcx [moved from 16/modex16/w.pcx with 100% similarity]
makefile
makefile~ [new file with mode: 0644]
palettec.c [deleted file]
pcxtest.c [deleted file]
pcxtest.exe
ptmp.pcx [deleted file]
scroll.exe
src/lib/bitmap.c [moved from BITMAP.C with 94% similarity]
src/lib/bitmap.h [moved from 16/modex16/BITMAP.H with 91% similarity]
src/lib/dos_kb.c [moved from dos_kb.c with 99% similarity]
src/lib/dos_kb.h [moved from dos_kb.h with 93% similarity]
src/lib/lib_head.cpp [moved from lib/lib_head.cpp with 79% similarity]
src/lib/lib_head.h [moved from lib/lib_head.h with 98% similarity]
src/lib/modex16.c [moved from modex16.c with 95% similarity]
src/lib/modex16.h [moved from modex16.h with 95% similarity]
src/lib/types.h [moved from 16/modex16/types.h with 100% similarity]
src/lib/wtest/WTEST.EXE [moved from lib/wtest/WTEST.EXE with 100% similarity]
src/lib/wtest/makefile [moved from lib/wtest/makefile with 100% similarity]
src/lib/wtest/wtest.c [moved from lib/wtest/wtest.c with 100% similarity]
src/lib/wtest/wtest.h [moved from lib/wtest/wtest.h with 100% similarity]
src/palettec.c [moved from 16/modex16/palettec.c with 77% similarity]
src/pcxtest.c [moved from 16/modex16/pcxtest.c with 89% similarity]
src/scroll.c [moved from scroll.c with 99% similarity]
src/test.c [moved from 16/modex16/test.c with 93% similarity]
src/test2.c [moved from 16/modex16/test2.c with 84% similarity]
test.c [deleted file]
test.exe
test2.c [deleted file]
test2.exe
types.h [deleted file]

diff --git a/16/modex16.tar.7z b/16/modex16.tar.7z
new file mode 100644 (file)
index 0000000..9782ad7
Binary files /dev/null and b/16/modex16.tar.7z differ
diff --git a/16/modex16/286@12.LOG b/16/modex16/286@12.LOG
deleted file mode 100644 (file)
index 3402704..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Old non-sprite: 7.032967\r
-New non-sprite: 1.043956\r
-Old Sprite: 6.648352\r
-New Sprite: 1.648352\r
diff --git a/16/modex16/286@8.LOG b/16/modex16/286@8.LOG
deleted file mode 100644 (file)
index a29ceff..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Old non-sprite: 10.439561\r
-New non-sprite: 1.373626\r
-Old Sprite: 9.945055\r
-New Sprite: 2.362637\r
diff --git a/16/modex16/BITMAP.C b/16/modex16/BITMAP.C
deleted file mode 100644 (file)
index 8287e57..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-#include <stdio.h>\r
-#include <stdlib.h>\r
-#include "bitmap.h"\r
-#include "modex16.h"\r
-\r
-static struct pcxHeader {\r
-    byte id;\r
-    byte version;\r
-    byte encoding;\r
-    byte bpp;\r
-    word xmin;\r
-    word ymin;\r
-    word xmax;\r
-    word ymax;\r
-    word hres;\r
-    word vres;\r
-    byte pal16[48];\r
-    byte res1;\r
-    word bpplane;\r
-    word palType;\r
-    word hScreenSize;\r
-    word vScreenSize;\r
-    byte padding[54];\r
-} head;\r
-\r
-\r
-static void loadPcxStage1(FILE *file, bitmap_t *result) {\r
-    long bufSize;\r
-    int index;\r
-    byte count, val;\r
-    long int pos;\r
-\r
-    /* read the header */\r
-    fread(&head, sizeof(char), sizeof(struct pcxHeader), file);\r
-\r
-    /* get the width and height */\r
-    result->width = head.xmax - head.xmin + 1;\r
-    result->height = head.ymax - head.ymin + 1;\r
-\r
-    /* make sure this  is 8bpp */\r
-    if(head.bpp != 8) {\r
-       printf("I only know how to handle 8bpp pcx files!\n");\r
-       fclose(file);\r
-       exit(-2);\r
-    }\r
-}\r
-\r
-\r
-static void loadPcxPalette(FILE *file, bitmap_t *result) {\r
-    byte val;\r
-    int index;\r
-\r
-    /* handle the palette */\r
-    fseek(file, -769, SEEK_END);\r
-    val = fgetc(file);\r
-    result->palette = modexNewPal();\r
-    if(head.version == 5 && val == 12) {\r
-       /* use the vga palette */\r
-       for(index=0; !feof(file) && index < PAL_SIZE; index++) {\r
-           val = fgetc(file);\r
-           result->palette[index] = val >> 2;\r
-       }\r
-    } else {\r
-       /* use the 16 color palette */\r
-       for(index=0; index<48; index++) {\r
-           result->palette[index]  = head.pal16[index];\r
-       }\r
-    }\r
-}\r
-\r
-\r
-bitmap_t\r
-bitmapLoadPcx(char *filename) {\r
-    FILE *file;\r
-    bitmap_t result;\r
-    long bufSize;\r
-    int index;\r
-    byte count, val;\r
-\r
-    /* open the PCX file for reading */\r
-    file = fopen(filename, "rb");\r
-    if(!file) {\r
-       printf("Could not open %s for reading.\n", filename);\r
-       exit(-2);\r
-    }\r
-\r
-    /* load the first part of the pcx file */\r
-    loadPcxStage1(file, &result);\r
-\r
-    /* allocate the buffer */\r
-    bufSize = result.width * result.height;\r
-    result.data = malloc(bufSize);\r
-    if(!result.data) {\r
-       printf("Could not allocate memory for bitmap data.");\r
-       fclose(file);\r
-       exit(-1);\r
-    }\r
-\r
-    /*  read the buffer in */\r
-    index = 0;\r
-    do {\r
-       /* get the run length and the value */\r
-       count = fgetc(file);\r
-       if(0xC0 ==  (count & 0xC0)) { /* this is the run count */\r
-           count &= 0x3f;\r
-           val = fgetc(file);\r
-       } else {\r
-           val = count;\r
-           count = 1;\r
-       }\r
-\r
-       /* write the pixel the specified number of times */\r
-       for(; count && index < bufSize; count--,index++)  {\r
-           result.data[index] = val;\r
-       }\r
-    } while(index < bufSize);\r
-\r
-    loadPcxPalette(file, &result);\r
-\r
-    fclose(file);\r
-\r
-    return result;\r
-}\r
-\r
-\r
-tileset_t\r
-bitmapLoadPcxTiles(char *filename, word twidth, word theight) {\r
-    tileset_t ts;\r
-    FILE *file;\r
-    bitmap_t result;\r
-    int i;\r
-\r
-    /* open the PCX file for reading */\r
-    file = fopen(filename, "rb");\r
-    if(!file) {\r
-       printf("Could not open %s for reading.\n", filename);\r
-       exit(-2);\r
-    }\r
-\r
-    /* load the first part of the pcx file */\r
-    loadPcxStage1(file, &result);\r
-\r
-    /* get the number of tiles and set up the result structure */\r
-    ts.twidth = twidth;\r
-    ts.theight = theight;\r
-    ts.ntiles = (result.width/twidth) * (result.height/theight);\r
-    ts.palette = result.palette;\r
-\r
-    /* allocate the pixel storage for the tiles */\r
-    ts.data = malloc(sizeof(byte*) * ts.ntiles);\r
-    ts.data[0] = malloc(sizeof(byte) * ts.ntiles * twidth * theight);\r
-    for(i=1; i < ts.ntiles; i++) {\r
-       ts.data[i] = ts.data[i-1] + twidth * theight;\r
-    }\r
-    \r
-    /* finish off the file */\r
-    loadPcxPalette(file, &result);\r
-\r
-    fclose(file);\r
-\r
-    return ts;\r
-}\r
diff --git a/16/modex16/dos_kb.c b/16/modex16/dos_kb.c
deleted file mode 100644 (file)
index dd92418..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-/* Thanks to Alex Russell for example code */
-/* Thanks to Gary Neal for example code */
-#include "dos_kb.h"
-
-// keyboard buffer
-static byte key[NUM_SCANCODES]; // pressed
-static byte kea[NUM_SCANCODES]; // released
-
-#ifdef __cplusplus             /* Function must be declared C style */
-extern "C" {
-#endif
-static void interrupt (far *oldkb)(void) = NULL; /* BIOS keyboard handler */
-#ifdef __cplusplus
-}
-#endif
-
-/*
- * Comment out the following #define if you don't want the testing main()
- * to be included.
- */
-//#define TESTING
-#define TESTING2
-
-/*****************NEW KEYBOARD 09h ISR***********************/
-void interrupt newkb(void){
-       byte kee;
-       register char qx;
-
-       kee = inp(0x60);        /* Read the keyboard scan code */
-
-       /* Clear keyboard controller on XT machines */
-       qx = inp(0x61);    /* Get keyboard control register */
-       qx |= 0x82;
-       outp(0x61, qx);    /* Toggle acknowledge bit high */
-       qx &= 0x7F;
-       outp(0x61, qx);    /* Toggle acknowledge bit low */
-
-       /* Interpret the scan code and set our flags */
-       #ifdef TESTING2
-       //printf("%d[%d]\n",kee,key[kee]);
-       printf("\0"); // bug
-       #endif
-       if(kee & 0x80)
-               key[kee & 0x7F] = 0; // a key is released
-       else
-               key[kee] = kea[kee] = 1; // a key is pressed
-
-       /* Acknowledge the interrupt to the programmable interrupt controller */
-       outp(0x20, 0x20);      /* Signal non specific end of interrupt */
-}
-
-/* ---------------------- init_keyboard() ---------------- April 17,1993 */
-/* restore the bios keyboard handler */
-/* ---------------------- deinit_keyboard() -------------- April 17,1993 */
-void setkb(int vq){
-       int i;  /* Index variable */
-       if(!vq){ // deinitiation
-               /* Abort if our function pointer has no valid address */
-               if(oldkb == NULL) return;
-               /* Set address in our function pointer in interrupt vector table */
-               _dos_setvect(9, oldkb);
-               /* Reset our function pointer to contain no valid address */
-               oldkb = NULL;
-               #ifdef TESTING
-               /* Print the key heap */
-               printf("\n");
-               for(i=0; i<NUM_SCANCODES; i++){
-                       if(i==NUM_SCANCODES/2) printf("================================\n");
-                       printf("%03d[%d][%d]",i+1,key[i],kea[i]);
-                       if(key[i]==1)printf("====");
-                       printf(",\n");
-               }
-               #endif
-       }else if(vq == 1){ // initiation
-               byte far *lock_key;
-
-               /* Abort if our function pointer has a valid address. */
-               if(oldkb != NULL) return;
-
-               /* Clear the keyboard buttons state arrays */
-               for(i = 0; i < NUM_SCANCODES; i++)
-                       key[i] = kea[i] = 0;
-
-               /* save old BIOS key board handler */
-               oldkb = _dos_getvect(9);
-
-               // turn off num-lock via BIOS
-               lock_key = MK_FP(0x040, 0x017); // Pointing to the address of the bios shift state keys
-               *lock_key&=(~(16 | 32 | 64)); // toggle off the locks by changing the values of the 4th, 5th, and 6th bits of the address byte of 0040:0017
-               oldkb();        // call BIOS keyhandler to change keyboard lights
-
-               /* setup our own handler */
-               _dos_setvect(9, newkb);
-       }
-}
-
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\
- * keyp                                                              *
- *                                                                      *
- * Returns the status of the key requested.                            *
- * The status is 1 if the key is pressed or has been pressed since the     *
- * last call to this function for that particular key.              *
-\* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-int keyp(byte c){
-       register char retVal;
-
-       /* Key value in range of keyboard keys available */
-       c &= 0x7F;
-
-       /* Get the status of the key requested */
-       retVal = key[c] | kea[c];
-
-       /* Reset the was pressed status for the requested key */
-       kea[c] = 0;
-
-       /* Return the requested key's state */
-       return retVal;
-}
-
-
-/*
- * The library testing routines follows below.
- */
-
-#ifdef TESTING
-
-/*
- * Library test (program) entry point.
- */
-
-void main(void)
-{
-       byte q;
-       setkb(1);
-       while(!keyp(1))
-       {
-               keyp(q);
-       }
-       setkb(0);
-}
-
-#endif
diff --git a/16/modex16/dos_kb.h b/16/modex16/dos_kb.h
deleted file mode 100644 (file)
index 846946b..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef _DOSLIB_KB_H_\r
-#define _DOSLIB_KB_H_\r
-#include "lib\lib_head.h"\r
-\r
-/* Maximum number of scan codes on keyboard controllers */\r
-#define NUM_SCANCODES   128\r
-\r
-#ifdef __cplusplus      /* Functions must be declared C style */\r
-extern "C" {\r
-#endif\r
-void interrupt far newkb(void);\r
-//extern void interrupt (far *oldkb)(void);\r
-void setkb(int vq);\r
-int keyp(byte c);\r
-\r
-/* Define macro */\r
-//#define kepn(c) key[c & 0x7F]\r
-\r
-#ifdef __cplusplus\r
-}\r
-#endif\r
-\r
-#endif/*_DOSLIB_KB_H_*/\r
diff --git a/16/modex16/gfx.pal b/16/modex16/gfx.pal
deleted file mode 100644 (file)
index e98ae60..0000000
Binary files a/16/modex16/gfx.pal and /dev/null differ
diff --git a/16/modex16/lib/lib_head.cpp b/16/modex16/lib/lib_head.cpp
deleted file mode 100644 (file)
index cc40b93..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-//#include "src\lib\lib_head.h"
-#include "lib\lib_head.h"
-\r
-/* local function */\r
-void wait(clock_t wait);\r
-\r
-/* Function: Wait **********************************************************\r
-*\r
-*     Parameters:    wait - time in microseconds\r
-*\r
-*     Description:    pauses for a specified number of microseconds.\r
-*\r
-*/\r
-void wait(clock_t wait){\r
-       clock_t goal;\r
-\r
-       if(!wait) return;\r
-\r
-       goal = wait + clock();\r
-       while((goal > clock()) && !kbhit()) ;\r
-} /* End of wait */
\ No newline at end of file
diff --git a/16/modex16/lib/lib_head.h b/16/modex16/lib/lib_head.h
deleted file mode 100644 (file)
index ba2c8b5..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-#ifndef _LIBHEAD_H_\r
-#define _LIBHEAD_H_\r
-#include <dos.h>\r
-#include <stdio.h>\r
-#include <conio.h> // just for wait\r
-#include <time.h> // just for wait
-#include "types.h"\r
-\r
-/* Control codes for all keys on the keyboard */\r
-//here temperarly\r
-#define KEY_A          (0x1E)\r
-#define KEY_B          (0x30)\r
-#define KEY_C          (0x2E)\r
-#define KEY_D          (0x20)\r
-#define KEY_E          (0x12)\r
-#define KEY_F          (0x21)\r
-#define KEY_G          (0x22)\r
-#define KEY_H          (0x23)\r
-#define KEY_I          (0x17)\r
-#define KEY_J          (0x24)\r
-#define KEY_K          (0x25)\r
-#define KEY_L          (0x26)\r
-#define KEY_M          (0x32)\r
-#define KEY_N          (0x31)\r
-#define KEY_O          (0x18)\r
-#define KEY_P          (0x19)\r
-#define KEY_Q          (0x10)\r
-#define KEY_R          (0x13)\r
-#define KEY_S          (0x1F)\r
-#define KEY_T          (0x14)\r
-#define KEY_U          (0x16)\r
-#define KEY_V          (0x2F)\r
-#define KEY_W          (0x11)\r
-#define KEY_X          (0x2D)\r
-#define KEY_Y          (0x15)\r
-#define KEY_Z          (0x2C)\r
-#define KEY_1          (0x02)\r
-#define KEY_2          (0x03)\r
-#define KEY_3          (0x04)\r
-#define KEY_4          (0x05)\r
-#define KEY_5          (0x06)\r
-#define KEY_6          (0x07)\r
-#define KEY_7          (0x08)\r
-#define KEY_8          (0x09)\r
-#define KEY_9          (0x0A)\r
-#define KEY_0          (0x0B)\r
-#define KEY_DASH               (0x0C)  /* -_ */\r
-#define KEY_EQUAL              (0x0D)  /* =+ */\r
-#define KEY_LBRACKET   (0x1A)  /* [{ */\r
-#define KEY_RBRACKET   (0x1B)  /* ]} */\r
-#define KEY_SEMICOLON  (0x27)  /* ;: */\r
-#define KEY_RQUOTE     (0x28)  /* '" */\r
-#define KEY_LQUOTE     (0x29)  /* `~ */\r
-#define KEY_PERIOD     (0x33)  /* .> */\r
-#define KEY_COMMA              (0x34)  /* ,< */\r
-#define KEY_SLASH              (0x35)  /* /? */\r
-#define KEY_BACKSLASH  (0x2B)  /* \| */\r
-#define KEY_F1         (0x3B)\r
-#define KEY_F2         (0x3C)\r
-#define KEY_F3         (0x3D)\r
-#define KEY_F4         (0x3E)\r
-#define KEY_F5         (0x3F)\r
-#define KEY_F6         (0x40)\r
-#define KEY_F7         (0x41)\r
-#define KEY_F8         (0x42)\r
-#define KEY_F9         (0x43)\r
-#define KEY_F10                (0x44)\r
-#define KEY_ESC                (0x01)\r
-#define KEY_BACKSPACE   (0x0E)\r
-#define KEY_TAB                (0x0F)\r
-#define KEY_ENTER              (0x1C)\r
-#define KEY_CONTROL    (0x1D)\r
-#define KEY_LSHIFT     (0x2A)\r
-#define KEY_RSHIFT     (0x36)\r
-#define KEY_PRTSC              (0x37)\r
-#define KEY_ALT                (0x38)\r
-#define KEY_SPACE              (0x39)\r
-#define KEY_CAPSLOCK   (0x3A)\r
-#define KEY_NUMLOCK    (0x45)\r
-#define KEY_SCROLLLOCK (0x46)\r
-#define KEY_HOME               (0x47)\r
-#define KEY_UP         (0x48)\r
-#define KEY_PGUP               (0x49)\r
-#define KEY_MINUS              (0x4A)\r
-#define KEY_LEFT               (0x4B)\r
-#define KEY_CENTER     (0x4C)\r
-#define KEY_RIGHT              (0x4D)\r
-#define KEY_PLUS               (0x4E)\r
-#define KEY_END                (0x4F)\r
-#define KEY_DOWN               (0x50)\r
-#define KEY_PGDOWN     (0x51)\r
-#define KEY_INS                (0x52)\r
-#define KEY_DEL                (0x53)\r
-\r
-#define KEY_LWIN               (0x73)\r
-#define KEY_RWIN               (0x74)\r
-#define KEY_MENU               (0x75)\r
-\r
-\r
-//typedef unsigned char byte;
-//typedef unsigned int word;
-//typedef unsigned short syte;\r
-\r
-void wait(clock_t wait);\r
-\r
-#endif/*_LIBHEAD_H_*/\r
diff --git a/16/modex16/makefile b/16/modex16/makefile
deleted file mode 100644 (file)
index b11f89a..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-FLAGS=-0 \r
-all: test.exe pcxtest.exe test2.exe scroll.exe\r
-\r
-scroll.exe: scroll.obj modex16.obj dos_kb.obj bitmap.obj\r
-       wcl $(FLAGS) scroll.obj modex16.obj dos_kb.obj bitmap.obj\r
-scroll.obj: scroll.c\r
-       wcl $(FLAGS) -c scroll.c\r
-test.exe: test.obj modex16.obj bitmap.obj\r
-       wcl $(FLAGS) test.obj modex16.obj bitmap.obj\r
-       \r
-test2.exe: test2.obj modex16.obj bitmap.obj\r
-       wcl $(FLAGS) test2.obj modex16.obj bitmap.obj\r
-       \r
-pcxtest.exe: pcxtest.obj modex16.obj bitmap.obj\r
-       wcl $(FLAGS) pcxtest.obj modex16.obj bitmap.obj\r
-\r
-test.obj: test.c modex16.h\r
-       wcl $(FLAGS) -c test.c\r
-       \r
-test2.obj: test2.c modex16.h\r
-       wcl $(FLAGS) -c test2.c\r
-       \r
-pcxtest.obj: pcxtest.c modex16.h\r
-       wcl $(FLAGS) -c pcxtest.c\r
-\r
-modex16.obj: modex16.h modex16.c\r
-       wcl $(FLAGS) -c modex16.c\r
-\r
-dos_kb.obj: dos_kb.h dos_kb.c\r
-       wcl $(FLAGS) -c dos_kb.c\r
-\r
-bitmap.obj: bitmap.h bitmap.c\r
-       wcl $(FLAGS) -c bitmap.c\r
-       \r
-clean: \r
-       del *.obj\r
-       del *.exe\r
diff --git a/16/modex16/modex16.c b/16/modex16/modex16.c
deleted file mode 100644 (file)
index f01116b..0000000
+++ /dev/null
@@ -1,605 +0,0 @@
-#include <dos.h>\r
-#include <string.h>\r
-#include <mem.h>\r
-#include <conio.h>\r
-#include <stdio.h>\r
-#include <stdlib.h>\r
-#include "modex16.h"\r
-\r
-\r
-byte far* VGA=(byte far*) 0xA0000000;  /* this points to video memory. */\r
-\r
-static void fadePalette(sbyte fade, sbyte start, word iter, byte *palette);\r
-static byte tmppal[PAL_SIZE];\r
-\r
-static void\r
-vgaSetMode(byte mode)\r
-{\r
-  union REGS regs;\r
-\r
-  regs.h.ah = SET_MODE;\r
-  regs.h.al = mode;\r
-  int86(VIDEO_INT, &regs, &regs);\r
-}\r
-\r
-\r
-/* -========================= Entry  Points ==========================- */\r
-void\r
-modexEnter() {\r
-    word i;\r
-    dword far*ptr=(dword far*)VGA;      /* used for faster screen clearing */\r
-    word CRTParms[] = {\r
-       0x0d06,         /* vertical total */\r
-       0x3e07,         /* overflow (bit 8 of vertical counts) */\r
-       0x4109,         /* cell height (2 to double-scan */\r
-       0xea10,         /* v sync start */\r
-       0xac11,         /* v sync end and protect cr0-cr7 */\r
-       0xdf12,         /* vertical displayed */\r
-       0x0014,         /* turn off dword mode */\r
-       0xe715,         /* v blank start */\r
-       0x0616,         /* v blank end */\r
-       0xe317          /* turn on byte mode */\r
-    };\r
-    int CRTParmCount = sizeof(CRTParms) / sizeof(CRTParms[0]);\r
-\r
-    /* TODO save current video mode and palette */\r
-    vgaSetMode(VGA_256_COLOR_MODE);\r
-\r
-    /* disable chain4 mode */\r
-    outpw(SC_INDEX, 0x0604);\r
-\r
-    /* synchronous reset while setting Misc Output */\r
-    outpw(SC_INDEX, 0x0100);\r
-\r
-    /* select 25 MHz dot clock & 60 Hz scanning rate */\r
-    outp(MISC_OUTPUT, 0xe3);\r
-\r
-    /* undo reset (restart sequencer) */\r
-    outpw(SC_INDEX, 0x0300);\r
-\r
-    /* reprogram the CRT controller */\r
-    outp(CRTC_INDEX, 0x11); /* VSync End reg contains register write prot */\r
-    outp(CRTC_DATA, 0x7f);  /* get current write protect on varios regs */\r
-\r
-    /* send the CRTParms */\r
-    for(i=0; i<CRTParmCount; i++) {\r
-       outpw(CRTC_INDEX, CRTParms[i]);\r
-    }\r
-\r
-    /* clear video memory */\r
-    outpw(SC_INDEX, 0x0f02);\r
-    for(i=0; i<0x8000; i++) {\r
-       ptr[i] = 0x0000;\r
-    }\r
-}\r
-\r
-\r
-void\r
-modexLeave() {\r
-    /* TODO restore original mode and palette */\r
-    vgaSetMode(TEXT_MODE);\r
-}\r
-\r
-\r
-page_t\r
-modexDefaultPage() {\r
-    page_t page;\r
-\r
-    /* default page values */\r
-    page.data = VGA;\r
-    page.dx = 0;\r
-    page.dy = 0;\r
-    page.width = SCREEN_WIDTH;\r
-    page.height = SCREEN_HEIGHT;\r
-\r
-    return page;\r
-}\r
-\r
-/* returns the next page in contiguous memory\r
- * the next page will be the same size as p, by default\r
- */\r
-page_t\r
-modexNextPage(page_t *p) {\r
-    page_t result;\r
-\r
-    result.data = p->data + (p->width/4)*p->height;  /* compute the offset */\r
-    result.dx = 0;\r
-    result.dy = 0;\r
-    result.width = p->width;\r
-    result.height = p->height;\r
-\r
-    return result;\r
-}\r
-\r
-\r
-void\r
-modexShowPage(page_t *page) {\r
-    word high_address;\r
-    word low_address;\r
-    word offset;\r
-    byte crtcOffset;\r
-\r
-    /* calculate offset */\r
-    offset = (word) page->data;\r
-    offset += page->dy * (page->width >> 2 );\r
-    offset += page->dx >> 2;\r
-\r
-    /* calculate crtcOffset according to virtual width */\r
-    crtcOffset = page->width >> 3;\r
-\r
-    high_address = HIGH_ADDRESS | (offset & 0xff00);\r
-    low_address  = LOW_ADDRESS  | (offset << 8);\r
-\r
-    /* wait for appropriate timing and then program CRTC */\r
-    while ((inp(INPUT_STATUS_1) & DISPLAY_ENABLE));\r
-    outpw(CRTC_INDEX, high_address);\r
-    outpw(CRTC_INDEX, low_address);\r
-    outp(CRTC_INDEX, 0x13);\r
-    outp(CRTC_DATA, crtcOffset);\r
-\r
-    /*  wait for one retrace */\r
-    while (!(inp(INPUT_STATUS_1) & VRETRACE)); \r
-\r
-    /* do PEL panning here */\r
-    outp(AC_INDEX, 0x33);\r
-    outp(AC_INDEX, (page->dx & 0x03) << 1);\r
-}\r
-\r
-\r
-void\r
-modexPanPage(page_t *page, int dx, int dy) {\r
-    page->dx = dx;\r
-    page->dy = dy;\r
-}\r
-\r
-\r
-void\r
-modexSelectPlane(byte plane) {\r
-    outp(SC_INDEX, MAP_MASK);          /* select plane */\r
-    outp(SC_DATA,  plane);\r
-}\r
-\r
-\r
-void\r
-modexClearRegion(page_t *page, int x, int y, int w, int h, byte  color) {\r
-    word pageOff = (word) page->data;\r
-    word xoff=x/4;       /* xoffset that begins each row */\r
-    word scanCount=w/4;  /* number of iterations per row (excluding right clip)*/\r
-    word poffset = pageOff + y*(page->width/4) + xoff; /* starting offset */\r
-    word nextRow = page->width/4-scanCount-1;  /* loc of next row */\r
-    byte lclip[] = {0x0f, 0x0e, 0x0c, 0x08};  /* clips for rectangles not on 4s */\r
-    byte rclip[] = {0x00, 0x01, 0x03, 0x07};\r
-    byte left = lclip[x&0x03];\r
-    byte right = rclip[(x+w)&0x03];\r
-\r
-    /* handle the case which requires an extra group */\r
-    if((x & 0x03) && !((x+w) & 0x03)) {\r
-      right=0x0f;\r
-    }\r
-\r
-    __asm {\r
-               MOV AX, SCREEN_SEG      ; go to the VGA memory\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
-               OUT DX, AL\r
-               INC DX\r
-               MOV AL, color           ; get ready to write colors\r
-       SCAN_START:\r
-               MOV CX, scanCount       ; count the line\r
-               MOV BL, AL              ; remember color\r
-               MOV AL, left            ; do the left clip\r
-               OUT DX, AL              ; set the left clip\r
-               MOV AL, BL              ; restore color\r
-               STOSB                   ; write the color\r
-               DEC CX\r
-               JZ SCAN_DONE            ; handle 1 group stuff\r
-\r
-               ;-- write the main body of the scanline\r
-               MOV BL, AL              ; remember color\r
-               MOV AL, 0x0f            ; write to all pixels\r
-               OUT DX, AL\r
-               MOV AL, BL              ; restore color\r
-               REP STOSB               ; write the color\r
-       SCAN_DONE:\r
-               MOV BL, AL              ; remeber color\r
-               MOV AL, right\r
-               OUT DX, AL              ; do the right clip\r
-               MOV AL, BL              ; restore color\r
-               STOSB                   ; write pixel\r
-               ADD DI, nextRow         ; go to the next row\r
-               DEC h\r
-               JNZ SCAN_START\r
-    }\r
-}\r
-\r
-\r
-void\r
-modexDrawBmp(page_t *page, int x, int y, bitmap_t *bmp) {\r
-    /* draw the region (the entire freakin bitmap) */\r
-    modexDrawBmpRegion(page, x, y, 0, 0, bmp->width, bmp->height, bmp);\r
-}\r
-\r
-\r
-void\r
-modexDrawBmpRegion(page_t *page, int x, int y,\r
-                   int rx, int ry, int rw, int rh, bitmap_t *bmp) {\r
-    word poffset = (word) page->data  + y*(page->width/4) + x/4;\r
-    byte *data = bmp->data;\r
-    word bmpOffset = (word) data + ry * bmp->width + rx;\r
-    word width = rw;\r
-    word height = rh;\r
-    byte plane = 1 << ((byte) x & 0x03);\r
-    word scanCount = width/4 + (width%4 ? 1 :0);\r
-    word nextPageRow = page->width/4 - scanCount;\r
-    word nextBmpRow = (word) bmp->width - width;\r
-    word rowCounter;\r
-    byte planeCounter = 4;\r
-\r
-    __asm {\r
-               MOV AX, SCREEN_SEG      ; go to the VGA memory\r
-               MOV ES, AX\r
-\r
-               MOV DX, SC_INDEX        ; point at the map mask register\r
-               MOV AL, MAP_MASK        ;\r
-               OUT DX, AL              ;\r
-\r
-       PLANE_LOOP:\r
-               MOV DX, SC_DATA         ; select the current plane\r
-               MOV AL, plane           ;\r
-               OUT DX, AL              ;\r
-\r
-               ;-- begin plane painting\r
-               MOV AX, height          ; start the row counter\r
-               MOV rowCounter, AX      ; \r
-               MOV DI, poffset         ; go to the first pixel\r
-               MOV SI, bmpOffset       ; go to the bmp pixel\r
-       ROW_LOOP:\r
-               MOV CX, width           ; count the columns\r
-       SCAN_LOOP:\r
-               MOVSB                   ; copy the pixel\r
-               SUB CX, 3               ; we skip the next 3\r
-               ADD SI, 3               ; skip the bmp pixels\r
-               LOOP SCAN_LOOP          ; finish the scan\r
-\r
-               MOV AX, nextPageRow\r
-               ADD DI, AX              ; go to the next row on screen\r
-               MOV AX, nextBmpRow\r
-               ADD SI, AX              ; go to the next row on bmp\r
-\r
-               DEC rowCounter\r
-               JNZ ROW_LOOP            ; do all the rows\r
-               ;-- end plane painting\r
-\r
-               MOV AL, plane           ; advance to the next plane\r
-               SHL AL, 1               ;\r
-               AND AL, 0x0f            ; mask the plane properly\r
-               MOV plane, AL           ; store the plane\r
-\r
-               INC bmpOffset           ; start bmp at the right spot\r
-\r
-               DEC planeCounter\r
-               JNZ PLANE_LOOP          ; do all 4 planes\r
-    }\r
-}\r
-\r
-\r
-void\r
-modexDrawSprite(page_t *page, int x, int y, bitmap_t *bmp) {\r
-    /* draw the whole sprite */\r
-    modexDrawSpriteRegion(page, x, y, 0, 0, bmp->width, bmp->height, bmp);\r
-}\r
-\r
-void\r
-modexDrawSpriteRegion(page_t *page, int x, int y,\r
-                     int rx, int ry, int rw, int rh, bitmap_t *bmp) {\r
-    word poffset = (word)page->data + y*(page->width/4) + x/4;\r
-    byte *data = bmp->data;\r
-    word bmpOffset = (word) data + ry * bmp->width + rx;\r
-    word width = rw;\r
-    word height = rh;\r
-    byte plane = 1 << ((byte) x & 0x03);\r
-    word scanCount = width/4 + (width%4 ? 1 :0);\r
-    word nextPageRow = page->width/4 - scanCount;\r
-    word nextBmpRow = (word) bmp->width - width;\r
-    word rowCounter;\r
-    byte planeCounter = 4;\r
-\r
-    __asm {\r
-               MOV AX, SCREEN_SEG      ; go to the VGA memory\r
-               MOV ES, AX\r
-\r
-               MOV DX, SC_INDEX        ; point at the map mask register\r
-               MOV AL, MAP_MASK        ;\r
-               OUT DX, AL              ;\r
-\r
-       PLANE_LOOP:\r
-               MOV DX, SC_DATA         ; select the current plane\r
-               MOV AL, plane           ;\r
-               OUT DX, AL              ;\r
-\r
-               ;-- begin plane painting\r
-               MOV AX, height          ; start the row counter\r
-               MOV rowCounter, AX      ; \r
-               MOV DI, poffset         ; go to the first pixel\r
-               MOV SI, bmpOffset       ; go to the bmp pixel\r
-       ROW_LOOP:\r
-               MOV CX, width           ; count the columns\r
-       SCAN_LOOP:\r
-               LODSB\r
-               DEC SI\r
-               CMP AL, 0\r
-               JNE DRAW_PIXEL          ; draw non-zero pixels\r
-\r
-               INC DI                  ; skip the transparent pixel\r
-               ADD SI, 1\r
-               JMP NEXT_PIXEL\r
-       DRAW_PIXEL:\r
-               MOVSB                   ; copy the pixel\r
-       NEXT_PIXEL:\r
-               SUB CX, 3               ; we skip the next 3\r
-               ADD SI, 3               ; skip the bmp pixels\r
-               LOOP SCAN_LOOP          ; finish the scan\r
-\r
-               MOV AX, nextPageRow\r
-               ADD DI, AX              ; go to the next row on screen\r
-               MOV AX, nextBmpRow\r
-               ADD SI, AX              ; go to the next row on bmp\r
-\r
-               DEC rowCounter\r
-               JNZ ROW_LOOP            ; do all the rows\r
-               ;-- end plane painting\r
-\r
-               MOV AL, plane           ; advance to the next plane\r
-               SHL AL, 1               ;\r
-               AND AL, 0x0f            ; mask the plane properly\r
-               MOV plane, AL           ; store the plane\r
-\r
-               INC bmpOffset           ; start bmp at the right spot\r
-\r
-               DEC planeCounter\r
-               JNZ PLANE_LOOP          ; do all 4 planes\r
-    }\r
-}\r
-\r
-\r
-/* copy a region of video memory from one page to another.\r
- * It assumes that the left edge of the tile is the same on both\r
- * regions and the memory areas do not overlap.\r
- */\r
-void\r
-modexCopyPageRegion(page_t *dest, page_t *src,\r
-                   word sx, word sy,\r
-                   word dx, word dy,\r
-                   word width, word height)\r
-{\r
-    word doffset = (word)dest->data + dy*(dest->width/4) + dx/4;\r
-    word soffset = (word)src->data + sy*(src->width/4) + sx/4;\r
-    word scans   = width/4;\r
-    word nextSrcRow = src->width/4 - scans - 1;\r
-    word nextDestRow = dest->width/4 - scans - 1;\r
-    byte lclip[] = {0x0f, 0x0e, 0x0c, 0x08};  /* clips for rectangles not on 4s */\r
-    byte rclip[] = {0x0f, 0x01, 0x03, 0x07};\r
-    byte left = lclip[sx&0x03];\r
-    byte right = rclip[(sx+width)&0x03];\r
-\r
-    __asm {\r
-               MOV AX, SCREEN_SEG      ; work in the vga space\r
-               MOV ES, AX              ;\r
-               MOV DI, doffset         ;\r
-               MOV SI, soffset         ;\r
-\r
-               MOV DX, GC_INDEX        ; turn off cpu bits\r
-               MOV AX, 0008h           ;\r
-               OUT DX, AX\r
-\r
-               MOV AX, SC_INDEX        ; point to the mask register\r
-               MOV DX, AX              ;\r
-               MOV AL, MAP_MASK        ;\r
-               OUT DX, AL              ;\r
-               INC DX                  ;\r
-\r
-       ROW_START:\r
-               PUSH DS\r
-               MOV AX, ES\r
-               MOV DS, AX\r
-               MOV CX, scans           ; the number of latches\r
-\r
-               MOV AL, left            ; do the left column\r
-               OUT DX, AL              ;\r
-               MOVSB                   ;\r
-               DEC CX                  ;\r
-\r
-               MOV AL, 0fh             ; do the inner columns\r
-               OUT DX, AL\r
-               REP MOVSB               ; copy the pixels\r
-\r
-               MOV AL, right           ; do the right column\r
-               OUT DX, AL\r
-               MOVSB\r
-               POP DS\r
-\r
-               MOV AX, SI              ; go the start of the next row\r
-               ADD AX, nextSrcRow      ;\r
-               MOV SI, AX              ;\r
-               MOV AX, DI              ;\r
-               ADD AX, nextDestRow     ;\r
-               MOV DI, AX              ;\r
-\r
-               DEC height              ; do the rest of the actions\r
-               JNZ ROW_START           ;\r
-\r
-               MOV DX, GC_INDEX+1      ; go back to CPU data\r
-               MOV AL, 0ffh            ; none from latches\r
-               OUT DX, AL              ;\r
-    }\r
-}\r
-\r
-\r
-/* fade and flash */\r
-void\r
-modexFadeOn(word fade, byte *palette) {\r
-    fadePalette(-fade, 64, 64/fade+1, palette);\r
-}\r
-\r
-\r
-void\r
-modexFadeOff(word fade, byte *palette) {\r
-    fadePalette(fade, 0, 64/fade+1, palette);\r
-}\r
-\r
-\r
-void\r
-modexFlashOn(word fade, byte *palette) {\r
-    fadePalette(fade, -64, 64/fade+1, palette);\r
-}\r
-\r
-\r
-void\r
-modexFlashOff(word fade, byte *palette) {\r
-    fadePalette(-fade, 0, 64/fade+1, palette);\r
-}\r
-\r
-\r
-static void\r
-fadePalette(sbyte fade, sbyte start, word iter, byte *palette) {\r
-    word i;\r
-    byte dim = start;\r
-\r
-    /* handle the case where we just update */\r
-    if(iter == 0) {\r
-       modexPalUpdate(palette);\r
-       return;\r
-    }\r
-\r
-    while(iter > 0) {  /* FadeLoop */\r
-       for(i=0; i<PAL_SIZE; i++) { /* loadpal_loop */\r
-           tmppal[i] = palette[i] - dim;\r
-           if(tmppal[i] > 127) {\r
-               tmppal[i] = 0;\r
-           } else if(tmppal[i] > 63) {\r
-               tmppal[i] = 63;\r
-           }\r
-       }\r
-        modexPalUpdate(tmppal);\r
-       iter--;\r
-       dim += fade;\r
-    }\r
-}\r
-\r
-\r
-/* save and load */\r
-void\r
-modexPalSave(byte *palette) {\r
-    int  i;\r
-\r
-    outp(PAL_READ_REG, 0);     /* start at palette entry 0 */\r
-    for(i=0; i<PAL_SIZE; i++) {\r
-       palette[i] = inp(PAL_DATA_REG); /* read the palette data */\r
-    }\r
-}\r
-\r
-\r
-byte *\r
-modexNewPal() {\r
-    byte *ptr;\r
-    ptr = malloc(PAL_SIZE);\r
-\r
-    /* handle errors */\r
-    if(!ptr) {\r
-       printf("Could not allocate palette.\n");\r
-       exit(-1);\r
-    }\r
-\r
-    return ptr;\r
-}\r
-\r
-\r
-void\r
-modexLoadPalFile(byte *filename, byte **palette) {\r
-    FILE *file;\r
-    byte *ptr;\r
-\r
-    /* free the palette if it exists */\r
-    if(*palette) {\r
-       free(*palette);\r
-    }\r
-\r
-    /* allocate the new palette */\r
-    *palette = modexNewPal();\r
-\r
-    /* open the file */\r
-    file = fopen(filename, "rb");\r
-    if(!file) {\r
-       printf("Could not open palette file: %s\n", filename);\r
-       exit(-2);\r
-    }\r
-\r
-    /* read the file */\r
-    ptr = *palette;\r
-    while(!feof(file)) {\r
-       *ptr++ = fgetc(file);\r
-    }\r
-\r
-    fclose(file);\r
-}\r
-\r
-\r
-void\r
-modexSavePalFile(char *filename, byte *pal) {\r
-    unsigned int i;\r
-    FILE *file;\r
-\r
-    /* open the file for writing */\r
-    file = fopen(filename, "wb");\r
-    if(!file) {\r
-       printf("Could not open %s for writing\n", filename);\r
-       exit(-2);\r
-    }\r
-\r
-    /* write the data to the file */\r
-    fwrite(pal, 1, PAL_SIZE, file);\r
-    fclose(file);\r
-}\r
-\r
-\r
-/* blanking */\r
-void\r
-modexPalBlack() {\r
-    fadePalette(-1, 64, 1, tmppal);\r
-}\r
-\r
-\r
-void\r
-modexPalWhite() {\r
-    fadePalette(-1, -64, 1, tmppal);\r
-}\r
-\r
-\r
-/* utility */\r
-void\r
-modexPalUpdate(byte *p) {\r
-    int i;\r
-    modexWaitBorder();\r
-    outp(PAL_WRITE_REG, 0);  /* start at the beginning of palette */\r
-    for(i=0; i<PAL_SIZE/2; i++) {\r
-       outp(PAL_DATA_REG, p[i]);\r
-    }\r
-    modexWaitBorder();     /* waits one retrace -- less flicker */\r
-    for(i=PAL_SIZE/2; i<PAL_SIZE; i++) {\r
-       outp(PAL_DATA_REG, p[i]);\r
-    }\r
-}\r
-\r
-\r
-void\r
-modexWaitBorder() {\r
-    while(inp(INPUT_STATUS_1)  & 8)  {\r
-       /* spin */\r
-    }\r
-\r
-    while(!(inp(INPUT_STATUS_1)  & 8))  {\r
-       /* spin */\r
-    }\r
-}\r
diff --git a/16/modex16/modex16.h b/16/modex16/modex16.h
deleted file mode 100644 (file)
index 7757310..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/*\r
- * Functions for handling modex and doing other basic graphics stuff.\r
- */\r
-#ifndef MODEX16_H\r
-#define MODEX16_H\r
-#include <conio.h>\r
-#include "types.h"\r
-#include "bitmap.h"\r
-\r
-/* -========================== Types & Macros ==========================- */\r
-#define PAGE_OFFSET(x,y) (((y)<<6)+((y)<<4)+((x)>>2))\r
-#define PLANE(x) (1<< (x&3))\r
-#define SELECT_ALL_PLANES() outpw(0x03c4, 0xff02)\r
-\r
-typedef struct {\r
-    byte far* data;    /* the data for the page */\r
-    word dx;           /* col we are viewing on the virtual screen */\r
-    word dy;           /* row we are viewing on the virtual screen */\r
-    word width;                /* virtual width of the page */\r
-    word height;       /* virtual height of the page */\r
-} page_t;\r
-\r
-/* -============================ Functions =============================- */\r
-/* mode switching, page, and plane functions */\r
-void modexEnter();\r
-void modexLeave();\r
-page_t modexDefaultPage();\r
-page_t modexNextPage(page_t *p);\r
-void modexShowPage(page_t *page);\r
-void modexPanPage(page_t *page, int dx, int dy);\r
-void modexSelectPlane(byte plane);\r
-void modexClearRegion(page_t *page, int x, int y, int w, int h, byte color);\r
-void modexDrawBmp(page_t *page, int x, int y, bitmap_t *bmp);\r
-void modexDrawBmpRegion(page_t *page, int x, int y, int rx, int ry, int rw, int rh, bitmap_t *bmp);\r
-void modexDrawSprite(page_t *page, int x, int y, bitmap_t *bmp);\r
-void modexDrawSpriteRegion(page_t *page, int x, int y, int rx, int ry, int rw, int rh, bitmap_t *bmp);\r
-\r
-/* Palette fade and flash effects */\r
-void modexFadeOn(word fade, byte *palette);\r
-void modexFadeOff(word fade, byte *palette);\r
-void modexFlashOn(word fade, byte *palette);\r
-void modexFlashOff(word fade, byte *palette);\r
-\r
-/* palette loading and saving */\r
-void modexPalSave(byte *palette);\r
-byte *modexNewPal();\r
-void modexLoadPalFile(char *filename, byte **palette);\r
-void modexSavePalFile(char *filename, byte *palette);\r
-\r
-/* fixed palette functions */\r
-void modexPalBlack();\r
-void modexPalWhite();\r
-\r
-/* utility functions */\r
-void modexPalUpdate(byte *p);\r
-void modexWaitBorder();\r
-\r
-/* -======================= Constants & Vars ==========================- */\r
-extern byte far*  VGA;  /* The VGA Memory */\r
-#define SCREEN_SEG             0xa000\r
-#define VIDEO_INT              0x10\r
-#define SET_MODE               0x00\r
-#define VGA_256_COLOR_MODE     0x13\r
-#define TEXT_MODE              0x03\r
-#define SCREEN_WIDTH           320\r
-#define SCREEN_HEIGHT          240\r
-#define PAGE_SIZE              (word)(SCREEN_WIDTH/4 * SCREEN_HEIGHT)\r
-\r
-#define AC_INDEX               0x03c0\r
-#define SC_INDEX               0x03c4\r
-#define SC_DATA                        0x03c5\r
-#define CRTC_INDEX             0x03d4\r
-#define CRTC_DATA              0x03d5\r
-#define GC_INDEX               0x03ce\r
-#define MISC_OUTPUT            0x03c2\r
-#define HIGH_ADDRESS           0x0C\r
-#define LOW_ADDRESS            0x0D\r
-#define VRETRACE               0x08\r
-#define INPUT_STATUS_1         0x03da\r
-#define DISPLAY_ENABLE         0x01\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
-#define PAL_SIZE                (256 * 3)\r
-#endif\r
diff --git a/16/modex16/pcxtest.exe b/16/modex16/pcxtest.exe
deleted file mode 100644 (file)
index de765ec..0000000
Binary files a/16/modex16/pcxtest.exe and /dev/null differ
diff --git a/16/modex16/ptmp.png b/16/modex16/ptmp.png
deleted file mode 100644 (file)
index e3e46aa..0000000
Binary files a/16/modex16/ptmp.png and /dev/null differ
diff --git a/16/modex16/scroll.c b/16/modex16/scroll.c
deleted file mode 100644 (file)
index 65ea027..0000000
+++ /dev/null
@@ -1,508 +0,0 @@
-#include "modex16.h"\r
-#include <stdio.h>\r
-#include <stdlib.h>\r
-#include "dos_kb.h"\r
-\r
-//word far *clock= (word far*) 0x046C; /* 18.2hz clock */\r
-\r
-typedef struct {\r
-       bitmap_t *data;\r
-       word tileHeight;\r
-       word tileWidth;\r
-       unsigned int rows;\r
-       unsigned int cols;\r
-       //unsigned int tilex,tiley; // tile position on the map\r
-} tiles_t;\r
-\r
-\r
-typedef struct {\r
-       byte    *data;\r
-       tiles_t *tiles;\r
-       int width;\r
-       int height;\r
-} map_t;\r
-\r
-\r
-typedef struct {\r
-       map_t *map;\r
-       page_t *page;\r
-       int tx; //appears to be the top left tile position on the viewable screen map\r
-       int ty; //appears to be the top left tile position on the viewable screen map
-       word dxThresh; //????\r
-       word dyThresh; //????\r
-} map_view_t;\r
-\r
-struct {
-       int x; //player exact position on the viewable map\r
-       int y; //player exact position on the viewable map\r
-       int tx; //player tile position on the viewable map\r
-       int ty; //player tile position on the viewable map
-       int hp; //hitpoints of the player\r
-} player;\r
-\r
-\r
-map_t allocMap(int w, int h);\r
-void initMap(map_t *map);\r
-void mapScrollRight(map_view_t *mv, byte offset);\r
-void mapScrollLeft(map_view_t *mv, byte offest);\r
-void mapScrollUp(map_view_t *mv, byte offset);\r
-void mapScrollDown(map_view_t *mv, byte offset);\r
-void mapGoTo(map_view_t *mv, int tx, int ty);\r
-void mapDrawTile(tiles_t *t, word i, page_t *page, word x, word y);\r
-void mapDrawRow(map_view_t *mv, int tx, int ty, word y);\r
-void mapDrawCol(map_view_t *mv, int tx, int ty, word x);
-void animatePlayer(map_view_t *mv, short d1, short d2, int x, int y, int ls, bitmap_t *bmp);\r
-\r
-#define TILEWH 16\r
-#define QUADWH (TILEWH/4)
-#define SPEED 2
-
-//place holder definitions
-#define MAPX 40
-#define MAPY 30\r
-#define SWAP(a, b) tmp=a; a=b; b=tmp;\r
-void main() {\r
-       bitmap_t ptmp; // player sprite\r
-       int q=0;\r
-       page_t screen, screen2;\r
-       map_t map;\r
-       map_view_t mv, mv2;\r
-       map_view_t *draw, *spri, *tmp;\r
-       byte *ptr;\r
-\r
-       setkb(1);\r
-       /* create the map */\r
-       map = allocMap(MAPX,MAPY); //20x15 is the resolution of the screen you can make maps smaller than 20x15 but the null space needs to be drawn properly\r
-       initMap(&map);\r
-       mv.map = &map;
-       mv2.map = &map;\r
-\r
-       /* draw the tiles */\r
-       ptr = map.data;
-       ptmp = bitmapLoadPcx("ptmp.pcx"); // load sprite\r
-       modexEnter();
-       modexPalUpdate(ptmp.palette);\r
-       screen = modexDefaultPage();\r
-       screen.width += (TILEWH*2);\r
-       mv.page = &screen;\r
-       screen2=modexNextPage(mv.page);\r
-       mv2.page = &screen2;\r
-       modexShowPage(mv.page);\r
-\r
-       /* set up paging */\r
-       draw = &mv;\r
-       spri = &mv2;\r
-//     draw = &mv;
-
-//TODO: LOAD map data and position the map in the middle of the screen if smaller then screen
-       mapGoTo(draw, 0, 0);
-       mapGoTo(spri, 0, 0);\r
-
-       //TODO: put player in starting position of spot\r
-       //default player position on the viewable map
-       player.tx = draw->tx + 10;
-       player.ty = draw->ty + 8;
-       player.x = player.tx*TILEWH;
-       player.y = player.ty*TILEWH;
-       modexDrawSpriteRegion(draw->page, player.x-4, player.y-TILEWH, 24, 64, 24, 32, &ptmp);
-       
-       modexShowPage(draw->page);\r
-       while(!keyp(1))
-       {\r
-       //top left corner & bottem right corner of map veiw be set as map edge trigger since maps are actually square\r
-       //to stop scrolling and have the player position data move to the edge of the screen with respect to the direction\r
-       //when player.tx or player.ty == 0 or player.tx == 20 or player.ty == 15 then stop because that is edge of map and you do not want to walk of the map
-       
-       //TODO: render the player properly with animation and sprite sheet
-       if(keyp(77))
-       {
-               modexDrawSpriteRegion(draw->page, player.x-4, player.y-TILEWH, 24, 32, 24, 32, &ptmp);
-               if(draw->tx >= 0 && draw->tx+20 < MAPX && player.tx == draw->tx + 10)
-               {
-                       for(q=0; q<(TILEWH/SPEED); q++)
-                       {\r
-//                             modexDrawBmp(draw->page, &bmp);
-                               animatePlayer(draw, 1, 1, player.x, player.y, q, &ptmp);
-                               mapScrollRight(draw, SPEED);
-                               modexShowPage(draw->page);\r
-//                             mapScrollRight(show, SPEED);\r
-//                             SWAP(draw, show);\r
-                       }
-                       player.tx++;
-               }
-               else if(player.tx < MAPX)
-               {
-                       for(q=0; q<(TILEWH/SPEED); q++)
-                       {
-                               player.x+=SPEED;
-//                             modexDrawBmp(draw->page, player.x, player.y, &bmp);
-                               animatePlayer(draw, 1, 0, player.x, player.y, q, &ptmp);
-                               modexShowPage(draw->page);
-//                             SWAP(draw, show);
-                       }
-                       player.tx++;
-               }\r
-       }\r
-\r
-       if(keyp(75))
-       {
-               modexDrawSpriteRegion(draw->page, player.x-4, player.y-TILEWH, 24, 96, 24, 32, &ptmp);
-               if(draw->tx > 0 && draw->tx+20 <= MAPX && player.tx == draw->tx + 10)
-               {
-                       for(q=0; q<(TILEWH/SPEED); q++)
-                       {
-//                             modexDrawBmp(draw->page, player.x-((q+1)*SPEED), player.y, &bmp);
-                               animatePlayer(draw, 3, 1, player.x, player.y, q, &ptmp);
-                               mapScrollLeft(draw, SPEED);
-                               modexShowPage(draw->page);\r
-//                             mapScrollLeft(show, SPEED);\r
-//                             SWAP(draw, show);\r
-                       }
-                       player.tx--;\r
-               }
-               else if(player.tx > 1)
-               {
-                       for(q=0; q<(TILEWH/SPEED); q++)
-                       {
-                               player.x-=SPEED;
-//                             modexDrawBmp(draw->page, player.x, player.y, &bmp);
-                               animatePlayer(draw, 3, 0, player.x, player.y, q, &ptmp);
-                               modexShowPage(draw->page);
-//                             SWAP(draw, show);
-                       }
-                       player.tx--;
-               }
-       }\r
-\r
-       if(keyp(80))
-       {
-               modexDrawSpriteRegion(draw->page, player.x-4, player.y-TILEWH, 24, 64, 24, 32, &ptmp);
-               if(draw->ty >= 0 && draw->ty+15 < MAPY && player.ty == draw->ty + 8)
-               {\r
-                       for(q=0; q<(TILEWH/SPEED); q++)
-                       {
-//                             modexDrawBmp(draw->page, player.x, player.y+((q+1)*SPEED), &bmp);
-                               animatePlayer(draw, 2, 1, player.x, player.y, q, &ptmp);
-                               mapScrollDown(draw, SPEED);
-                               modexShowPage(draw->page);\r
-//                             mapScrollDown(show, SPEED);\r
-//                             SWAP(draw, show);\r
-                       }
-                       player.ty++;
-               }
-               else if(player.ty < MAPY)
-               {
-                       for(q=0; q<(TILEWH/SPEED); q++)
-                       {
-                               player.y+=SPEED;
-//                             modexDrawBmp(draw->page, player.x, player.y, &bmp);
-                               animatePlayer(draw, 2, 0, player.x, player.y, q, &ptmp);
-                               modexShowPage(draw->page);
-//                             SWAP(draw, show);
-                       }
-                       player.ty++;
-               }\r
-       }\r
-\r
-       if(keyp(72))
-       {
-               modexDrawSpriteRegion(draw->page, player.x-4, player.y-TILEWH, 24, 0, 24, 32, &ptmp);
-               if(draw->ty > 0 && draw->ty+15 <= MAPY && player.ty == draw->ty + 8)
-               {\r
-                       for(q=0; q<(TILEWH/SPEED); q++)
-                       {\r
-//                             modexDrawBmp(draw->page, player.x, player.y-((q+1)*SPEED), &bmp);
-                               animatePlayer(draw, 0, 1, player.x, player.y, q, &ptmp);
-                               mapScrollUp(draw, SPEED);
-                               modexShowPage(draw->page);
-//                             mapScrollUp(show, SPEED);\r
-//                             SWAP(draw, show);\r
-                       }
-                       player.ty--;
-               }
-               else if(player.ty > 1)
-               {
-                       for(q=0; q<(TILEWH/SPEED); q++)
-                       {
-                               player.y-=SPEED;
-//                             modexDrawBmp(draw->page, player.x, player.y, &bmp);
-                               animatePlayer(draw, 0, 0, player.x, player.y, q, &ptmp);
-                               modexShowPage(draw->page);
-//                             SWAP(draw, show);
-                       }
-                       player.ty--;
-               }\r
-       }\r
-       }\r
-
-       modexLeave();\r
-       setkb(0);
-       printf("Project 16 scroll.exe\n");
-       printf("tx: %d\n", draw->tx);
-       printf("ty: %d\n", draw->ty);
-       printf("player.x: %d\n", player.x);
-       printf("player.y: %d\n", player.y);
-       printf("player.tx: %d\n", player.tx);
-       printf("player.ty: %d\n", player.ty);
-}\r
-\r
-\r
-map_t\r
-allocMap(int w, int h) {\r
-       map_t result;\r
-\r
-       result.width =w;\r
-       result.height=h;\r
-       result.data = malloc(sizeof(byte) * w * h);\r
-\r
-       return result;\r
-}\r
-\r
-\r
-void\r
-initMap(map_t *map) {\r
-       /* just a place holder to fill out an alternating pattern */\r
-       int x, y;\r
-       int i;\r
-       int tile = 1;\r
-       map->tiles = malloc(sizeof(tiles_t));\r
-\r
-       /* create the tile set */\r
-       map->tiles->data = malloc(sizeof(bitmap_t));\r
-       map->tiles->data->width = (TILEWH*2);\r
-       map->tiles->data->height= TILEWH;\r
-       map->tiles->data->data = malloc((TILEWH*2)*TILEWH);\r
-       map->tiles->tileHeight = TILEWH;\r
-       map->tiles->tileWidth =TILEWH;\r
-       map->tiles->rows = 1;\r
-       map->tiles->cols = 2;\r
-\r
-       i=0;\r
-       for(y=0; y<TILEWH; y++) {\r
-       for(x=0; x<(TILEWH*2); x++) {\r
-               if(x<TILEWH)\r
-                 map->tiles->data->data[i] = 0x24;\r
-               else\r
-                 map->tiles->data->data[i] = 0x34;\r
-               i++;\r
-       }\r
-       }\r
-\r
-       i=0;\r
-       for(y=0; y<map->height; y++) {\r
-               for(x=0; x<map->width; x++) {\r
-                       map->data[i] = tile;\r
-                       tile = tile ? 0 : 1;\r
-                       i++;\r
-               }\r
-               tile = tile ? 0 : 1;\r
-       }\r
-}\r
-\r
-\r
-void\r
-mapScrollRight(map_view_t *mv, byte offset) {\r
-       word x, y;  /* coordinate for drawing */\r
-\r
-       /* increment the pixel position and update the page */\r
-       mv->page->dx += offset;\r
-\r
-       /* check to see if this changes the tile */\r
-       if(mv->page->dx >= mv->dxThresh ) {\r
-       /* go forward one tile */\r
-       mv->tx++;\r
-       /* Snap the origin forward */\r
-       mv->page->data += 4;\r
-       mv->page->dx = mv->map->tiles->tileWidth;\r
-\r
-\r
-       /* draw the next column */\r
-       x= SCREEN_WIDTH + mv->map->tiles->tileWidth;\r
-               mapDrawCol(mv, mv->tx + 20 , mv->ty-1, x);\r
-       }\r
-}\r
-\r
-\r
-void\r
-mapScrollLeft(map_view_t *mv, byte offset) {\r
-       word x, y;  /* coordinate for drawing */\r
-\r
-       /* increment the pixel position and update the page */\r
-       mv->page->dx -= offset;\r
-\r
-       /* check to see if this changes the tile */\r
-       if(mv->page->dx == 0) {\r
-       /* go backward one tile */\r
-       mv->tx--;\r
-               \r
-       /* Snap the origin backward */\r
-       mv->page->data -= 4;\r
-       mv->page->dx = mv->map->tiles->tileWidth;\r
-\r
-       /* draw the next column */\r
-               mapDrawCol(mv, mv->tx-1, mv->ty-1, 0);\r
-       }\r
-}\r
-\r
-\r
-void\r
-mapScrollUp(map_view_t *mv, byte offset) {\r
-       word x, y;  /* coordinate for drawing */\r
-\r
-       /* increment the pixel position and update the page */\r
-       mv->page->dy -= offset;\r
-\r
-       /* check to see if this changes the tile */\r
-       if(mv->page->dy == 0 ) {\r
-       /* go down one tile */\r
-       mv->ty--;\r
-       /* Snap the origin downward */\r
-       mv->page->data -= mv->page->width*4;\r
-       mv->page->dy = mv->map->tiles->tileHeight;\r
-\r
-\r
-       /* draw the next row */\r
-       y= 0;\r
-               mapDrawRow(mv, mv->tx-1 , mv->ty-1, y);\r
-       }\r
-}\r
-\r
-\r
-void\r
-mapScrollDown(map_view_t *mv, byte offset) {\r
-       word x, y;  /* coordinate for drawing */\r
-\r
-       /* increment the pixel position and update the page */\r
-       mv->page->dy += offset;\r
-\r
-       /* check to see if this changes the tile */\r
-       if(mv->page->dy >= mv->dyThresh ) {\r
-       /* go down one tile */\r
-       mv->ty++;\r
-       /* Snap the origin downward */\r
-       mv->page->data += mv->page->width*4;\r
-       mv->page->dy = mv->map->tiles->tileHeight;\r
-\r
-\r
-       /* draw the next row */\r
-       y= SCREEN_HEIGHT + mv->map->tiles->tileHeight;\r
-               mapDrawRow(mv, mv->tx-1 , mv->ty+15, y);\r
-       }\r
-\r
-}\r
-\r
-\r
-void\r
-mapGoTo(map_view_t *mv, int tx, int ty) {\r
-       int px, py;\r
-       unsigned int i;\r
-\r
-       /* set up the coordinates */\r
-       mv->tx = tx;\r
-       mv->ty = ty;\r
-       mv->page->dx = mv->map->tiles->tileWidth;\r
-       mv->page->dy = mv->map->tiles->tileHeight;\r
-\r
-       /* set up the thresholds */\r
-       mv->dxThresh = mv->map->tiles->tileWidth * 2;\r
-       mv->dyThresh = mv->map->tiles->tileHeight * 2;\r
-\r
-       /* draw the tiles */\r
-       modexClearRegion(mv->page, 0, 0, mv->page->width, mv->page->height, 0);\r
-       py=0;\r
-       i=mv->ty * mv->map->width + mv->tx;\r
-       for(ty=mv->ty-1; py < SCREEN_HEIGHT+mv->dyThresh && ty < mv->map->height; ty++, py+=mv->map->tiles->tileHeight) {\r
-               mapDrawRow(mv, tx-1, ty, py);\r
-       i+=mv->map->width - tx;\r
-       }\r
-}\r
-\r
-\r
-void\r
-mapDrawTile(tiles_t *t, word i, page_t *page, word x, word y) {\r
-       word rx;\r
-       word ry;\r
-       rx = (i % t->cols) * t->tileWidth;\r
-       ry = (i / t->cols) * t->tileHeight;\r
-       modexDrawBmpRegion(page, x, y, rx, ry, t->tileWidth, t->tileHeight, t->data);\r
-}\r
-\r
-\r
-void \r
-mapDrawRow(map_view_t *mv, int tx, int ty, word y) {\r
-       word x;\r
-       int i;\r
-\r
-       /* the position within the map array */\r
-       i=ty * mv->map->width + tx;\r
-       for(x=0; x<SCREEN_WIDTH+mv->dxThresh && tx < mv->map->width; x+=mv->map->tiles->tileWidth, tx++) {\r
-       if(i>=0) {\r
-               /* we are in the map, so copy! */\r
-               mapDrawTile(mv->map->tiles, mv->map->data[i], mv->page, x, y);\r
-       }\r
-       i++; /* next! */\r
-       }\r
-}\r
-\r
-\r
-void \r
-mapDrawCol(map_view_t *mv, int tx, int ty, word x) {\r
-       int y;\r
-       int i;\r
-\r
-       /* location in the map array */\r
-       i=ty * mv->map->width + tx;\r
-\r
-       /* We'll copy all of the columns in the screen, \r
-          i + 1 row above and one below */\r
-       for(y=0; y<SCREEN_HEIGHT+mv->dyThresh && ty < mv->map->height; y+=mv->map->tiles->tileHeight, ty++) {\r
-       if(i>=0) {\r
-               /* we are in the map, so copy away! */\r
-               mapDrawTile(mv->map->tiles, mv->map->data[i], mv->page, x, y);\r
-       }\r
-       i += mv->map->width;\r
-       }\r
-}\r
-
-void animatePlayer(map_view_t *mv, short d1, short d2, int x, int y, int ls, bitmap_t *bmp)
-{
-       int qq;
-
-       if(d2==0) qq = 0;
-       else qq = ((ls+1)*SPEED);
-       switch (d1)
-       {
-               case 0:
-                       //up
-                       //if(ls==0) modexClearPlayer(mv->page, x-4, y-qq-TILEWH, 24, 32);
-                       if(ls<1) { modexClearPlayer(mv->page, x-4, y-qq-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-4, y-qq-TILEWH, 24, 0, 24, 32, bmp); }
-                       if(4>ls && ls>=1) { modexClearPlayer(mv->page, x-4, y-qq-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-4, y-qq-TILEWH, 48, 0, 24, 32, bmp); }
-                       if(7>ls && ls>=4) { modexClearPlayer(mv->page, x-4, y-qq-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-4, y-qq-TILEWH, 0, 0, 24, 32, bmp); }
-                       if(ls>=7) { modexClearPlayer(mv->page, x-4, y-qq-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-4, y-qq-TILEWH, 24, 0, 24, 32, bmp); }
-               break;
-               case 1:
-                       // right
-                       //if(ls==0) modexClearPlayer(mv->page, x+qq-4, y-TILEWH, 24, 32);
-                       if(ls<1) { modexClearPlayer(mv->page, x+qq-4, y-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x+qq-4, y-TILEWH, 24, 32, 24, 32, bmp); }
-                       if(4>ls && ls>=1) { modexClearPlayer(mv->page, x+qq-4, y-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x+qq-4, y-TILEWH, 48, 32, 24, 32, bmp); }
-                       if(7>ls && ls>=4) { modexClearPlayer(mv->page, x+qq-4, y-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x+qq-4, y-TILEWH, 0, 32, 24, 32, bmp); }
-                       if(ls>=7) { modexClearPlayer(mv->page, x+qq-4, y-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x+qq-4, y-TILEWH, 24, 32, 24, 32, bmp); }
-               break;
-               case 2:
-                       //down
-                       //if(ls==0) modexClearPlayer(mv->page, x-4, y+qq-TILEWH, 24, 32);
-                       if(ls<1) { modexClearPlayer(mv->page, x-4, y+qq-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-4, y+qq-TILEWH, 24, 64, 24, 32, bmp); }
-                       if(4>ls && ls>=1) { modexClearPlayer(mv->page, x-4, y+qq-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-4, y+qq-TILEWH, 48, 64, 24, 32, bmp); }
-                       if(7>ls && ls>=4) { modexClearPlayer(mv->page, x-4, y+qq-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-4, y+qq-TILEWH, 0, 64, 24, 32, bmp); }
-                       if(ls>=7) { modexClearPlayer(mv->page, x-4, y+qq-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-4, y+qq-TILEWH, 24, 64, 24, 32, bmp); }
-               break;
-               case 3:
-                       //left
-                       //if(ls==0) modexClearPlayer(mv->page, x-qq-4, y-TILEWH, 24, 32); 
-                       if(ls<1) { modexClearPlayer(mv->page, x-qq-4, y-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-qq-4, y-TILEWH, 24, 96, 24, 32, bmp); }
-                       if(4>ls && ls>=1) { modexClearPlayer(mv->page, x-qq-4, y-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-qq-4, y-TILEWH, 48, 96, 24, 32, bmp); }
-                       if(7>ls && ls>=4) { modexClearPlayer(mv->page, x-qq-4, y-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-qq-4, y-TILEWH, 0, 96, 24, 32, bmp); }
-                       if(ls>=7) { modexClearPlayer(mv->page, x-qq-4, y-TILEWH, 24, 32); modexDrawSpriteRegion(mv->page, x-qq-4, y-TILEWH, 24, 96, 24, 32, bmp); }
-               break;
-       }
-}
diff --git a/16/modex16/scroll.exe b/16/modex16/scroll.exe
deleted file mode 100755 (executable)
index 6bf9ba9..0000000
Binary files a/16/modex16/scroll.exe and /dev/null differ
diff --git a/16/modex16/test.exe b/16/modex16/test.exe
deleted file mode 100644 (file)
index 99404b1..0000000
Binary files a/16/modex16/test.exe and /dev/null differ
diff --git a/16/modex16/test.txt b/16/modex16/test.txt
deleted file mode 100644 (file)
index 05adc9e..0000000
+++ /dev/null
@@ -1,258 +0,0 @@
-64 x 64 Pixels\r
-\r
-0 0 0 \r
-20 0 0 \r
-0 20 0 \r
-20 20 0 \r
-0 0 20 \r
-20 0 20 \r
-0 20 20 \r
-30 30 30 \r
-30 37 30 \r
-29 32 3c \r
-3f 3f 33 \r
-3f 3f 26 \r
-3f 3f 19 \r
-3f 3f c \r
-3f 33 3f \r
-3f 33 33 \r
-3f 33 26 \r
-3f 33 19 \r
-3f 33 c \r
-3f 33 0 \r
-3f 26 3f \r
-3f 26 33 \r
-3f 26 26 \r
-3f 26 19 \r
-3f 26 c \r
-3f 26 0 \r
-3f 19 3f \r
-3f 19 33 \r
-3f 19 26 \r
-3f 19 19 \r
-3f 19 c \r
-3f 19 0 \r
-3f c 3f \r
-3f c 33 \r
-3f c 26 \r
-3f c 19 \r
-3f c c \r
-3f c 0 \r
-3f 0 33 \r
-3f 0 26 \r
-3f 0 19 \r
-3f 0 c \r
-33 3f 3f \r
-33 3f 33 \r
-33 3f 26 \r
-33 3f 19 \r
-33 3f c \r
-33 3f 0 \r
-33 33 3f \r
-33 33 33 \r
-33 33 26 \r
-33 33 19 \r
-33 33 c \r
-33 33 0 \r
-33 26 3f \r
-33 26 33 \r
-33 26 26 \r
-33 26 19 \r
-33 26 c \r
-33 26 0 \r
-33 19 3f \r
-33 19 33 \r
-33 19 26 \r
-33 19 19 \r
-33 19 c \r
-33 19 0 \r
-33 c 3f \r
-33 c 33 \r
-33 c 26 \r
-33 c 19 \r
-33 c c \r
-33 c 0 \r
-33 0 3f \r
-33 0 33 \r
-33 0 26 \r
-33 0 19 \r
-33 0 c \r
-33 0 0 \r
-26 3f 3f \r
-26 3f 33 \r
-26 3f 26 \r
-26 3f 19 \r
-26 3f c \r
-26 3f 0 \r
-26 33 3f \r
-26 33 33 \r
-26 33 26 \r
-26 33 19 \r
-26 33 c \r
-26 33 0 \r
-26 26 3f \r
-26 26 33 \r
-26 26 26 \r
-26 26 19 \r
-26 26 c \r
-26 26 0 \r
-26 19 3f \r
-26 19 33 \r
-26 19 26 \r
-26 19 19 \r
-26 19 c \r
-26 19 0 \r
-26 c 3f \r
-26 c 33 \r
-26 c 26 \r
-26 c 19 \r
-26 c c \r
-26 c 0 \r
-26 0 3f \r
-26 0 33 \r
-26 0 26 \r
-26 0 19 \r
-26 0 c \r
-26 0 0 \r
-19 3f 3f \r
-19 3f 33 \r
-19 3f 26 \r
-19 3f 19 \r
-19 3f c \r
-19 3f 0 \r
-19 33 3f \r
-19 33 33 \r
-19 33 26 \r
-19 33 19 \r
-19 33 c \r
-19 33 0 \r
-19 26 3f \r
-19 26 33 \r
-19 26 26 \r
-19 26 19 \r
-19 26 c \r
-19 26 0 \r
-19 19 3f \r
-19 19 33 \r
-19 19 26 \r
-19 19 19 \r
-19 19 c \r
-19 19 0 \r
-19 c 3f \r
-19 c 33 \r
-19 c 26 \r
-19 c 19 \r
-19 c c \r
-19 c 0 \r
-19 0 3f \r
-19 0 33 \r
-19 0 26 \r
-19 0 19 \r
-19 0 c \r
-19 0 0 \r
-c 3f 3f \r
-c 3f 33 \r
-c 3f 26 \r
-c 3f 19 \r
-c 3f c \r
-c 3f 0 \r
-c 33 3f \r
-c 33 33 \r
-c 33 26 \r
-c 33 19 \r
-c 33 c \r
-c 33 0 \r
-c 26 3f \r
-c 26 33 \r
-c 26 26 \r
-c 26 19 \r
-c 26 c \r
-c 26 0 \r
-c 19 3f \r
-c 19 33 \r
-c 19 26 \r
-c 19 19 \r
-c 19 c \r
-c 19 0 \r
-c c 3f \r
-c c 33 \r
-c c 26 \r
-c c 19 \r
-c c c \r
-c c 0 \r
-c 0 3f \r
-c 0 33 \r
-c 0 26 \r
-c 0 19 \r
-c 0 c \r
-c 0 0 \r
-0 3f 33 \r
-0 3f 26 \r
-0 3f 19 \r
-0 3f c \r
-0 33 3f \r
-0 33 33 \r
-0 33 26 \r
-0 33 19 \r
-0 33 c \r
-0 33 0 \r
-0 26 3f \r
-0 26 33 \r
-0 26 26 \r
-0 26 19 \r
-0 26 c \r
-0 26 0 \r
-0 19 3f \r
-0 19 33 \r
-0 19 26 \r
-0 19 19 \r
-0 19 c \r
-0 19 0 \r
-0 c 3f \r
-0 c 33 \r
-0 c 26 \r
-0 c 19 \r
-0 c c \r
-0 c 0 \r
-0 0 33 \r
-0 0 26 \r
-0 0 19 \r
-0 0 c \r
-20 3f 3f \r
-10 20 20 \r
-20 3f 0 \r
-10 10 0 \r
-3f 3f 20 \r
-3f 20 0 \r
-3f 20 20 \r
-20 10 0 \r
-20 0 3f \r
-20 0 10 \r
-10 20 3f \r
-0 10 20 \r
-0 0 0 \r
-0 0 0 \r
-0 0 0 \r
-0 0 0 \r
-0 0 0 \r
-0 0 0 \r
-0 0 0 \r
-0 0 0 \r
-0 0 0 \r
-0 0 0 \r
-0 0 0 \r
-0 0 0 \r
-0 0 0 \r
-0 0 0 \r
-0 0 0 \r
-0 0 0 \r
-3f 3e 3c \r
-28 28 29 \r
-20 20 20 \r
-3f 0 0 \r
-0 3f 0 \r
-3f 3f 0 \r
-0 0 3f \r
-3f 0 3f \r
-0 3f 3f \r
-3f 3f 3f 
\ No newline at end of file
diff --git a/16/modex16/test2.exe b/16/modex16/test2.exe
deleted file mode 100644 (file)
index 2b870ef..0000000
Binary files a/16/modex16/test2.exe and /dev/null differ
diff --git a/BITMAP.H b/BITMAP.H
deleted file mode 100644 (file)
index 4c4af98..0000000
--- a/BITMAP.H
+++ /dev/null
@@ -1,24 +0,0 @@
-/*\r
- * Functions and types for loading and manipulating bitmaps.\r
- */\r
-#ifndef BITMAP_H\r
-#define BITMAP_H\r
-#include "types.h"\r
-typedef struct {\r
-    byte *data;\r
-    word width;\r
-    word height;\r
-    byte *palette;\r
-} bitmap_t;\r
-\r
-typedef struct {\r
-    byte **data;\r
-    word ntiles;   /* the number of tiles */\r
-    word twidth;   /* width of the tiles */\r
-    word theight;  /* height of the tiles */\r
-    byte *palette; /* palette for the tile set */\r
-} tileset_t;\r
-\r
-bitmap_t bitmapLoadPcx(char *filename);\r
-tileset_t bitmapLoadPcxTiles(char *filename, word twidth, word theight);\r
-#endif\r
index af70586..2db68fb 100644 (file)
@@ -1,20 +1,20 @@
 c2e.convert_special: 0
 e2c.convert_num: 0
 openfiles: /dos/z/16/doc/project.txt:60:0:0:
-openfiles: /dos/z/16/scroll.c:10823:10140:1:
-openfiles: /dos/z/16/modex16.c:6838:6141:0:
-openfiles: /dos/z/16/modex16.h:1057:344:0:
-openfiles: /dos/z/16/pcxtest.c:753:655:0:
-openfiles: /dos/z/16/dos_kb.c:3759:0:0:
-openfiles: /dos/z/16/dos_kb.h:464:0:0:
-openfiles: /dos/z/16/lib/lib_head.h:2536:0:0:
-openfiles: /dos/z/16/makefile:181:0:0:
-openfiles: /dos/z/keen-src/id_mm.c:1835:14248:0:
-openfiles: /dos/z/keen-src/id_mm.h:0:1024:0:
-openfiles: /dos/z/keen-src/id_rf.c:46629:47657:0:
-openfiles: /dos/z/keen-src/id_rf.h:0:0:0:
-openfiles: /dos/z/keen-src/id_rf_a.asm:3987:3375:0:
-openfiles: /dos/z/16/types.h:154:0:0:
+openfiles: /dos/z/16/src/scroll.c:2536:1770:0:
+openfiles: /dos/z/16/src/lib/modex16.c:136:0:0:
+openfiles: /dos/z/16/src/lib/modex16.h:1931:1068:0:
+openfiles: /dos/z/16/src/pcxtest.c:785:655:0:
+openfiles: /dos/z/16/src/lib/dos_kb.c:107:0:0:
+openfiles: /dos/z/16/src/lib/dos_kb.h:62:0:0:
+openfiles: /dos/z/16/src/lib/lib_head.h:165:0:0:
+openfiles: /dos/z/16/src/palettec.c:176:0:1:
+openfiles: /dos/z/16/src/test.c:18:0:0:
+openfiles: /dos/z/16/src/test2.c:18:0:0:
+openfiles: /dos/z/16/src/lib/bitmap.c:59:0:0:
+openfiles: /dos/z/16/src/lib/bitmap.h:125:0:0:
+openfiles: /dos/z/16/src/lib/lib_head.cpp:0:0:0:
+openfiles: /dos/z/16/src/lib/types.h:0:0:0:
 snr_recursion_level: 0
 convertcolumn_horizontally: 0
 adv_open_matchname: 0
@@ -26,10 +26,10 @@ view_left_panel: 0
 default_mime_type: text/plain
 e2c.convert_xml: 1
 c2e.convert_iso: 0
-opendir: file:///dos/z/16
+opendir: file:///dos/z/16/src/lib
 wrap_text_default: 0
 bookmarks_filename_mode: 1
-ssearch_text: dxThresh
+ssearch_text: PalFile
 snr_casesens: 1
 view_blocks: 1
 name: project 16
@@ -61,20 +61,6 @@ ssearch_regex: 0
 e2c.convert_iso: 0
 ssearch_casesens: 0
 charmap_block: 1
-recent_files: file:///dos/z/16/16/modex16/MODEX16.C
-recent_files: file:///dos/z/4x4_16/w_modex/MODEX.CPP
-recent_files: file:///dos/z/16/16/TYPES.H
-recent_files: file:///dos/z/16/16/lib/TYPES.H
-recent_files: file:///dos/z/16/16/test.c
-recent_files: file:///dos/z/16/16/MODEX16.H
-recent_files: file:///dos/z/16/16/MODEX16.C
-recent_files: file:///dos/z/16/16/lib/types.h
-recent_files: file:///dos/z/16/16/modex16/PCXTEST.C
-recent_files: file:///dos/z/16/16/lib/MODEX16.C
-recent_files: file:///dos/z/16/16/lib/MODEX16.H
-recent_files: file:///dos/z/16/16/modex16/SCROLL.C
-recent_files: file:///dos/z/16/src/lib/dos_comm.c
-recent_files: file:///dos/z/16/src/eng_comm.cpp
 recent_files: file:///dos/z/16/src/eng_comm.h
 recent_files: file:///dos/z/16/src/lib/dos_comm.h
 recent_files: file:///dos/z/16/16/modex16/lib/lib_com.h
@@ -97,22 +83,36 @@ recent_files: file:///dos/z/16/doc/16.16
 recent_files: file:///dos/z/16/doc/16story.txt
 recent_files: file:///dos/z/16/README
 recent_files: file:///dos/z/16/scroll.c
-recent_files: file:///dos/z/16/doc/project.txt
 recent_files: file:///dos/z/16/dos_kb.h
 recent_files: file:///dos/z/16/dos_kb.c
 recent_files: file:///dos/z/16/lib/lib_head.h
 recent_files: file:///dos/z/16/modex16.c
 recent_files: file:///dos/z/16/modex16.h
-recent_files: file:///dos/z/keen-src/id_rf.h
 recent_files: file:///dos/z/16/types.h
-recent_files: file:///dos/z/keen-src/id_mm.h
-recent_files: file:///dos/z/16/makefile
 recent_files: file:///dos/z/16/pcxtest.c
-recent_files: file:///dos/z/keen-src/id_rf_a.asm
+recent_files: file:///dos/z/16/src/scroll.c
+recent_files: file:///dos/z/16/doc/project.txt
+recent_files: file:///dos/z/16/src/lib/dos_kb.c
+recent_files: file:///dos/z/16/src/lib/dos_kb.h
+recent_files: file:///dos/z/16/src/lib/lib_head.h
+recent_files: file:///dos/z/16/src/lib/modex16.h
+recent_files: file:///dos/z/16/src/pcxtest.c
+recent_files: file:///dos/z/16/src/lib/modex16.c
+recent_files: file:///dos/z/16/makefile
+recent_files: file:///dos/z/keen-src/id_mm.h
 recent_files: file:///dos/z/keen-src/id_mm.c
+recent_files: file:///dos/z/keen-src/id_rf.h
+recent_files: file:///dos/z/keen-src/id_rf_a.asm
 recent_files: file:///dos/z/keen-src/id_rf.c
+recent_files: file:///dos/z/16/src/palettec.c
+recent_files: file:///dos/z/16/src/test.c
+recent_files: file:///dos/z/16/src/test2.c
+recent_files: file:///dos/z/16/src/lib/bitmap.c
+recent_files: file:///dos/z/16/src/lib/bitmap.h
+recent_files: file:///dos/z/16/src/lib/lib_head.cpp
+recent_files: file:///dos/z/16/src/lib/types.h
 snr_replacetype: 0
-savedir: file:///dos/z/16
+savedir: file:///dos/z/16/src
 spell_check_default: 1
 spell_insert_entities: 0
 last_filefilter: 
@@ -122,7 +122,6 @@ snr_escape_chars: 0
 htmlbar_view: 0
 spell_lang: en
 ssearch_dotmatchall: 0
-searchlist: return
 searchlist: enter
 searchlist: bg->tx == bg->ty
 searchlist: data
@@ -137,6 +136,7 @@ searchlist: MAPY/2
 searchlist: MAPX/2
 searchlist: mapDrawTile
 searchlist: dxThresh
+searchlist: PalFile
 autocomplete: 1
 outputb_show_all_output: 0
 bookmarks_show_mode: 0
similarity index 100%
rename from 16/modex16/46113319.pcx
rename to data/46113319.pcx
similarity index 100%
rename from 16/modex16/COMPUTER.PCX
rename to data/COMPUTER.PCX
similarity index 100%
rename from 16/modex16/EDw.PCX
rename to data/EDw.PCX
similarity index 100%
rename from 16/modex16/MAYU.PCX
rename to data/MAYU.PCX
similarity index 100%
rename from 16/modex16/chikyuu.pcx
rename to data/chikyuu.pcx
similarity index 100%
rename from 16/modex16/ed.pcx
rename to data/ed.pcx
similarity index 100%
rename from 16/modex16/ed2.pcx
rename to data/ed2.pcx
similarity index 100%
rename from 16/modex16/koishi.pcx
rename to data/koishi.pcx
similarity index 100%
rename from 16/modex16/koishi^^.pcx
rename to data/koishi^^.pcx
similarity index 100%
rename from 16/modex16/koishi~.pcx
rename to data/koishi~.pcx
similarity index 100%
rename from 16/modex16/ptmp.pcx
rename to data/ptmp.pcx
similarity index 100%
rename from 16/modex16/q.pcx
rename to data/q.pcx
similarity index 100%
rename from 16/modex16/rarity.pcx
rename to data/rarity.pcx
similarity index 100%
rename from 16/modex16/w.pcx
rename to data/w.pcx
index 5089931..a6a4be1 100644 (file)
--- a/makefile
+++ b/makefile
@@ -1,10 +1,12 @@
-FLAGS=-0 -d2 \r
+FLAGS=-0 -d2 
+SRC=src\
+SRCLIB=$(SRC)lib\\r
 all: test.exe pcxtest.exe test2.exe scroll.exe\r
 \r
 scroll.exe: scroll.obj modex16.obj dos_kb.obj bitmap.obj\r
        wcl $(FLAGS) scroll.obj modex16.obj dos_kb.obj bitmap.obj\r
-scroll.obj: scroll.c\r
-       wcl $(FLAGS) -c scroll.c\r
+scroll.obj: $(SRC)scroll.c\r
+       wcl $(FLAGS) -c $(SRC)scroll.c\r
 test.exe: test.obj modex16.obj bitmap.obj\r
        wcl $(FLAGS) test.obj modex16.obj bitmap.obj\r
        \r
@@ -14,24 +16,24 @@ test2.exe: test2.obj modex16.obj bitmap.obj
 pcxtest.exe: pcxtest.obj modex16.obj bitmap.obj\r
        wcl $(FLAGS) pcxtest.obj modex16.obj bitmap.obj\r
 \r
-test.obj: test.c modex16.h\r
-       wcl $(FLAGS) -c test.c\r
+test.obj: $(SRC)test.c $(SRCLIB)modex16.h\r
+       wcl $(FLAGS) -c $(SRC)test.c\r
        \r
-test2.obj: test2.c modex16.h\r
-       wcl $(FLAGS) -c test2.c\r
+test2.obj: $(SRC)test2.c $(SRCLIB)modex16.h\r
+       wcl $(FLAGS) -c $(SRC)test2.c\r
        \r
-pcxtest.obj: pcxtest.c modex16.h\r
-       wcl $(FLAGS) -c pcxtest.c\r
+pcxtest.obj: $(SRC)pcxtest.c $(SRCLIB)modex16.h\r
+       wcl $(FLAGS) -c $(SRC)pcxtest.c\r
 \r
-modex16.obj: modex16.h modex16.c\r
-       wcl $(FLAGS) -c modex16.c\r
+modex16.obj: $(SRCLIB)modex16.h $(SRCLIB)modex16.c\r
+       wcl $(FLAGS) -c $(SRCLIB)modex16.c\r
 \r
-dos_kb.obj: dos_kb.h dos_kb.c\r
-       wcl $(FLAGS) -c dos_kb.c\r
+dos_kb.obj: $(SRCLIB)dos_kb.h $(SRCLIB)dos_kb.c\r
+       wcl $(FLAGS) -c $(SRCLIB)dos_kb.c\r
 \r
-bitmap.obj: bitmap.h bitmap.c\r
-       wcl $(FLAGS) -c bitmap.c\r
+bitmap.obj: $(SRCLIB)bitmap.h $(SRCLIB)bitmap.c\r
+       wcl $(FLAGS) -c $(SRCLIB)bitmap.c\r
        \r
 clean: \r
        del *.obj\r
-       del *.exe\r
+#      del *.exe\r
diff --git a/makefile~ b/makefile~
new file mode 100644 (file)
index 0000000..6ef7ecd
--- /dev/null
+++ b/makefile~
@@ -0,0 +1,37 @@
+FLAGS=-0 -d2 \r
+all: test.exe pcxtest.exe test2.exe scroll.exe\r
+\r
+scroll.exe: scroll.obj modex16.obj dos_kb.obj bitmap.obj\r
+       wcl $(FLAGS) scroll.obj modex16.obj dos_kb.obj bitmap.obj\r
+scroll.obj: src\scroll.c\r
+       wcl $(FLAGS) -c src\scroll.c\r
+test.exe: test.obj modex16.obj bitmap.obj\r
+       wcl $(FLAGS) test.obj modex16.obj bitmap.obj\r
+       \r
+test2.exe: test2.obj modex16.obj bitmap.obj\r
+       wcl $(FLAGS) test2.obj modex16.obj bitmap.obj\r
+       \r
+pcxtest.exe: pcxtest.obj modex16.obj bitmap.obj\r
+       wcl $(FLAGS) pcxtest.obj modex16.obj bitmap.obj\r
+\r
+test.obj: src\test.c src\lib\modex16.h\r
+       wcl $(FLAGS) -c src\test.c\r
+       \r
+test2.obj: src\test2.c src\lib\modex16.h\r
+       wcl $(FLAGS) -c src\test2.c\r
+       \r
+pcxtest.obj: src\pcxtest.c src\lib\modex16.h\r
+       wcl $(FLAGS) -c src\pcxtest.c\r
+\r
+modex16.obj: src\lib\modex16.h src\lib\modex16.c\r
+       wcl $(FLAGS) -c src\lib\modex16.c\r
+\r
+dos_kb.obj: src\lib\dos_kb.h src\lib\dos_kb.c\r
+       wcl $(FLAGS) -c src\lib\dos_kb.c\r
+\r
+bitmap.obj: src\lib\bitmap.h src\lib\bitmap.c\r
+       wcl $(FLAGS) -c src\lib\bitmap.c\r
+       \r
+clean: \r
+       del *.obj\r
+#      del *.exe\r
diff --git a/palettec.c b/palettec.c
deleted file mode 100644 (file)
index 340a930..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "modex16.h"\r
-\r
-void\r
-main() {\r
-    byte *pal;\r
-\r
-    modexEnter();\r
-\r
-    pal = modexNewPal();\r
-    modexPalSave(pal);\r
-\r
-    modexSavePalFile("gfx.pal", pal);\r
-\r
-    modexLeave();\r
-\r
-}\r
diff --git a/pcxtest.c b/pcxtest.c
deleted file mode 100644 (file)
index 7373e88..0000000
--- a/pcxtest.c
+++ /dev/null
@@ -1,79 +0,0 @@
-#include <stdio.h>\r
-#include "modex16.h"\r
-#include "bitmap.h"\r
-\r
-word far* clock= (word far*) 0x046C; /* 18.2hz clock */\r
-\r
-void\r
-oldDrawBmp(byte far* page, int x, int y, bitmap_t *bmp, byte sprite) {\r
-    byte plane;\r
-    word px, py;\r
-    word offset;\r
-\r
-    /* TODO Make this fast.  It's SLOOOOOOW */\r
-    for(plane=0; plane < 4; plane++) {\r
-       modexSelectPlane(PLANE(plane+x));\r
-       for(px = plane; px < bmp->width; px+=4) {\r
-           offset=px;\r
-           for(py=0; py<bmp->height; py++) {\r
-               if(!sprite || bmp->data[offset])\r
-                 page[PAGE_OFFSET(x+px, y+py)] = bmp->data[offset];\r
-               offset+=bmp->width;\r
-           }\r
-       }\r
-    }\r
-}\r
-\r
-void main() {\r
-    bitmap_t bmp;\r
-    int i;\r
-    page_t page;\r
-    word start;\r
-    float t1, t2;\r
-\r
-    page=modexDefaultPage();\r
-\r
-    bmp = bitmapLoadPcx("46113319.pcx");\r
-    modexEnter();\r
-\r
-    /* fix up the palette and everything */\r
-    modexPalUpdate(bmp.palette);\r
-\r
-    /* clear and draw one sprite and one bitmap */\r
-    modexClearRegion(&page, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 1);\r
-\r
-    /* non sprite comparison */\r
-    start = *clock;\r
-    for(i=0; i<100 ;i++) {\r
-      oldDrawBmp(VGA, 20, 20, &bmp, 0);\r
-    }\r
-\r
-    start = *clock;\r
-    for(i=0; i<100 ;i++) {\r
-      modexDrawBmp(&page, 20, 20, &bmp);\r
-    }\r
-    t1 = (*clock-start) /18.2;\r
-\r
-    start = *clock;\r
-    for(i=0; i<100; i++) {\r
-       modexCopyPageRegion(&page, &page, 20, 20, 128, 20, 64, 64);\r
-    }\r
-    t2 = (*clock-start)/18.2;\r
-\r
-\r
-    start = *clock;\r
-    for(i=0; i<100 ;i++) {\r
-      oldDrawBmp(VGA, 20, 20, &bmp, 1);\r
-    }\r
-\r
-\r
-    start = *clock;\r
-    for(i=0; i<100 ;i++) {\r
-      modexDrawSprite(&page, 20, 20, &bmp);\r
-    }\r
-    modexLeave();\r
-\r
-    printf("CPU to VGA: %f\n", t1);\r
-    printf("VGA to VGA: %f\n", t2);\r
-    return;\r
-}\r
index e2f8053..3da4c5e 100644 (file)
Binary files a/pcxtest.exe and b/pcxtest.exe differ
diff --git a/ptmp.pcx b/ptmp.pcx
deleted file mode 100644 (file)
index e6693f5..0000000
Binary files a/ptmp.pcx and /dev/null differ
index b7a0172..0710f35 100644 (file)
Binary files a/scroll.exe and b/scroll.exe differ
similarity index 94%
rename from BITMAP.C
rename to src/lib/bitmap.c
index 8287e57..ece5f07 100644 (file)
--- a/BITMAP.C
@@ -1,7 +1,7 @@
 #include <stdio.h>\r
 #include <stdlib.h>\r
-#include "bitmap.h"\r
-#include "modex16.h"\r
+#include "src\lib\bitmap.h"\r
+#include "src\lib\modex16.h"\r
 \r
 static struct pcxHeader {\r
     byte id;\r
similarity index 91%
rename from 16/modex16/BITMAP.H
rename to src/lib/bitmap.h
index 4c4af98..c11a5d6 100644 (file)
@@ -3,7 +3,7 @@
  */\r
 #ifndef BITMAP_H\r
 #define BITMAP_H\r
-#include "types.h"\r
+#include "src\lib\types.h"\r
 typedef struct {\r
     byte *data;\r
     word width;\r
similarity index 99%
rename from dos_kb.c
rename to src/lib/dos_kb.c
index dd92418..a99f2ca 100644 (file)
--- a/dos_kb.c
@@ -1,6 +1,6 @@
 /* Thanks to Alex Russell for example code */
 /* Thanks to Gary Neal for example code */
-#include "dos_kb.h"
+#include "src\lib\dos_kb.h"
 
 // keyboard buffer
 static byte key[NUM_SCANCODES]; // pressed
similarity index 93%
rename from dos_kb.h
rename to src/lib/dos_kb.h
index 0961789..debb0c3 100644 (file)
--- a/dos_kb.h
@@ -1,6 +1,6 @@
 #ifndef _DOSLIB_KB_H_
 #define _DOSLIB_KB_H_
-#include "lib\lib_head.h"
+#include "src\lib\lib_head.h"
 
 /* Maximum number of scan codes on keyboard controllers */
 #define NUM_SCANCODES   128
similarity index 79%
rename from lib/lib_head.cpp
rename to src/lib/lib_head.cpp
index cc40b93..42bbb02 100644 (file)
@@ -1,5 +1,4 @@
-//#include "src\lib\lib_head.h"
-#include "lib\lib_head.h"
+#include "src\lib\lib_head.h"
 \r
 /* local function */\r
 void wait(clock_t wait);\r
similarity index 98%
rename from lib/lib_head.h
rename to src/lib/lib_head.h
index 7e034ad..86b55b8 100644 (file)
@@ -4,7 +4,7 @@
 #include <stdio.h>
 #include <conio.h> // just for wait
 #include <time.h> // just for wait
-#include "types.h"
+#include "src\lib\types.h"
 
 /* Control codes for all keys on the keyboard */
 //here temperarly
similarity index 95%
rename from modex16.c
rename to src/lib/modex16.c
index aadbe52..1e1757b 100644 (file)
--- a/modex16.c
@@ -4,7 +4,7 @@
 #include <conio.h>\r
 #include <stdio.h>\r
 #include <stdlib.h>\r
-#include "modex16.h"\r
+#include "src\lib\modex16.h"\r
 \r
 \r
 byte far* VGA=(byte far*) 0xA0000000;  /* this points to video memory. */\r
similarity index 95%
rename from modex16.h
rename to src/lib/modex16.h
index 65b37d9..1a5debd 100644 (file)
--- a/modex16.h
@@ -4,8 +4,8 @@
 #ifndef MODEX16_H\r
 #define MODEX16_H\r
 #include <conio.h>\r
-#include "types.h"\r
-#include "bitmap.h"\r
+#include "src\lib\types.h"\r
+#include "src\lib\bitmap.h"\r
 \r
 /* -========================== Types & Macros ==========================- */\r
 #define PAGE_OFFSET(x,y) (((y)<<6)+((y)<<4)+((x)>>2))\r
similarity index 100%
rename from 16/modex16/types.h
rename to src/lib/types.h
similarity index 100%
rename from lib/wtest/WTEST.EXE
rename to src/lib/wtest/WTEST.EXE
similarity index 100%
rename from lib/wtest/makefile
rename to src/lib/wtest/makefile
similarity index 100%
rename from lib/wtest/wtest.c
rename to src/lib/wtest/wtest.c
similarity index 100%
rename from lib/wtest/wtest.h
rename to src/lib/wtest/wtest.h
similarity index 77%
rename from 16/modex16/palettec.c
rename to src/palettec.c
index 340a930..630d7b3 100644 (file)
@@ -1,4 +1,4 @@
-#include "modex16.h"\r
+#include "src\lib\modex16.h"\r
 \r
 void\r
 main() {\r
similarity index 89%
rename from 16/modex16/pcxtest.c
rename to src/pcxtest.c
index 7373e88..e2c133c 100644 (file)
@@ -1,6 +1,6 @@
 #include <stdio.h>\r
-#include "modex16.h"\r
-#include "bitmap.h"\r
+#include "src\lib\modex16.h"\r
+#include "src\lib\bitmap.h"\r
 \r
 word far* clock= (word far*) 0x046C; /* 18.2hz clock */\r
 \r
@@ -33,7 +33,7 @@ void main() {
 \r
     page=modexDefaultPage();\r
 \r
-    bmp = bitmapLoadPcx("46113319.pcx");\r
+    bmp = bitmapLoadPcx("data\46113319.pcx");\r
     modexEnter();\r
 \r
     /* fix up the palette and everything */\r
similarity index 99%
rename from scroll.c
rename to src/scroll.c
index 846fcff..c8a5a62 100644 (file)
--- a/scroll.c
@@ -1,8 +1,8 @@
-#include "modex16.h"
+#include "src\lib\modex16.h"
 #include <stdio.h>
 #include <stdlib.h>
-#include "dos_kb.h"
-#include "lib\wtest\wtest.c"
+#include "src\lib\dos_kb.h"
+#include "src\lib\wtest\wtest.c"
 
 //word far *clock= (word far*) 0x046C; /* 18.2hz clock */
 
@@ -87,7 +87,7 @@ void main() {
 
        /* draw the tiles */
        ptr = map.data;
-       ptmp = bitmapLoadPcx("ptmp.pcx"); // load sprite
+       ptmp = bitmapLoadPcx("data\ptmp.pcx"); // load sprite
        modexEnter();
        modexPalUpdate(ptmp.palette);
        screen = modexDefaultPage();
similarity index 93%
rename from 16/modex16/test.c
rename to src/test.c
index c5b9d7d..fd2ec3f 100644 (file)
@@ -1,4 +1,4 @@
-#include "modex16.h"\r
+#include "src\lib\modex16.h"\r
 #include <stdio.h>\r
 \r
 word far* clock= (word far*) 0x046C; /* 18.2hz clock */\r
similarity index 84%
rename from 16/modex16/test2.c
rename to src/test2.c
index 9118279..5b3d32c 100644 (file)
@@ -1,4 +1,4 @@
-#include "modex16.h"\r
+#include "src\lib\modex16.h"\r
 \r
 word far* clock= (word far*) 0x046C; /* 18.2hz clock */\r
 \r
diff --git a/test.c b/test.c
deleted file mode 100644 (file)
index c5b9d7d..0000000
--- a/test.c
+++ /dev/null
@@ -1,75 +0,0 @@
-#include "modex16.h"\r
-#include <stdio.h>\r
-\r
-word far* clock= (word far*) 0x046C; /* 18.2hz clock */\r
-\r
-void main() {\r
-    int i, j;\r
-    word start, end;\r
-    page_t page, page2;\r
-    byte *pal, *pal2=NULL;\r
-\r
-    /* load our palette */\r
-    modexLoadPalFile("gfx.pal", &pal2);\r
-\r
-    /* save the palette */\r
-    pal  = modexNewPal();\r
-    modexPalSave(pal);\r
-    modexFadeOff(1, pal);\r
-    modexPalBlack();\r
-\r
-    modexEnter();\r
-    modexPalBlack();\r
-\r
-    /* set up the page, but with 16 pixels on all borders in offscreen mem */\r
-    page=modexDefaultPage();\r
-    page2 = modexNextPage(&page);\r
-    page.width += 32;\r
-    page.height += 32;\r
-\r
-\r
-    /* fill the page with one color, but with a black border */\r
-    modexShowPage(&page2);\r
-    modexClearRegion(&page, 16, 16, SCREEN_WIDTH, SCREEN_HEIGHT, 128);\r
-    modexClearRegion(&page, 32, 32, SCREEN_WIDTH-32, SCREEN_HEIGHT-32, 42);\r
-    modexClearRegion(&page, 48, 48, SCREEN_WIDTH-64, SCREEN_HEIGHT-64, 128);\r
-    modexShowPage(&page);\r
-\r
-    /* fade in */\r
-    modexFadeOn(1, pal2);\r
-\r
-\r
-    start = *clock;\r
-    for(i=0; i<5; i++) {\r
-       /* go right */\r
-       for(j=0; j<32; j++) {\r
-           page.dx++;\r
-           modexShowPage(&page);\r
-       }\r
-       /* go left */\r
-       for(j=0; j<32; j++) {\r
-           page.dx--;\r
-           modexShowPage(&page);\r
-       }\r
-       /* go up */\r
-       for(j=0; j<32; j++) {\r
-           page.dy++;\r
-           modexShowPage(&page);\r
-       }\r
-\r
-       /* go down */\r
-       for(j=0; j<32; j++) {\r
-           page.dy--;\r
-           modexShowPage(&page);\r
-       }\r
-    }\r
-\r
-    end = *clock;\r
-\r
-    /* fade back to text mode */\r
-    modexFadeOff(1, pal2);\r
-    modexPalBlack();\r
-    modexLeave();\r
-    modexPalBlack();\r
-    modexFadeOn(1, pal);\r
-}\r
index 640194b..70d0176 100644 (file)
Binary files a/test.exe and b/test.exe differ
diff --git a/test2.c b/test2.c
deleted file mode 100644 (file)
index 9118279..0000000
--- a/test2.c
+++ /dev/null
@@ -1,19 +0,0 @@
-#include "modex16.h"\r
-\r
-word far* clock= (word far*) 0x046C; /* 18.2hz clock */\r
-\r
-void main() {\r
-    int i;\r
-    word start;\r
-    page_t page;\r
-\r
-    page=modexDefaultPage();\r
-\r
-    modexEnter();\r
-    start = *clock;\r
-    for(i=0; i<500; i++) {\r
-       modexShowPage(&page);\r
-    }\r
-    modexLeave();\r
-\r
-}\r
index 731dd1c..ecbbf0e 100644 (file)
Binary files a/test2.exe and b/test2.exe differ
diff --git a/types.h b/types.h
deleted file mode 100644 (file)
index 039653f..0000000
--- a/types.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/*\r
- * Just some handy typedefs that make it easier to think about the low\r
- * level code\r
- */\r
-\r
-typedef unsigned char byte;\r
-typedef unsigned short word;\r
-typedef unsigned long  dword;\r
-typedef signed char sbyte;\r
-typedef signed short sword;\r
-typedef signed long sdword;\r