]> 4ch.mooo.com Git - 16.git/blob - src/mmtest.c
added a simpler mmtest.c
[16.git] / src / mmtest.c
1 /* Project 16 Source Code~\r
2  * Copyright (C) 2012-2022 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover\r
3  *\r
4  * This file is part of Project 16.\r
5  *\r
6  * Project 16 is free software; you can redistribute it and/or modify\r
7  * it under the terms of the GNU General Public License as published by\r
8  * the Free Software Foundation; either version 3 of the License, or\r
9  * (at your option) any later version.\r
10  *\r
11  * Project 16 is distributed in the hope that it will be useful,\r
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
14  * GNU General Public License for more details.\r
15  *\r
16  * You should have received a copy of the GNU General Public License\r
17  * along with this program.  If not, see <http://www.gnu.org/licenses/>, or\r
18  * write to the Free Software Foundation, Inc., 51 Franklin Street,\r
19  * Fifth Floor, Boston, MA 02110-1301 USA.\r
20  *\r
21  */\r
22 /*\r
23         simple mm test\r
24 */\r
25 #include "src/exmmtest.h"\r
26 \r
27 ////////////////////////////////////////////////////////////////////////////\r
28 \r
29 #ifdef BBUFNAME\r
30 #undef BBUFNAME\r
31 #endif\r
32 #define BBUFNAME bufferseg\r
33 \r
34 #ifdef SCROLLLOAD\r
35 #define FILENAME_1      "data/spri/chikyuu.vrs"\r
36 #define FILENAME_2      "data/test.map"\r
37 #else\r
38 #define FILENAME_1      "data/spri/chikyuu.sht"\r
39 #define FILENAME_2      "data/test.map"\r
40 #endif\r
41 \r
42 //===========================================================================//\r
43 \r
44 //=======================================//\r
45 \r
46 //      main\r
47 \r
48 //=======================================//\r
49 void\r
50 main(int argc, char *argv[])\r
51 {\r
52         static global_game_variables_t gvar;\r
53         static memptr BBUFNAME;\r
54 \r
55         char bakapee1[64] = FILENAME_1;\r
56         char bakapee2[64] = FILENAME_2;\r
57 \r
58                 #ifdef __BORLANDC__\r
59                         argc=argc;\r
60                 #endif\r
61 \r
62 #ifdef __16_PM__\r
63 #ifdef __DEBUG_PM__\r
64         dbg_debugpm=1;  //debug pm\r
65 #endif\r
66 #endif\r
67 #ifdef __DEBUG_CA__\r
68         dbg_debugca=1;\r
69 #endif\r
70 #ifdef __DEBUG_MM__\r
71         dbg_debugmm=1;\r
72 #endif\r
73 \r
74         if(argv[1]){ strcpy(bakapee1, argv[1]);//bakapee1[] = *argv[1];\r
75         if(argv[2]) strcpy(bakapee2, argv[2]); }//bakapee2[] = argv[2]; }\r
76 \r
77         printf("bakapee1[%s]\n", bakapee1);\r
78         printf("bakapee2[%s]\n", bakapee2);\r
79                                                                 #ifdef EXMMVERBOSE__\r
80         printf("coreleft():             %u\n", coreleft());\r
81         printf("farcoreleft():          %ld\n", farcoreleft());\r
82                                                                 #endif\r
83         printf("stackavail()=%u\n", stackavail());\r
84         KEYP\r
85 \r
86         StartupCAMMPM(&gvar);\r
87                                                                 #ifdef PRINTBBDUMP\r
88                                                                 //0000\r
89 PRINTBB; KEYP\r
90                                                                 #endif\r
91 \r
92         IN_Default(0,&gvar.player[0],ctrl_Keyboard1, &gvar);\r
93         IN_SetControlType(&gvar.player[0],ctrl_Keyboard1);\r
94 \r
95         {\r
96         byte w; word baka;\r
97         w=0;\r
98                                                                 #ifdef FILEREADLOAD\r
99                                                                 #ifdef FILEREAD\r
100         for(;w<2;w++)\r
101         {\r
102         //      printf("size of big buffer~=%u\n", _bmsize(segu, BBUF));\r
103                 if(w>0)\r
104                 {\r
105                         printf("======================================read=====================================\n");\r
106                         if(CA_ReadFile(bakapee2, BBUFPTR, &gvar)) baka=1; else baka=0;\r
107                         printf("====================================read end===================================\n");\r
108                 }\r
109                                                                 #endif //FILEREAD\r
110                 if(w==0)\r
111                 {\r
112                         printf("======================================load=====================================\n");\r
113                         if(CA_LoadFile(bakapee1, BBUFPTR, &gvar)) baka=1; else baka=0;\r
114                         printf("====================================load end===================================\n");\r
115                 }\r
116                                                                 #ifdef BUFFDUMP\r
117                 {\r
118                         size_t file_s;\r
119                         FILE *fh;\r
120 \r
121                         if(!w)  fh = fopen(bakapee1, "r");\r
122                         else    fh = fopen(bakapee2, "r");\r
123                         file_s = filesize(fh);\r
124                         fclose(fh);\r
125                 printf("contents of the buffer\n[\n%.*s\n]\n", file_s, BBUFSTRING);\r
126 #if 0\r
127 //0000\r
128 //                      mmblocktype far *scan;\r
129 //                      scan = gvar.mm.mmhead;\r
130 //                      while (scan->useptr != &BBUFNAME && scan)\r
131 //                      {\r
132 //                              scan = scan->next;\r
133 //                      }\r
134 //                      printf("\n      %Fp     %Fp\n", scan->useptr, &BBUFNAME);\r
135                         printf("\nstrlen of buffer = %zu\n", strlen(BBUFSTRING));\r
136                         printf("length of buffer = %zu\n", file_s);\r
137 //                      printf("length of buffer = %lu\n", scan->length);\r
138 #endif\r
139                 }\r
140                                                                 #endif\r
141                                                                 #ifdef PRINTBBDUMP\r
142                 PRINTBB;\r
143                                                                 #endif\r
144 \r
145                 //printf("dark purple = purgable\n");\r
146                 //printf("medium blue = non purgable\n");\r
147                 //printf("red = locked\n");\r
148         //      KEYP\r
149         //      DebugMemory_(&gvar, 1);\r
150                 if(baka) printf("\nyay!\n");\r
151                 else printf("\npoo!\n");\r
152                                                                 #ifdef BUFFDUMPPAUSE\r
153                 KEYP\r
154                                                                 #endif\r
155                                                                 #ifdef FILEREAD\r
156         }\r
157                                                                 #endif\r
158                                                                 #endif  //filereadload\r
159         }\r
160 \r
161 //0000++++\r
162         MM_ShowMemory(&gvar);\r
163 \r
164         DebugMemory_(&gvar, 1);\r
165         MM_DumpData(&gvar);\r
166         KEYP\r
167         MM_Report_(&gvar);\r
168         //printf("bakapee1=%s\n", bakapee1);\r
169         //printf("bakapee2=%s\n", bakapee2);\r
170         MM_FreePtr(BBUFPTR, &gvar);\r
171         ShutdownCAMMPM(&gvar);\r
172         IN_Shutdown(&gvar);\r
173         printf("========================================\n");\r
174         printf("near=   %Fp ",  gvar.mm.nearheap);\r
175         printf("far=    %Fp",                   gvar.mm.farheap);\r
176         printf("\n");\r
177         printf("&near=  %Fp ",  &(gvar.mm.nearheap));\r
178         printf("&far=   %Fp",           &(gvar.mm.farheap));\r
179         printf("\n");\r
180                                                                 #ifdef EXMMVERBOSE\r
181         printf("bigb=   %Fp ",  BBUF);\r
182         //printf("bigbr=        %04x",  BBUF);\r
183         //printf("\n");\r
184         printf("&bigb=%Fp ",            BBUFPTR);\r
185         //printf("&bigb=%04x",          BBUFPTR);\r
186         printf("\n");\r
187                                                                 #endif\r
188         printf("========================================\n");\r
189 \r
190                                                                 #ifdef EXMMVERBOSE__\r
191         printf("coreleft():             %u\n", coreleft());\r
192         printf("farcoreleft():          %ld\n", farcoreleft());\r
193                                                                 #endif\r
194 \r
195         HC_heapdump(&gvar);\r
196         printf("Project 16 ");\r
197 #ifdef __WATCOMC__\r
198         printf("mmtest");\r
199 #endif\r
200 #ifdef __BORLANDC__\r
201         printf("bcmm");\r
202 #endif\r
203         printf(".exe. This is just a test file!\n");\r
204         printf("version %s\n", VERSION);\r
205 \r
206 //end of program\r
207 \r
208 \r
209 #if defined(__DEBUG__) && ( defined(__DEBUG_PM__) || defined(__DEBUG_MM__) )\r
210 #ifdef __DEBUG_MM__\r
211         printf("debugmm: %u\t", dbg_debugmm);\r
212 #endif\r
213 #ifdef __DEBUG_PM__\r
214         printf("debugpm: %u", dbg_debugpm);\r
215 #endif\r
216         printf("\n");\r
217 #endif\r
218 //      printf("curr_mode=%u\n", gvar.video.curr_mode);\r
219 //      VL_PrintmodexmemInfo(&gvar.video);\r
220         //printf("old_mode=%u   VL_Started=%u", gvar.video.old_mode, gvar.video.VL_Started);\r
221         //printf("based core left:                      %lu\n", (dword)_basedcoreleft());\r
222         //printf("huge core left:                       %lu\n", (dword)_hugecoreleft());\r
223 }\r