OSDN Git Service

p16 is being worked on a bunch by me wwww [16_ca needs huge amounts of work and I...
authorsparky4 <sparky4@cock.li>
Tue, 4 Apr 2017 16:44:46 +0000 (11:44 -0500)
committersparky4 <sparky4@cock.li>
Tue, 4 Apr 2017 16:44:46 +0000 (11:44 -0500)
makefile
src/lib/16_mm.c
src/lib/16_rf.c
src/lib/16_rf.h
video.ofs.bufferofs [deleted file]
video.ofs.displayofs [deleted file]

index 589d5ff..2a083bc 100755 (executable)
--- a/makefile
+++ b/makefile
@@ -117,7 +117,7 @@ UPXQ=-qqq
 S_FLAGS=-sg -st -of+ -zu -zdf -zff -zgf -k24576#32768
 Z_FLAGS=-zk0 -zc -zm#### -zp4 -ei
 O_FLAGS=-opnr -oe=24 -oil+ -outback -ohm
-T_FLAGS=-bt=dos -wx -m$(MEMORYMODE) -0 -fpi87 -d1 -fo=.$(OBJ)##-e=65536
+T_FLAGS=-bt=dos -wx -m$(MEMORYMODE) -0 -fpi87 -d1 -fo=.$(OBJ)## -e=65536
 
 DBUGFLAGS=-fm=$^&.meh -fd=$^&
 CPPFLAGS=-DTARGET_MSDOS=16 -DMSDOS=1
index 8fa8de5..ab51789 100755 (executable)
@@ -1257,6 +1257,8 @@ void MM_SortMem(global_game_variables_t *gvar)
 =====================
 */
 
+//#define MMSMSORTNEWTYPE
+
 void MM_ShowMemory(global_game_variables_t *gvar)
 {
        mmblocktype far *scan;
@@ -1301,8 +1303,11 @@ void MM_ShowMemory(global_game_variables_t *gvar)
                        write(gvar->handle.debughandle,scratch,strlen(scratch));
                        Quit (gvar, "MM_ShowMemory: Memory block order currupted!");
                }
+#ifndef MMSMSORTNEWTYPE
                end = scan->length-1;
-               //end = scan->start+(scan->length)-1;
+#else
+               end = scan->start+(scan->length)-1;
+#endif
                y = scan->start/320;
                x = scan->start%320;
                VW_Hlin(x,x+end,y,color, &gvar->video.ofs);
@@ -1313,8 +1318,11 @@ void MM_ShowMemory(global_game_variables_t *gvar)
                        strcat(scratch0, "+");
                }
 //++==++==optional             strcat(scratch0, AARESET); strcat(scratch0, AAGREY); strcat(scratch0,"_");
+#ifdef MMSMSORTNEWTYPE
                if (scan->next && scan->next->start > end+1)
-               //if (scan->next && scan->next->start >= end+1)
+#else
+               if (scan->next && scan->next->start >= end+1)
+#endif
                {
                        VW_Hlin(x+end+1,x+(scan->next->start-scan->start),y,0, &gvar->video.ofs);       // black = free
                        strcat(scratch0, AARESET);
@@ -1329,7 +1337,9 @@ void MM_ShowMemory(global_game_variables_t *gvar)
                        //printf("w=%u  start=%04x      next=%04x       end=%lu\n", w/80, scan->start, (scan->next->start), end+1);
                        //printf("==================\n");
                        strcat(scratch0, "\n");
-               }/*else {//if(scan->next->start <= scan->start){
+               }
+#if 0
+               else {//if(scan->next->start <= scan->start){
                        scan->next->start=scan->start+0x1000;
                        strcat(scratch0, AARESET);
                        strcat(scratch0, "\n");
@@ -1343,7 +1353,8 @@ void MM_ShowMemory(global_game_variables_t *gvar)
                        printf("w=%x    start=%x        next=%x end=%u\n", w, scan->start, (scan->next->start), end+1);
                        printf("================\n");
                        getch();
-               }*/
+               }
+#endif
                strcat(scratch0, AARESET);
                //strcat(scratch0,"\n");
                strcat(scratch,"Seg:");
index 4640038..8e17be2 100755 (executable)
@@ -35,6 +35,9 @@ updated
 #include "src/lib/16_rf.h"\r
 #pragma hdrstop\r
 \r
+struct glob_game_vars *gvar;\r
+static word far* clockw= (word far*) 0x046C; /* 18.2hz clock */\r
+\r
 /*\r
 =============================================================================\r
 \r
@@ -366,7 +369,7 @@ void RF_FixOfs (void)
                displayofs = screenstart[screenpage];\r
                bufferofs = screenstart[otherpage];\r
                masterofs = screenstart[2];\r
-               VW_SetScreen (displayofs,0);\r
+               VL_SetScreen (displayofs,0);\r
        }\r
        else\r
        {\r
@@ -403,7 +406,7 @@ void RF_NewMap (void)
 // make a lookup table for the maps left edge\r
 //\r
        if (mapheight > MAXMAPHEIGHT)\r
-       Quit ("RF_NewMap: Map too tall!");\r
+       Quit (gvar, "RF_NewMap: Map too tall!");\r
        spot = 0;\r
        for (i=0;i<mapheight;i++)\r
        {\r
@@ -502,7 +505,7 @@ void RF_MarkTileGraphics (void)
                                // new chain of animating tiles\r
 \r
                                if (i>=MAXANIMTYPES)\r
-                                       Quit ("RF_MarkTileGraphics: Too many unique animated tiles!");\r
+                                       Quit (gvar, "RF_MarkTileGraphics: Too many unique animated tiles!");\r
                                allanims[i].current = tile;\r
                                allanims[i].count = tinf[SPEED+tile];\r
 \r
@@ -516,7 +519,7 @@ void RF_MarkTileGraphics (void)
                                        CA_MarkGrChunk(STARTTILE16+next);\r
                                        next += (signed char)(tinf[ANIM+next]);\r
                                        if (++anims > 20)\r
-                                               Quit ("MarkTileGraphics: Unending animation!");\r
+                                               Quit (gvar, "MarkTileGraphics: Unending animation!");\r
                                }\r
 \r
                        }\r
@@ -552,7 +555,7 @@ nextback:
                                // new chain of animating tiles\r
 \r
                                if (i>=MAXANIMTYPES)\r
-                                       Quit ("RF_MarkTileGraphics: Too many unique animated tiles!");\r
+                                       Quit (gvar, "RF_MarkTileGraphics: Too many unique animated tiles!");\r
                                allanims[i].current = tilehigh;\r
                                allanims[i].count = tinf[MSPEED+tile];\r
 \r
@@ -566,7 +569,7 @@ nextback:
                                        CA_MarkGrChunk(STARTTILE16M+next);\r
                                        next += (signed char)(tinf[MANIM+next]);\r
                                        if (++anims > 20)\r
-                                               Quit ("MarkTileGraphics: Unending animation!");\r
+                                               Quit (gvar, "MarkTileGraphics: Unending animation!");\r
                                }\r
 \r
                        }\r
@@ -633,7 +636,7 @@ void RFL_CheckForAnimTile (unsigned x, unsigned y)
        if (tinf[ANIM+tile] && tinf[SPEED+tile])\r
        {\r
                if (!animfreeptr)\r
-                       Quit ("RF_CheckForAnimTile: No free spots in tilearray!");\r
+                       Quit (gvar, "RF_CheckForAnimTile: No free spots in tilearray!");\r
                anim = animfreeptr;\r
                animfreeptr = animfreeptr->nexttile;\r
                next = animhead;                                // stick it at the start of the list\r
@@ -658,7 +661,7 @@ void RFL_CheckForAnimTile (unsigned x, unsigned y)
        if (tinf[MANIM+tile] && tinf[MSPEED+tile])\r
        {\r
                if (!animfreeptr)\r
-                       Quit ("RF_CheckForAnimTile: No free spots in tilearray!");\r
+                       Quit (gvar, "RF_CheckForAnimTile: No free spots in tilearray!");\r
                anim = animfreeptr;\r
                animfreeptr = animfreeptr->nexttile;\r
                next = animhead;                                // stick it at the start of the list\r
@@ -841,7 +844,7 @@ void RFL_AnimateTiles (void)
                        y = current->y-originytile;\r
 \r
                        if (x>=PORTTILESWIDE || y>=PORTTILESHIGH)\r
-                               Quit ("RFL_AnimateTiles: Out of bounds!");\r
+                               Quit (gvar, "RFL_AnimateTiles: Out of bounds!");\r
 \r
                        updateofs = uwidthtable[y] + x;\r
                        RFL_NewTile(updateofs);                         // puts "1"s in both pages\r
@@ -960,13 +963,13 @@ void RF_SetScrollBlock (int x, int y, boolean horizontal)
        {\r
                hscrolledge[hscrollblocks] = y;\r
                if (hscrollblocks++ == MAXSCROLLEDGES)\r
-                       Quit ("RF_SetScrollBlock: Too many horizontal scroll blocks");\r
+                       Quit (gvar, "RF_SetScrollBlock: Too many horizontal scroll blocks");\r
        }\r
        else\r
        {\r
                vscrolledge[vscrollblocks] = x;\r
                if (vscrollblocks++ == MAXSCROLLEDGES)\r
-                       Quit ("RF_SetScrollBlock: Too many vertical scroll blocks");\r
+                       Quit (gvar, "RF_SetScrollBlock: Too many vertical scroll blocks");\r
        }\r
 }\r
 \r
@@ -1112,7 +1115,7 @@ void      RFL_NewRow (int dir)
                count = PORTTILESHIGH;\r
                break;\r
        default:\r
-               Quit ("RFL_NewRow: Bad dir!");\r
+               Quit (gvar, "RFL_NewRow: Bad dir!");\r
        }\r
 \r
        while (count--)\r
@@ -1154,7 +1157,7 @@ void RF_ForceRefresh (void)
 =\r
 =====================\r
 */\r
-\r
+/*++++\r
 void RF_MapToMap (unsigned srcx, unsigned srcy,\r
                                  unsigned destx, unsigned desty,\r
                                  unsigned width, unsigned height)\r
@@ -1219,7 +1222,7 @@ void RF_MapToMap (unsigned srcx, unsigned srcy,
                        }\r
                }\r
 }\r
-\r
+*/\r
 //===========================================================================\r
 \r
 \r
@@ -1233,7 +1236,7 @@ void RF_MapToMap (unsigned srcx, unsigned srcy,
 =\r
 =====================\r
 */\r
-\r
+/*++++\r
 void RF_MemToMap (unsigned far *source, unsigned plane,\r
                                  unsigned destx, unsigned desty,\r
                                  unsigned width, unsigned height)\r
@@ -1276,7 +1279,7 @@ void RF_MemToMap (unsigned far *source, unsigned plane,
                                RFL_CheckForAnimTile (destx+x,desty+y);\r
                        }\r
                }\r
-}\r
+}*/\r
 \r
 //===========================================================================\r
 \r
@@ -1426,6 +1429,7 @@ void RF_RedrawBlock (int x, int y, int width, int height)
 void RF_CalcTics (void)\r
 {\r
        long    newtime,oldtimecount;\r
+       word TimeCount = *clockw;\r
 \r
 //\r
 // calculate tics since last refresh for adaptive timing\r
@@ -1676,11 +1680,11 @@ void RF_Scroll (int x, int y)
                        oldscreen = screenstart[i] - screenmove;\r
                        newscreen = oldscreen + screencopy;\r
                        screenstart[i] = newscreen + screenmove;\r
-                       VW_ScreenToScreen (oldscreen,newscreen,\r
+//++++                 VW_ScreenToScreen (oldscreen,newscreen,\r
                                PORTTILESWIDE*2,PORTTILESHIGH*16);\r
 \r
                        if (i==screenpage)\r
-                               VW_SetScreen(newscreen+oldpanadjust,oldpanx & xpanmask);\r
+                               VL_SetScreen(newscreen+oldpanadjust,oldpanx & xpanmask);\r
                }\r
        }\r
        bufferofs = screenstart[otherpage];\r
@@ -1826,7 +1830,7 @@ void RF_PlaceSprite (void **user,unsigned globalx,unsigned globaly,
        // this is a brand new sprite, so allocate a block from the array\r
 \r
                if (!spritefreeptr)\r
-                       Quit ("RF_PlaceSprite: No free spots in spritearray!");\r
+                       Quit (gvar, "RF_PlaceSprite: No free spots in spritearray!");\r
 \r
                sprite = spritefreeptr;\r
                spritefreeptr = spritefreeptr->nextsprite;\r
@@ -2013,7 +2017,7 @@ void RFL_EraseBlocks (void)
        // erase the block by copying from the master screen\r
        //\r
                pos = ylookup[block->screeny]+block->screenx;\r
-               VW_ScreenToScreen (masterofs+pos,bufferofs+pos,\r
+//++++         VW_ScreenToScreen (masterofs+pos,bufferofs+pos,\r
                        block->width,block->height);\r
 \r
        //\r
@@ -2161,7 +2165,7 @@ redraw:
                        switch (sprite->draw)\r
                        {\r
                        case spritedraw:\r
-                               VW_MaskBlock(grsegs[sprite->grseg], sourceofs,\r
+//++++                         VW_MaskBlock(grsegs[sprite->grseg], sourceofs,\r
                                        dest,sprite->width,height,sprite->planesize);\r
                                break;\r
 \r
@@ -2235,7 +2239,7 @@ void RF_Refresh (void)
 //\r
 // display the changed screen\r
 //\r
-       VW_SetScreen(bufferofs+panadjust,panx & xpanmask);\r
+       VL_SetScreen(bufferofs+panadjust,panx & xpanmask);\r
 \r
 //\r
 // prepare for next refresh\r
@@ -2499,7 +2503,7 @@ void RF_PlaceSprite (void **user,unsigned globalx,unsigned globaly,
        // this is a brand new sprite, so allocate a block from the array\r
 \r
                if (!spritefreeptr)\r
-                       Quit ("RF_PlaceSprite: No free spots in spritearray!");\r
+                       Quit (gvar, "RF_PlaceSprite: No free spots in spritearray!");\r
 \r
                sprite = spritefreeptr;\r
                spritefreeptr = spritefreeptr->nextsprite;\r
@@ -2676,7 +2680,7 @@ void RFL_EraseBlocks (void)
                pos = ylookup[block->screeny]+block->screenx;\r
                block->width = (block->width + (pos&1) + 1)& ~1;\r
                pos &= ~1;                              // make sure a word copy gets used\r
-               VW_ScreenToScreen (masterofs+pos,bufferofs+pos,\r
+//++++         VW_ScreenToScreen (masterofs+pos,bufferofs+pos,\r
                        block->width,block->height);\r
 \r
        //\r
index 7dff0b1..e70fb10 100755 (executable)
@@ -70,6 +70,7 @@
 #define NUMTILE16M   1206\r
 #define        SPEED   502\r
 #define ANIM   (SPEED+NUMTILE16)\r
+#define DEMOTICS                       3\r
 \r
 #define NORTHWALL      (ANIM+NUMTILE16)\r
 #define EASTWALL       (NORTHWALL+NUMTILE16M)\r
diff --git a/video.ofs.bufferofs b/video.ofs.bufferofs
deleted file mode 100755 (executable)
index e69de29..0000000
diff --git a/video.ofs.displayofs b/video.ofs.displayofs
deleted file mode 100755 (executable)
index e69de29..0000000