From 4b957f5e39b063de7e50121ce333b84413407820 Mon Sep 17 00:00:00 2001 From: sparky4 Date: Tue, 27 Jun 2017 15:31:10 -0500 Subject: [PATCH] reverted compleately because i need to dissscuss this with the other devs of p16 --- DEBUG.16W | 210 +++++++++++++++++++++--------------------- HEAP.16W | 76 +++++++-------- INPUTEST.16W | 0 ps.exe | Bin 11724 -> 15350 bytes src/exmmtest.h | 2 +- src/lib/16_hc.c | 20 ++-- src/lib/16_hc.h | 4 +- src/lib/16_head.h | 1 + src/lib/16_in.c | 6 +- src/lib/16_in.h | 4 +- src/lib/16_map.c | 16 ++-- src/lib/16_mm.c | 5 +- src/lib/16_mm.h | 2 +- src/lib/nyan/kitten.c | 2 +- 14 files changed, 175 insertions(+), 173 deletions(-) delete mode 100755 INPUTEST.16W diff --git a/DEBUG.16W b/DEBUG.16W index 96a1d638..7ef64269 100755 --- a/DEBUG.16W +++ b/DEBUG.16W @@ -1,209 +1,209 @@ -Seg:0 Size:7869 Owner:0x0 -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++Seg:1ebd Size:256 Owner:0x5ddc +Seg:0 Size:8025 Owner:0x0 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++Seg:1f59 Size:256 Owner:0x5ddc 0 -Seg:1fbd Size:256 Owner:0x1c12 +Seg:2059 Size:256 Owner:0x1c12 0 -Seg:20bd Size:256 Owner:0x1c14 +Seg:2159 Size:256 Owner:0x1c14 0 -Seg:21ed Size:76 Owner:0x0 +Seg:2289 Size:76 Owner:0x0 0 -Seg:2239 Size:256 Owner:0x1c16 +Seg:22d5 Size:256 Owner:0x1c16 0 -Seg:2339 Size:256 Owner:0x1c18 +Seg:23d5 Size:256 Owner:0x1c18 0 -Seg:2439 Size:256 Owner:0x1c1a +Seg:24d5 Size:256 Owner:0x1c1a 0 -Seg:2539 Size:256 Owner:0x1c1c +Seg:25d5 Size:256 Owner:0x1c1c 0 -Seg:2639 Size:256 Owner:0x1c1e +Seg:26d5 Size:256 Owner:0x1c1e 0 -Seg:2739 Size:256 Owner:0x1c20 +Seg:27d5 Size:256 Owner:0x1c20 0 -Seg:2839 Size:256 Owner:0x1c22 +Seg:28d5 Size:256 Owner:0x1c22 0 -Seg:2939 Size:256 Owner:0x1c24 +Seg:29d5 Size:256 Owner:0x1c24 0 -Seg:2a39 Size:256 Owner:0x1c26 +Seg:2ad5 Size:256 Owner:0x1c26 0 -Seg:2b39 Size:256 Owner:0x1c28 +Seg:2bd5 Size:256 Owner:0x1c28 0 -Seg:2c39 Size:256 Owner:0x1c2a +Seg:2cd5 Size:256 Owner:0x1c2a 0 -Seg:2d39 Size:256 Owner:0x1c2c +Seg:2dd5 Size:256 Owner:0x1c2c 0 -Seg:2e39 Size:256 Owner:0x1c2e +Seg:2ed5 Size:256 Owner:0x1c2e 0 -Seg:2f39 Size:256 Owner:0x1c30 +Seg:2fd5 Size:256 Owner:0x1c30 0 -Seg:3039 Size:256 Owner:0x1c32 +Seg:30d5 Size:256 Owner:0x1c32 0 -Seg:3139 Size:256 Owner:0x1c34 +Seg:31d5 Size:256 Owner:0x1c34 0 -Seg:3239 Size:256 Owner:0x1c36 +Seg:32d5 Size:256 Owner:0x1c36 0 -Seg:3339 Size:256 Owner:0x1c38 +Seg:33d5 Size:256 Owner:0x1c38 0 -Seg:3439 Size:256 Owner:0x1c3a +Seg:34d5 Size:256 Owner:0x1c3a 0 -Seg:3539 Size:256 Owner:0x1c3c +Seg:35d5 Size:256 Owner:0x1c3c 0 -Seg:3639 Size:256 Owner:0x1c3e +Seg:36d5 Size:256 Owner:0x1c3e 0 -Seg:3739 Size:256 Owner:0x1c40 +Seg:37d5 Size:256 Owner:0x1c40 0 -Seg:3839 Size:256 Owner:0x1c42 +Seg:38d5 Size:256 Owner:0x1c42 0 -Seg:3939 Size:256 Owner:0x1c44 +Seg:39d5 Size:256 Owner:0x1c44 0 -Seg:3a39 Size:256 Owner:0x1c46 +Seg:3ad5 Size:256 Owner:0x1c46 0 -Seg:3b39 Size:256 Owner:0x1c48 +Seg:3bd5 Size:256 Owner:0x1c48 0 -Seg:3c39 Size:256 Owner:0x1c4a +Seg:3cd5 Size:256 Owner:0x1c4a 0 -Seg:3d39 Size:256 Owner:0x1c4c +Seg:3dd5 Size:256 Owner:0x1c4c 0 -Seg:3e39 Size:256 Owner:0x1c4e +Seg:3ed5 Size:256 Owner:0x1c4e 0 -Seg:3f39 Size:256 Owner:0x1c50 +Seg:3fd5 Size:256 Owner:0x1c50 0 -Seg:4039 Size:256 Owner:0x1c52 +Seg:40d5 Size:256 Owner:0x1c52 0 -Seg:4139 Size:256 Owner:0x1c54 +Seg:41d5 Size:256 Owner:0x1c54 0 -Seg:4239 Size:256 Owner:0x1c56 +Seg:42d5 Size:256 Owner:0x1c56 0 -Seg:4339 Size:256 Owner:0x1c58 +Seg:43d5 Size:256 Owner:0x1c58 0 -Seg:4439 Size:256 Owner:0x1c5a +Seg:44d5 Size:256 Owner:0x1c5a 0 -Seg:4539 Size:256 Owner:0x1c5c +Seg:45d5 Size:256 Owner:0x1c5c 0 -Seg:4639 Size:256 Owner:0x1c5e +Seg:46d5 Size:256 Owner:0x1c5e 0 -Seg:4739 Size:256 Owner:0x1c60 +Seg:47d5 Size:256 Owner:0x1c60 0 -Seg:4839 Size:256 Owner:0x1c62 +Seg:48d5 Size:256 Owner:0x1c62 0 -Seg:4939 Size:256 Owner:0x1c64 +Seg:49d5 Size:256 Owner:0x1c64 0 -Seg:4a39 Size:256 Owner:0x1c66 +Seg:4ad5 Size:256 Owner:0x1c66 0 -Seg:4b39 Size:256 Owner:0x1c68 +Seg:4bd5 Size:256 Owner:0x1c68 0 -Seg:4c39 Size:256 Owner:0x1c6a +Seg:4cd5 Size:256 Owner:0x1c6a 0 -Seg:4d39 Size:256 Owner:0x1c6c +Seg:4dd5 Size:256 Owner:0x1c6c 0 -Seg:4e39 Size:256 Owner:0x1c6e +Seg:4ed5 Size:256 Owner:0x1c6e 0 -Seg:4f39 Size:256 Owner:0x1c70 +Seg:4fd5 Size:256 Owner:0x1c70 0 -Seg:5039 Size:256 Owner:0x1c72 +Seg:50d5 Size:256 Owner:0x1c72 0 -Seg:5139 Size:256 Owner:0x1c74 +Seg:51d5 Size:256 Owner:0x1c74 0 -Seg:5239 Size:256 Owner:0x1c76 +Seg:52d5 Size:256 Owner:0x1c76 0 -Seg:5339 Size:256 Owner:0x1c78 +Seg:53d5 Size:256 Owner:0x1c78 0 -Seg:5439 Size:256 Owner:0x1c7a +Seg:54d5 Size:256 Owner:0x1c7a 0 -Seg:5539 Size:256 Owner:0x1c7c +Seg:55d5 Size:256 Owner:0x1c7c 0 -Seg:5639 Size:256 Owner:0x1c7e +Seg:56d5 Size:256 Owner:0x1c7e 0 -Seg:5739 Size:256 Owner:0x1c80 +Seg:57d5 Size:256 Owner:0x1c80 0 -Seg:5839 Size:256 Owner:0x1c82 +Seg:58d5 Size:256 Owner:0x1c82 0 -Seg:5939 Size:256 Owner:0x1c84 +Seg:59d5 Size:256 Owner:0x1c84 0 -Seg:5a39 Size:256 Owner:0x1c86 +Seg:5ad5 Size:256 Owner:0x1c86 0 -Seg:5b39 Size:256 Owner:0x1c88 +Seg:5bd5 Size:256 Owner:0x1c88 0 -Seg:5c39 Size:256 Owner:0x1c8a +Seg:5cd5 Size:256 Owner:0x1c8a 0 -Seg:5d39 Size:256 Owner:0x1c8c +Seg:5dd5 Size:256 Owner:0x1c8c 0 -Seg:5e39 Size:256 Owner:0x1c8e +Seg:5ed5 Size:256 Owner:0x1c8e 0 -Seg:5f39 Size:256 Owner:0x1c90 +Seg:5fd5 Size:256 Owner:0x1c90 0 -Seg:6039 Size:256 Owner:0x1c92 +Seg:60d5 Size:256 Owner:0x1c92 0 -Seg:6139 Size:256 Owner:0x1c94 +Seg:61d5 Size:256 Owner:0x1c94 0 -Seg:6239 Size:256 Owner:0x1c96 +Seg:62d5 Size:256 Owner:0x1c96 0 -Seg:6339 Size:256 Owner:0x1c98 +Seg:63d5 Size:256 Owner:0x1c98 0 -Seg:6439 Size:256 Owner:0x1c9a +Seg:64d5 Size:256 Owner:0x1c9a 0 -Seg:6539 Size:256 Owner:0x1c9c +Seg:65d5 Size:256 Owner:0x1c9c 0 -Seg:6639 Size:256 Owner:0x1c9e +Seg:66d5 Size:256 Owner:0x1c9e 0 -Seg:6739 Size:256 Owner:0x1ca0 +Seg:67d5 Size:256 Owner:0x1ca0 0 -Seg:6839 Size:256 Owner:0x1ca2 +Seg:68d5 Size:256 Owner:0x1ca2 0 -Seg:6939 Size:256 Owner:0x1ca4 +Seg:69d5 Size:256 Owner:0x1ca4 0 -Seg:6a39 Size:256 Owner:0x1ca6 +Seg:6ad5 Size:256 Owner:0x1ca6 0 -Seg:6b39 Size:256 Owner:0x1ca8 +Seg:6bd5 Size:256 Owner:0x1ca8 0 -Seg:6c39 Size:256 Owner:0x1caa +Seg:6cd5 Size:256 Owner:0x1caa 0 -Seg:6d39 Size:256 Owner:0x1cac +Seg:6dd5 Size:256 Owner:0x1cac 0 -Seg:6e39 Size:256 Owner:0x1cae +Seg:6ed5 Size:256 Owner:0x1cae 0 -Seg:6f39 Size:256 Owner:0x1cb0 +Seg:6fd5 Size:256 Owner:0x1cb0 0 -Seg:7039 Size:256 Owner:0x1cb2 +Seg:70d5 Size:256 Owner:0x1cb2 0 -Seg:7139 Size:256 Owner:0x1cb4 +Seg:71d5 Size:256 Owner:0x1cb4 0 -Seg:7239 Size:256 Owner:0x1cb6 +Seg:72d5 Size:256 Owner:0x1cb6 0 -Seg:7339 Size:256 Owner:0x1cb8 +Seg:73d5 Size:256 Owner:0x1cb8 0 -Seg:7439 Size:256 Owner:0x1cba +Seg:74d5 Size:256 Owner:0x1cba 0 -Seg:7539 Size:256 Owner:0x1cbc +Seg:75d5 Size:256 Owner:0x1cbc 0 -Seg:7639 Size:256 Owner:0x1cbe +Seg:76d5 Size:256 Owner:0x1cbe 0 -Seg:7739 Size:256 Owner:0x1cc0 +Seg:77d5 Size:256 Owner:0x1cc0 0 -Seg:7839 Size:256 Owner:0x1cc2 +Seg:78d5 Size:256 Owner:0x1cc2 0 -Seg:7939 Size:256 Owner:0x1cc4 +Seg:79d5 Size:256 Owner:0x1cc4 0 -Seg:7a39 Size:256 Owner:0x1cc6 +Seg:7ad5 Size:256 Owner:0x1cc6 0 -Seg:7b39 Size:256 Owner:0x1cc8 +Seg:7bd5 Size:256 Owner:0x1cc8 0 -Seg:7c39 Size:256 Owner:0x1cca +Seg:7cd5 Size:256 Owner:0x1cca 0 -Seg:7d39 Size:256 Owner:0x1ccc +Seg:7dd5 Size:256 Owner:0x1ccc 0 -Seg:7e39 Size:256 Owner:0x1cce +Seg:7ed5 Size:256 Owner:0x1cce 0 -Seg:7f39 Size:256 Owner:0x1cd0 +Seg:7fd5 Size:256 Owner:0x1cd0 0 -Seg:8039 Size:256 Owner:0x1cd2 +Seg:80d5 Size:256 Owner:0x1cd2 0 -Seg:8139 Size:256 Owner:0x1cd4 +Seg:81d5 Size:256 Owner:0x1cd4 0 -Seg:8239 Size:256 Owner:0x1cd6 +Seg:82d5 Size:256 Owner:0x1cd6 0 -Seg:8339 Size:256 Owner:0x1cd8 +Seg:83d5 Size:256 Owner:0x1cd8 0 -Seg:8439 Size:273 Owner:0x5ddc +Seg:84d5 Size:273 Owner:0x5ddc 00000000000000000000000000000000000000000000000000000000000000000000000000000000 -Seg:9e24 Size:25051 Owner:0x0 +Seg:9ec1 Size:24894 Owner:0x0  \ No newline at end of file diff --git a/HEAP.16W b/HEAP.16W index d03bd8bc..35aa4f0d 100755 --- a/HEAP.16W +++ b/HEAP.16W @@ -1,51 +1,55 @@ == near == - USED block at 1d37:da06 of size 12 - USED block at 1d37:da12 of size 320 - USED block at 1d37:db52 of size 52 - USED block at 1d37:db86 of size 20 - USED block at 1d37:db9a of size 20 - USED block at 1d37:dbae of size 20 - USED block at 1d37:dbc2 of size 20 - USED block at 1d37:dbd6 of size 20 - FREE block at 1d37:dbea of size 9234 + USED block at 1e27:da06 of size 12 + USED block at 1e27:da12 of size 320 + USED block at 1e27:db52 of size 52 + USED block at 1e27:db86 of size 20 + USED block at 1e27:db9a of size 20 + USED block at 1e27:dbae of size 20 + USED block at 1e27:dbc2 of size 20 + USED block at 1e27:dbd6 of size 20 + FREE block at 1e27:dbea of size 9234 OK - end of heap == far == - USED block at 2d38:0016 of size 8002 - USED block at 2d38:1f58 of size 20 - USED block at 2d38:1f6c of size 66 - USED block at 2d38:1fae of size 50 - USED block at 2d38:1fe0 of size 50 - USED block at 2d38:2012 of size 50 - USED block at 2d38:2044 of size 50 - USED block at 2d38:2076 of size 50 - USED block at 2d38:20a8 of size 50 - USED block at 2d38:20da of size 50 - USED block at 2d38:210c of size 50 - USED block at 2d38:213e of size 50 - USED block at 2d38:2170 of size 50 - USED block at 2d38:21a2 of size 50 - USED block at 2d38:21d4 of size 50 - FREE block at 2d38:2206 of size 29552 - USED block at 2d38:9576 of size 1202 - USED block at 2d38:9a28 of size 1202 - USED block at 2d38:9eda of size 1202 - USED block at 2d38:a38c of size 136 - USED block at 2d38:a414 of size 22 - FREE block at 2d38:a42a of size 8202 - FREE block at 2d38:c434 of size 59406 + USED block at 2e28:0016 of size 65342 + USED block at 2e28:ff54 of size 20 + USED block at 2e28:ff68 of size 136 + FREE block at 2e28:fff0 of size 12 + USED block at 3e29:0016 of size 66 + USED block at 3e29:0058 of size 50 + USED block at 3e29:008a of size 50 + USED block at 3e29:00bc of size 50 + USED block at 3e29:00ee of size 50 + USED block at 3e29:0120 of size 50 + USED block at 3e29:0152 of size 50 + USED block at 3e29:0184 of size 50 + USED block at 3e29:01b6 of size 50 + USED block at 3e29:01e8 of size 50 + USED block at 3e29:021a of size 50 + USED block at 3e29:024c of size 50 + USED block at 3e29:027e of size 50 + FREE block at 3e29:02b0 of size 29552 + USED block at 3e29:7620 of size 1202 + USED block at 3e29:7ad2 of size 1202 + USED block at 3e29:7f84 of size 1202 + USED block at 3e29:8436 of size 22 + FREE block at 3e29:844c of size 8202 + FREE block at 3e29:a456 of size 3148 + FREE block at 3e29:b0a2 of size 0 ERROR - bad node in heap Memory Type Total Used Free ---------------- -------- -------- -------- Near 9718 484 9234 -Far 44076 12452 31624 +Far 45170 4256 40914 ---------------- -------- -------- -------- HC_coreleft = 9232 -HC_farcoreleft = 462576 +HC_farcoreleft = 396888 +HC_GetNearFreeSize = 9234 +HC_GetFarFreeSize = 40914 coreleft = 9232 -farcoreleft = 462576 -stackavail = 23306 +farcoreleft = 396888 +stackavail = 23262 diff --git a/INPUTEST.16W b/INPUTEST.16W deleted file mode 100755 index e69de29b..00000000 diff --git a/ps.exe b/ps.exe index 670342e28ec3affe0ce24cb4e0c6ce9ec324edf5..27626767d020fc051638375e5586e5a5d81cfb26 100755 GIT binary patch literal 15350 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 zh_free=0; hu->h_total=0; hu->h_used=0; h_info->_pentry = NULL; for(;;) { - if(nearfarswitch==0) hu->heap_status = _nheapwalk( (struct _heapinfo *)h_info ); - else if(nearfarswitch==1) hu->heap_status = _fheapwalk( (struct _heapinfo *)h_info ); + if(nearfarswitch==0) hu->heap_status = _nheapwalk( h_info ); + else if(nearfarswitch==1) hu->heap_status = _fheapwalk( h_info ); if( hu->heap_status != _HEAPOK ) break; if((h_info->_useflag == _USEDENTRY ? "USED" : "FREE")=="FREE") hu->h_free += h_info->_size; if((h_info->_useflag == _USEDENTRY ? "USED" : "FREE")=="USED") hu->h_used += h_info->_size; @@ -438,7 +438,7 @@ void HC_heapdump(global_game_variables_t *gvar) nh_info._pentry = NULL; nh_free=0; nh_total=0; nh_used=0; for(;;) { - heap_status = _nheapwalk( (struct _heapinfo *)&nh_info ); + heap_status = _nheapwalk( &nh_info ); if( heap_status != _HEAPOK ) break; strcpy(scratch," "); strcat(scratch,(nh_info._useflag == _USEDENTRY ? "USED" : "FREE")); strcat(scratch," block at "); sprintf(str, "%Fp", nh_info._pentry); //ultoa((dword)nh_info._pentry,str,16); @@ -459,7 +459,7 @@ nh_info._pentry, nh_info._size );*/ fh_info._pentry = NULL; fh_free=0; fh_total=0; fh_used=0; for(;;) { - heap_status = _fheapwalk( (struct _heapinfo *)&fh_info ); + heap_status = _fheapwalk( &fh_info ); if( heap_status != _HEAPOK ) break; strcpy(scratch," "); strcat(scratch,(fh_info._useflag == _USEDENTRY ? "USED" : "FREE")); strcat(scratch," block at "); sprintf(str, "%Fp", fh_info._pentry); //ultoa((dword)fh_info._pentry,str,16); @@ -549,15 +549,11 @@ dword farcoreleft() // return 0x90000UL-16UL; // #endif -#if !defined(__LARGE__) && !defined(__COMPACT__) && !defined(__HUGE__) -//---- - return 0x90000UL+16UL; +//---- return 0x90000UL+16UL; //---- return 589824UL+16UL; -#else //++++ return HC_farcoreleft(); //stack overflows return HC_GetFarFreeSize(); -#endif } dword coreleft() diff --git a/src/lib/16_hc.h b/src/lib/16_hc.h index 05774e8c..36b95841 100755 --- a/src/lib/16_hc.h +++ b/src/lib/16_hc.h @@ -50,9 +50,9 @@ typedef struct heapusage #endif //long HC_Newfarcoreleft(); -void __near* HC_LargestFreeBlock(size_t __far* Size); +void __near* HC_LargestFreeBlock(size_t* Size); size_t HC_coreleft(void); -void far* HC_LargestFarFreeBlock(dword __far* Size); +void far* HC_LargestFarFreeBlock(dword* Size); unsigned long HC_farcoreleft(void); //size_t HC_GetFreeSize(void); unsigned long HC_GetFarFreeSize(void); diff --git a/src/lib/16_head.h b/src/lib/16_head.h index 0d86cd24..1c95d512 100755 --- a/src/lib/16_head.h +++ b/src/lib/16_head.h @@ -162,6 +162,7 @@ extern int profilehandle,debughandle; //make it into game global #define nil ((void *)0) #ifdef __WATCOMC__ +//#define _FCORELEFT 0x90000UL+16UL /*static union REGS CPURegs; #define _AX CPURegs.x.ax diff --git a/src/lib/16_in.c b/src/lib/16_in.c index eb71b1ae..c543caf9 100755 --- a/src/lib/16_in.c +++ b/src/lib/16_in.c @@ -267,7 +267,7 @@ void INL_Mouse(int x) // /////////////////////////////////////////////////////////////////////////// static void -INL_GetMouseDelta(int __far*x,int __far*y) +INL_GetMouseDelta(int *x,int *y) { union REGS CPURegs; Mouse(MDelta); @@ -298,7 +298,7 @@ INL_GetMouseButtons(void) // /////////////////////////////////////////////////////////////////////////// void -IN_GetJoyAbs(word joy,word __far*xp,word __far*yp) +IN_GetJoyAbs(word joy,word *xp,word *yp) { byte xb,yb, xs,ys; @@ -387,7 +387,7 @@ done: // joystick (from +/-127) // /////////////////////////////////////////////////////////////////////////// -void INL_GetJoyDelta(word joy,int __far*dx,int __far*dy/*,boolean adaptive*/, global_game_variables_t *gvar) +void INL_GetJoyDelta(word joy,int *dx,int *dy/*,boolean adaptive*/, global_game_variables_t *gvar) { word x,y; word TimeCount = *clockw; diff --git a/src/lib/16_in.h b/src/lib/16_in.h index 01d7ec1c..c2b4b622 100755 --- a/src/lib/16_in.h +++ b/src/lib/16_in.h @@ -224,7 +224,7 @@ extern void IN_Startup(global_game_variables_t *gvar),IN_Shutdown(global_game_v IN_ReadCursor(CursorInfo *, global_game_variables_t *gvar), IN_ReadControl(player_t *player, global_game_variables_t *gvar), IN_SetControlType(player_t *player,ControlType type), - IN_GetJoyAbs(word joy,word __far*xp,word __far*yp), + IN_GetJoyAbs(word joy,word *xp,word *yp), IN_SetupJoy(word joy,word minx,word maxx, word miny,word maxy, global_game_variables_t *gvar), #if DEMO0 @@ -241,7 +241,7 @@ extern byte *IN_GetScanName(ScanCode); byte IN_MouseButtons (global_game_variables_t *gvar); byte IN_JoyButtons (void); -void INL_GetJoyDelta(word joy,int __far*dx,int __far*dy/*,boolean adaptive*/, global_game_variables_t *gvar); +void INL_GetJoyDelta(word joy,int *dx,int *dy/*,boolean adaptive*/, global_game_variables_t *gvar); void IN_StartAck(global_game_variables_t *gvar); boolean IN_CheckAck (global_game_variables_t *gvar); boolean IN_IsUserInput(global_game_variables_t *gvar); diff --git a/src/lib/16_map.c b/src/lib/16_map.c index 17999219..4582bc68 100755 --- a/src/lib/16_map.c +++ b/src/lib/16_map.c @@ -180,7 +180,7 @@ int newloadmap(char *mn, map_t *map) { int status; /* Prepare parser */ - jsmn_init((jsmn_parser *)&p); + jsmn_init(&p); file_s = filesize(fh); js = malloc(file_s);//TODO: USE MM_ CA_ AND PM_ @@ -195,11 +195,11 @@ int newloadmap(char *mn, map_t *map) { fclose(fh); return 1; } - tokcount = jsmn_parse((jsmn_parser *)&p, js, file_s, NULL, 0); + tokcount = jsmn_parse(&p, js, file_s, NULL, 0); tok = malloc(tokcount*sizeof(jsmntok_t));//TODO: USE MM_ CA_ AND PM_ printf("Allocated %d tokens", tokcount); - jsmn_init((jsmn_parser *)&p); - if((status = jsmn_parse((jsmn_parser *)&p, js, file_s, tok, tokcount)) < 0) + jsmn_init(&p); + if((status = jsmn_parse(&p, js, file_s, tok, tokcount)) < 0) { printf("Error: %d\n", status); return status; @@ -228,15 +228,15 @@ int CA_loadmap(char *mn, map_t *map, global_game_variables_t *gvar) int status; /* Prepare parser */ - jsmn_init((jsmn_parser *)&p); + jsmn_init(&p); file_s = filesize(fh); CA_LoadFile(mn, MEMPTRCONV MAPSEGINLM, gvar); - tokcount = jsmn_parse((jsmn_parser *)&p, (char const *)MAPSEGINLM, file_s, NULL, 0); + tokcount = jsmn_parse(&p, (char const *)MAPSEGINLM, file_s, NULL, 0); tok = malloc(tokcount*sizeof(jsmntok_t));//TODO: USE MM_ CA_ AND PM_ // printf("Allocated %d tokens", tokcount); - jsmn_init((jsmn_parser *)&p); - if((status = jsmn_parse((jsmn_parser *)&p, (char const *)MAPSEGINLM, file_s, tok, tokcount)) < 0) + jsmn_init(&p); + if((status = jsmn_parse(&p, (char const *)MAPSEGINLM, file_s, tok, tokcount)) < 0) { printf("Error: %d\n", status); return status; diff --git a/src/lib/16_mm.c b/src/lib/16_mm.c index 34e6ccb1..544d280a 100755 --- a/src/lib/16_mm.c +++ b/src/lib/16_mm.c @@ -1531,7 +1531,7 @@ void MM_ShowMemory (global_game_variables_t *gvar) } #ifdef MMSMSCANINFO -void MM_ShowMemoryDetail (unsigned x, unsigned y, unsigned w, unsigned q, sdword end, mmshowmemoryinfo_t __far*scaninfo, global_game_variables_t *gvar) +void MM_ShowMemoryDetail (unsigned x, unsigned y, unsigned w, unsigned q, sdword end, mmshowmemoryinfo_t *scaninfo, global_game_variables_t *gvar) { byte scratch1[4]; unsigned maxq = q; @@ -1631,7 +1631,8 @@ void MM_ShowMemoryDetail (unsigned x, unsigned y, unsigned w, unsigned q, sdword printf("%s", AARESET); printf("\n"); } -//0000 fprintf(stdout, "q=%u maxq=%u\n", q, maxq); +//0000printf("%s", AABLACK); fprintf(stdout, "q=%u maxq=%u\n", q, maxq); printf("%s", AARESET); +fprintf(stdout, ""); //this is a HAX to make it decrement and increment properly when it is at 0 and qmax while (!(scancode = gvar->in.inst->LastScan)){} IN_ClearKey(scancode); diff --git a/src/lib/16_mm.h b/src/lib/16_mm.h index 5b7ea51a..8f499423 100755 --- a/src/lib/16_mm.h +++ b/src/lib/16_mm.h @@ -201,7 +201,7 @@ void MM_SetPurge (memptr *baseptr, int purge, global_game_variables_t *gvar); void MM_SetLock (memptr *baseptr, boolean locked, global_game_variables_t *gvar); void MM_SortMem (global_game_variables_t *gvar); void MM_ShowMemory (global_game_variables_t *gvar); -void MM_ShowMemoryDetail (unsigned x, unsigned y, unsigned w, unsigned q, sdword end, mmshowmemoryinfo_t __far*scaninfo, global_game_variables_t *gvar); +void MM_ShowMemoryDetail (unsigned x, unsigned y, unsigned w, unsigned q, sdword end, mmshowmemoryinfo_t *scaninfo, global_game_variables_t *gvar); void MM_DumpData (global_game_variables_t *gvar); dword MM_UnusedMemory (global_game_variables_t *gvar); dword MM_TotalFree (global_game_variables_t *gvar); diff --git a/src/lib/nyan/kitten.c b/src/lib/nyan/kitten.c index d72ab283..2e6e87ba 100755 --- a/src/lib/nyan/kitten.c +++ b/src/lib/nyan/kitten.c @@ -386,7 +386,7 @@ kittenclose (void) * Returns a pointer to input string. */ -int mystrtoul(char __far*src, int base, int size, int __far*error) +int mystrtoul(char *src, int base, int size, int *error) { int ret = 0; -- 2.39.5