--- /dev/null
+-------------------------------------------------------------------------------\r
+&main()= 1228:0FFA\r
+buffer:\r
+ 0004:0000 &0AC8:2EB2\r
+ 0000 & 2eb2\r
+-------------------------------------------------------------------------------\r
+\r
+\r
+press any key to continue!\r
+======================================load======================================\r
+===============================================================================\r
+ CA_LoadFile\r
+===============================================================================\r
+ ptr=0AC8:2EB2\r
+ *ptr=110D:0000\r
+ &ptr=1228:0FCE\r
+MM_GetPtr\r
+ baseptr=0AC8:2EB2 useptr=0AC8:2EB2\r
+ *baseptr=1C52:0000 *useptr=1C52:0000\r
+ &baseptr=1228:0FB2 &useptr=0AC8:3797\r
+---------------------------------------\r
+ ptr=0AC8:2EB2\r
+ *ptr=110D:7900\r
+ &ptr=1228:0FCE\r
+-------------------------------------------------------------------------------\r
+-------------------------------------------------------------------------------\r
+&main()= 1228:0FFA\r
+buffer:\r
+ 0001:7900 &0AC8:2EB2\r
+ 7900 & 2eb2\r
+-------------------------------------------------------------------------------\r
+\r
+yay!\r
+press any key to continue!\r
+========================================\r
+ DebugMemory_\r
+========================================\r
+Memory Usage\r
+------------\r
+Total: 558k\r
+Free: 150k\r
+With purge: 550k\r
+------------\r
+MMDUMP.16 created.\r
+========================================\r
+ MM_Report_\r
+========================================\r
+ ÉLIMEMS 1\r
+ ÇÄEMM v4.0 available\r
+ ÇÄtotalEMSpages: 4032 freeEMSpages: 3939\r
+ ÇÄEMSPageFrame: e000\r
+ ÓÄEMSmem: 64536576\r
+ ÉXMS 1\r
+ ÇÄXMS v3.0 available\r
+ ÇÄXMSDriver: C83F:0010\r
+ ÇÄXMSHandle: 0800\r
+ ÓÄXMSmem: 2097152\r
+ ÉConv. 1\r
+ ÓÄTotal: 558k Free: 150k With purge:550k\r
+nearheap: 50852 farheap: 521204\r
+========================================\r
+near= 1373:0004 far= 1FFF:0004\r
+&near= 0AC8:30E5 &far= 0AC8:30E1\r
+bigb= 0001:0000 &bigb=0AC8:2EB2 \r
+========================================\r
+Project 16 bcexmm.exe. This is just a test file!\r
+version Feb 22 2017 14:48:22\r
+debugmm: 1 \r
--- /dev/null
+\e[0mSeg:0 Size:4864 Owner:0x0\r
+\e[41;31m+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\e[0m\e[42;32m0\r
+\e[0m\e[0mSeg:1300 Size:256 Owner:0x2e21\r
+\e[44;34m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:1400 Size:256 Owner:0x2c24\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:1500 Size:256 Owner:0x2c26\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:1600 Size:256 Owner:0x2c28\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:1700 Size:256 Owner:0x2c2a\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:1800 Size:256 Owner:0x2c2c\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:1900 Size:256 Owner:0x2c2e\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:1a00 Size:256 Owner:0x2c30\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:1b00 Size:256 Owner:0x2c32\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:1c00 Size:256 Owner:0x2c34\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:1d00 Size:256 Owner:0x2c36\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:1e00 Size:256 Owner:0x2c38\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:1fde Size:34 Owner:0x0\r
+\e[41;31m++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:2000 Size:256 Owner:0x2c3a\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:2100 Size:256 Owner:0x2c3c\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:2200 Size:256 Owner:0x2c3e\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:2300 Size:256 Owner:0x2c40\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:2400 Size:256 Owner:0x2c42\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:2500 Size:256 Owner:0x2c44\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:2600 Size:256 Owner:0x2c46\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:2700 Size:256 Owner:0x2c48\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:2800 Size:256 Owner:0x2c4a\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:2900 Size:256 Owner:0x2c4c\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:2a00 Size:256 Owner:0x2c4e\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:2b00 Size:256 Owner:0x2c50\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:2c00 Size:256 Owner:0x2c52\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:2d00 Size:256 Owner:0x2c54\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:2e00 Size:256 Owner:0x2c56\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:2f00 Size:256 Owner:0x2c58\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3000 Size:256 Owner:0x2c5a\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3100 Size:256 Owner:0x2c5c\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3200 Size:256 Owner:0x2c5e\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3300 Size:256 Owner:0x2c60\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3400 Size:256 Owner:0x2c62\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3500 Size:256 Owner:0x2c64\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3600 Size:256 Owner:0x2c66\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3700 Size:256 Owner:0x2c68\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3800 Size:256 Owner:0x2c6a\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3900 Size:256 Owner:0x2c6c\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3a00 Size:256 Owner:0x2c6e\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3b00 Size:256 Owner:0x2c70\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3c00 Size:256 Owner:0x2c72\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3d00 Size:256 Owner:0x2c74\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3e00 Size:256 Owner:0x2c76\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3f00 Size:256 Owner:0x2c78\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4000 Size:256 Owner:0x2c7a\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4100 Size:256 Owner:0x2c7c\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4200 Size:256 Owner:0x2c7e\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4300 Size:256 Owner:0x2c80\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4400 Size:256 Owner:0x2c82\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4500 Size:256 Owner:0x2c84\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4600 Size:256 Owner:0x2c86\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4700 Size:256 Owner:0x2c88\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4800 Size:256 Owner:0x2c8a\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4900 Size:256 Owner:0x2c8c\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4a00 Size:256 Owner:0x2c8e\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4b00 Size:256 Owner:0x2c90\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4c00 Size:256 Owner:0x2c92\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4d00 Size:256 Owner:0x2c94\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4e00 Size:256 Owner:0x2c96\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4f00 Size:256 Owner:0x2c98\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5000 Size:256 Owner:0x2c9a\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5100 Size:256 Owner:0x2c9c\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5200 Size:256 Owner:0x2c9e\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5300 Size:256 Owner:0x2ca0\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5400 Size:256 Owner:0x2ca2\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5500 Size:256 Owner:0x2ca4\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5600 Size:256 Owner:0x2ca6\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5700 Size:256 Owner:0x2ca8\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5800 Size:256 Owner:0x2caa\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5900 Size:256 Owner:0x2cac\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5a00 Size:256 Owner:0x2cae\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5b00 Size:256 Owner:0x2cb0\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5c00 Size:256 Owner:0x2cb2\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5d00 Size:256 Owner:0x2cb4\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5e00 Size:256 Owner:0x2cb6\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5f00 Size:256 Owner:0x2cb8\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6000 Size:256 Owner:0x2cba\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6100 Size:256 Owner:0x2cbc\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6200 Size:256 Owner:0x2cbe\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6300 Size:256 Owner:0x2cc0\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6400 Size:256 Owner:0x2cc2\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6500 Size:256 Owner:0x2cc4\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6600 Size:256 Owner:0x2cc6\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6700 Size:256 Owner:0x2cc8\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6800 Size:256 Owner:0x2cca\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6900 Size:256 Owner:0x2ccc\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6a00 Size:256 Owner:0x2cce\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6b00 Size:256 Owner:0x2cd0\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6c00 Size:256 Owner:0x2cd2\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6d00 Size:256 Owner:0x2cd4\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6e00 Size:256 Owner:0x2cd6\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6f00 Size:256 Owner:0x2cd8\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:7000 Size:256 Owner:0x2cda\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:7100 Size:256 Owner:0x2cdc\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:7200 Size:256 Owner:0x2cde\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:7300 Size:256 Owner:0x2ce0\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:7400 Size:256 Owner:0x2ce2\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:7500 Size:256 Owner:0x2ce4\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:7600 Size:256 Owner:0x2ce6\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:7700 Size:256 Owner:0x2ce8\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:7800 Size:256 Owner:0x2cea\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:7900 Size:273 Owner:0x2bfa\r
+\e[44;34m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:9f3f Size:24768 Owner:0x0\r
+\e[41;31m+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\e[0m
\ No newline at end of file
--- /dev/null
+\e[0mSeg:0 Size:8973 Owner:0x0\r
+\e[41;31m+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\e[0m\e[42;32m0000\r
+\e[0m\e[0mSeg:23fe Size:39 Owner:0x0\r
+\e[41;31m+\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:2425 Size:256 Owner:0x1dc4\r
+\e[44;34m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:2525 Size:256 Owner:0x1bb6\r
+\e[45;35m+++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:2625 Size:256 Owner:0x1bb8\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:2725 Size:256 Owner:0x1bba\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:2825 Size:256 Owner:0x1bbc\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:2925 Size:256 Owner:0x1bbe\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:2a25 Size:256 Owner:0x1bc0\r
+\e[45;35m+++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:2b25 Size:256 Owner:0x1bc2\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:2c25 Size:256 Owner:0x1bc4\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:2d25 Size:256 Owner:0x1bc6\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:2e25 Size:256 Owner:0x1bc8\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:2f25 Size:256 Owner:0x1bca\r
+\e[45;35m+++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3025 Size:256 Owner:0x1bcc\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3125 Size:256 Owner:0x1bce\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3225 Size:256 Owner:0x1bd0\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3325 Size:256 Owner:0x1bd2\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3425 Size:256 Owner:0x1bd4\r
+\e[45;35m+++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3525 Size:256 Owner:0x1bd6\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3625 Size:256 Owner:0x1bd8\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3725 Size:256 Owner:0x1bda\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3825 Size:256 Owner:0x1bdc\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3925 Size:256 Owner:0x1bde\r
+\e[45;35m+++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3a25 Size:256 Owner:0x1be0\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3b25 Size:256 Owner:0x1be2\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3c25 Size:256 Owner:0x1be4\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3d25 Size:256 Owner:0x1be6\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3e25 Size:256 Owner:0x1be8\r
+\e[45;35m+++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:3f25 Size:256 Owner:0x1bea\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4025 Size:256 Owner:0x1bec\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4125 Size:256 Owner:0x1bee\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4225 Size:256 Owner:0x1bf0\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4325 Size:256 Owner:0x1bf2\r
+\e[45;35m+++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4425 Size:256 Owner:0x1bf4\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4525 Size:256 Owner:0x1bf6\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4625 Size:256 Owner:0x1bf8\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4725 Size:256 Owner:0x1bfa\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4825 Size:256 Owner:0x1bfc\r
+\e[45;35m+++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4925 Size:256 Owner:0x1bfe\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4a25 Size:256 Owner:0x1c00\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4b25 Size:256 Owner:0x1c02\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4c25 Size:256 Owner:0x1c04\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4d25 Size:256 Owner:0x1c06\r
+\e[45;35m+++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4e25 Size:256 Owner:0x1c08\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:4f25 Size:256 Owner:0x1c0a\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5025 Size:256 Owner:0x1c0c\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5125 Size:256 Owner:0x1c0e\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5225 Size:256 Owner:0x1c10\r
+\e[45;35m+++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5325 Size:256 Owner:0x1c12\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5425 Size:256 Owner:0x1c14\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5525 Size:256 Owner:0x1c16\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5625 Size:256 Owner:0x1c18\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5725 Size:256 Owner:0x1c1a\r
+\e[45;35m+++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5825 Size:256 Owner:0x1c1c\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5925 Size:256 Owner:0x1c1e\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5a25 Size:256 Owner:0x1c20\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5b25 Size:256 Owner:0x1c22\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5c25 Size:256 Owner:0x1c24\r
+\e[45;35m+++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5d25 Size:256 Owner:0x1c26\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5e25 Size:256 Owner:0x1c28\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:5f25 Size:256 Owner:0x1c2a\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6025 Size:256 Owner:0x1c2c\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6125 Size:256 Owner:0x1c2e\r
+\e[45;35m+++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6225 Size:256 Owner:0x1c30\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6325 Size:256 Owner:0x1c32\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6425 Size:256 Owner:0x1c34\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6525 Size:256 Owner:0x1c36\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6625 Size:256 Owner:0x1c38\r
+\e[45;35m+++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6725 Size:256 Owner:0x1c3a\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6825 Size:256 Owner:0x1c3c\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6925 Size:256 Owner:0x1c3e\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6a25 Size:256 Owner:0x1c40\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6b25 Size:256 Owner:0x1c42\r
+\e[45;35m+++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6c25 Size:256 Owner:0x1c44\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6d25 Size:256 Owner:0x1c46\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6e25 Size:256 Owner:0x1c48\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:6f25 Size:256 Owner:0x1c4a\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:7025 Size:256 Owner:0x1c4c\r
+\e[45;35m+++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:7125 Size:256 Owner:0x1c4e\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:7225 Size:256 Owner:0x1c50\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:7325 Size:256 Owner:0x1c52\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:7425 Size:256 Owner:0x1c54\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:7525 Size:256 Owner:0x1c56\r
+\e[45;35m+++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:7625 Size:256 Owner:0x1c58\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:7725 Size:256 Owner:0x1c5a\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:7825 Size:256 Owner:0x1c5c\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:7925 Size:256 Owner:0x1c5e\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:7a25 Size:256 Owner:0x1c60\r
+\e[45;35m+++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:7b25 Size:256 Owner:0x1c62\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:7c25 Size:256 Owner:0x1c64\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:7d25 Size:256 Owner:0x1c66\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:7e25 Size:256 Owner:0x1c68\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:7f25 Size:256 Owner:0x1c6a\r
+\e[45;35m+++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:8025 Size:256 Owner:0x1c6c\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:8125 Size:256 Owner:0x1c6e\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:8225 Size:256 Owner:0x1c70\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:8325 Size:256 Owner:0x1c72\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:8425 Size:256 Owner:0x1c74\r
+\e[45;35m+++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:8525 Size:256 Owner:0x1c76\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:8625 Size:256 Owner:0x1c78\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:8725 Size:256 Owner:0x1c7a\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:8825 Size:256 Owner:0x1c7c\r
+\e[45;35m++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:8925 Size:273 Owner:0x1b88\r
+\e[44;34m+++++\e[0m\e[42;32m\r
+\e[0m\e[0mSeg:9d64 Size:25243 Owner:0x0\r
+\e[41;31m+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\e[0m
\ No newline at end of file
--- /dev/null
+MM_GetPtr\r
+ baseptr=1430:1db4 useptr=1430:1db4\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec62 &useptr=1430:1e20\r
+MM_GetPtr\r
+ baseptr=1430:1ba6 useptr=1430:1ba6\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1e30\r
+MM_GetPtr\r
+ baseptr=1430:1ba8 useptr=1430:1ba8\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1e40\r
+MM_GetPtr\r
+ baseptr=1430:1baa useptr=1430:1baa\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1e50\r
+MM_GetPtr\r
+ baseptr=1430:1bac useptr=1430:1bac\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1e60\r
+MM_GetPtr\r
+ baseptr=1430:1bae useptr=1430:1bae\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1e70\r
+MM_GetPtr\r
+ baseptr=1430:1bb0 useptr=1430:1bb0\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1e80\r
+MM_GetPtr\r
+ baseptr=1430:1bb2 useptr=1430:1bb2\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1e90\r
+MM_GetPtr\r
+ baseptr=1430:1bb4 useptr=1430:1bb4\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1ea0\r
+MM_GetPtr\r
+ baseptr=1430:1bb6 useptr=1430:1bb6\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1eb0\r
+MM_GetPtr\r
+ baseptr=1430:1bb8 useptr=1430:1bb8\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1ec0\r
+MM_GetPtr\r
+ baseptr=1430:1bba useptr=1430:1bba\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1ed0\r
+MM_GetPtr\r
+ baseptr=1430:1bbc useptr=1430:1bbc\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1ee0\r
+MM_GetPtr\r
+ baseptr=1430:1bbe useptr=1430:1bbe\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1ef0\r
+MM_GetPtr\r
+ baseptr=1430:1bc0 useptr=1430:1bc0\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1f00\r
+MM_GetPtr\r
+ baseptr=1430:1bc2 useptr=1430:1bc2\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1f10\r
+MM_GetPtr\r
+ baseptr=1430:1bc4 useptr=1430:1bc4\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1f20\r
+MM_GetPtr\r
+ baseptr=1430:1bc6 useptr=1430:1bc6\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1f30\r
+MM_GetPtr\r
+ baseptr=1430:1bc8 useptr=1430:1bc8\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1f40\r
+MM_GetPtr\r
+ baseptr=1430:1bca useptr=1430:1bca\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1f50\r
+MM_GetPtr\r
+ baseptr=1430:1bcc useptr=1430:1bcc\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1f60\r
+MM_GetPtr\r
+ baseptr=1430:1bce useptr=1430:1bce\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1f70\r
+MM_GetPtr\r
+ baseptr=1430:1bd0 useptr=1430:1bd0\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1f80\r
+MM_GetPtr\r
+ baseptr=1430:1bd2 useptr=1430:1bd2\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1f90\r
+MM_GetPtr\r
+ baseptr=1430:1bd4 useptr=1430:1bd4\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1fa0\r
+MM_GetPtr\r
+ baseptr=1430:1bd6 useptr=1430:1bd6\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1fb0\r
+MM_GetPtr\r
+ baseptr=1430:1bd8 useptr=1430:1bd8\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1fc0\r
+MM_GetPtr\r
+ baseptr=1430:1bda useptr=1430:1bda\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1fd0\r
+MM_GetPtr\r
+ baseptr=1430:1bdc useptr=1430:1bdc\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1fe0\r
+MM_GetPtr\r
+ baseptr=1430:1bde useptr=1430:1bde\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:1ff0\r
+MM_GetPtr\r
+ baseptr=1430:1be0 useptr=1430:1be0\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2000\r
+MM_GetPtr\r
+ baseptr=1430:1be2 useptr=1430:1be2\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2010\r
+MM_GetPtr\r
+ baseptr=1430:1be4 useptr=1430:1be4\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2020\r
+MM_GetPtr\r
+ baseptr=1430:1be6 useptr=1430:1be6\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2030\r
+MM_GetPtr\r
+ baseptr=1430:1be8 useptr=1430:1be8\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2040\r
+MM_GetPtr\r
+ baseptr=1430:1bea useptr=1430:1bea\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2050\r
+MM_GetPtr\r
+ baseptr=1430:1bec useptr=1430:1bec\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2060\r
+MM_GetPtr\r
+ baseptr=1430:1bee useptr=1430:1bee\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2070\r
+MM_GetPtr\r
+ baseptr=1430:1bf0 useptr=1430:1bf0\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2080\r
+MM_GetPtr\r
+ baseptr=1430:1bf2 useptr=1430:1bf2\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2090\r
+MM_GetPtr\r
+ baseptr=1430:1bf4 useptr=1430:1bf4\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:20a0\r
+MM_GetPtr\r
+ baseptr=1430:1bf6 useptr=1430:1bf6\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:20b0\r
+MM_GetPtr\r
+ baseptr=1430:1bf8 useptr=1430:1bf8\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:20c0\r
+MM_GetPtr\r
+ baseptr=1430:1bfa useptr=1430:1bfa\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:20d0\r
+MM_GetPtr\r
+ baseptr=1430:1bfc useptr=1430:1bfc\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:20e0\r
+MM_GetPtr\r
+ baseptr=1430:1bfe useptr=1430:1bfe\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:20f0\r
+MM_GetPtr\r
+ baseptr=1430:1c00 useptr=1430:1c00\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2100\r
+MM_GetPtr\r
+ baseptr=1430:1c02 useptr=1430:1c02\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2110\r
+MM_GetPtr\r
+ baseptr=1430:1c04 useptr=1430:1c04\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2120\r
+MM_GetPtr\r
+ baseptr=1430:1c06 useptr=1430:1c06\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2130\r
+MM_GetPtr\r
+ baseptr=1430:1c08 useptr=1430:1c08\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2140\r
+MM_GetPtr\r
+ baseptr=1430:1c0a useptr=1430:1c0a\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2150\r
+MM_GetPtr\r
+ baseptr=1430:1c0c useptr=1430:1c0c\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2160\r
+MM_GetPtr\r
+ baseptr=1430:1c0e useptr=1430:1c0e\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2170\r
+MM_GetPtr\r
+ baseptr=1430:1c10 useptr=1430:1c10\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2180\r
+MM_GetPtr\r
+ baseptr=1430:1c12 useptr=1430:1c12\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2190\r
+MM_GetPtr\r
+ baseptr=1430:1c14 useptr=1430:1c14\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:21a0\r
+MM_GetPtr\r
+ baseptr=1430:1c16 useptr=1430:1c16\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:21b0\r
+MM_GetPtr\r
+ baseptr=1430:1c18 useptr=1430:1c18\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:21c0\r
+MM_GetPtr\r
+ baseptr=1430:1c1a useptr=1430:1c1a\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:21d0\r
+MM_GetPtr\r
+ baseptr=1430:1c1c useptr=1430:1c1c\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:21e0\r
+MM_GetPtr\r
+ baseptr=1430:1c1e useptr=1430:1c1e\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:21f0\r
+MM_GetPtr\r
+ baseptr=1430:1c20 useptr=1430:1c20\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2200\r
+MM_GetPtr\r
+ baseptr=1430:1c22 useptr=1430:1c22\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2210\r
+MM_GetPtr\r
+ baseptr=1430:1c24 useptr=1430:1c24\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2220\r
+MM_GetPtr\r
+ baseptr=1430:1c26 useptr=1430:1c26\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2230\r
+MM_GetPtr\r
+ baseptr=1430:1c28 useptr=1430:1c28\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2240\r
+MM_GetPtr\r
+ baseptr=1430:1c2a useptr=1430:1c2a\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2250\r
+MM_GetPtr\r
+ baseptr=1430:1c2c useptr=1430:1c2c\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2260\r
+MM_GetPtr\r
+ baseptr=1430:1c2e useptr=1430:1c2e\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2270\r
+MM_GetPtr\r
+ baseptr=1430:1c30 useptr=1430:1c30\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2280\r
+MM_GetPtr\r
+ baseptr=1430:1c32 useptr=1430:1c32\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2290\r
+MM_GetPtr\r
+ baseptr=1430:1c34 useptr=1430:1c34\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:22a0\r
+MM_GetPtr\r
+ baseptr=1430:1c36 useptr=1430:1c36\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:22b0\r
+MM_GetPtr\r
+ baseptr=1430:1c38 useptr=1430:1c38\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:22c0\r
+MM_GetPtr\r
+ baseptr=1430:1c3a useptr=1430:1c3a\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:22d0\r
+MM_GetPtr\r
+ baseptr=1430:1c3c useptr=1430:1c3c\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:22e0\r
+MM_GetPtr\r
+ baseptr=1430:1c3e useptr=1430:1c3e\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:22f0\r
+MM_GetPtr\r
+ baseptr=1430:1c40 useptr=1430:1c40\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2300\r
+MM_GetPtr\r
+ baseptr=1430:1c42 useptr=1430:1c42\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2310\r
+MM_GetPtr\r
+ baseptr=1430:1c44 useptr=1430:1c44\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2320\r
+MM_GetPtr\r
+ baseptr=1430:1c46 useptr=1430:1c46\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2330\r
+MM_GetPtr\r
+ baseptr=1430:1c48 useptr=1430:1c48\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2340\r
+MM_GetPtr\r
+ baseptr=1430:1c4a useptr=1430:1c4a\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2350\r
+MM_GetPtr\r
+ baseptr=1430:1c4c useptr=1430:1c4c\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2360\r
+MM_GetPtr\r
+ baseptr=1430:1c4e useptr=1430:1c4e\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2370\r
+MM_GetPtr\r
+ baseptr=1430:1c50 useptr=1430:1c50\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2380\r
+MM_GetPtr\r
+ baseptr=1430:1c52 useptr=1430:1c52\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2390\r
+MM_GetPtr\r
+ baseptr=1430:1c54 useptr=1430:1c54\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:23a0\r
+MM_GetPtr\r
+ baseptr=1430:1c56 useptr=1430:1c56\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:23b0\r
+MM_GetPtr\r
+ baseptr=1430:1c58 useptr=1430:1c58\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:23c0\r
+MM_GetPtr\r
+ baseptr=1430:1c5a useptr=1430:1c5a\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:23d0\r
+MM_GetPtr\r
+ baseptr=1430:1c5c useptr=1430:1c5c\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:23e0\r
+MM_GetPtr\r
+ baseptr=1430:1c5e useptr=1430:1c5e\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:23f0\r
+MM_GetPtr\r
+ baseptr=1430:1c60 useptr=1430:1c60\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2400\r
+MM_GetPtr\r
+ baseptr=1430:1c62 useptr=1430:1c62\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2410\r
+MM_GetPtr\r
+ baseptr=1430:1c64 useptr=1430:1c64\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2420\r
+MM_GetPtr\r
+ baseptr=1430:1c66 useptr=1430:1c66\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2430\r
+MM_GetPtr\r
+ baseptr=1430:1c68 useptr=1430:1c68\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2440\r
+MM_GetPtr\r
+ baseptr=1430:1c6a useptr=1430:1c6a\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2450\r
+MM_GetPtr\r
+ baseptr=1430:1c6c useptr=1430:1c6c\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec48 &useptr=1430:2460\r
+-------------------------------------------------------------------------------\r
+&main()= 1430:6cc1\r
+buffer:\r
+ 1430:0000 &1430:1b78\r
+ 0000 & 1b78\r
+-------------------------------------------------------------------------------\r
+press any key to continue!\r
+======================================load======================================\r
+MM_GetPtr\r
+ baseptr=1430:1b78 useptr=1430:1b78\r
+ *baseptr=1430:0000 *useptr=1430:0000\r
+ &baseptr=1430:ec64 &useptr=1430:2470\r
+-------------------------------------------------------------------------------\r
+&main()= 1430:6cc1\r
+buffer:\r
+ 1430:893b &1430:1b78\r
+ 893b & 1b78\r
+-------------------------------------------------------------------------------\r
+\r
+yay!\r
+======================================read======================================\r
+-------------------------------------------------------------------------------\r
+&main()= 1430:6cc1\r
+buffer:\r
+ 1430:893b &1430:1b78\r
+ 893b & 1b78\r
+-------------------------------------------------------------------------------\r
+\r
+yay!\r
+========================================\r
+ DebugMemory_\r
+========================================\r
+Memory Usage\r
+------------\r
+Total: 578k\r
+Free: 170k\r
+With purge: 570k\r
+------------\r
+MMDUMP.16 created.\r
+========================================\r
+ MM_Report_\r
+========================================\r
+ ÉLIMEMS 1\r
+ ÇÄEMM v4.0 available\r
+ ÇÄtotalEMSpages: 4032 freeEMSpages: 3939\r
+ ÇÄEMSPageFrame: e000\r
+ ÓÄEMSmem: 64536576\r
+ ÉXMS 1\r
+ ÇÄXMS v3.0 available\r
+ ÇÄXMSDriver: c83f:0010\r
+ ÇÄXMSHandle: 0800\r
+ ÓÄXMSmem: 2097152\r
+ ÉConv. 1\r
+ ÓÄTotal: 578k Free: 170k With purge:570k\r
+nearheap: 3884 farheap: 588812\r
+========================================\r
+near= 1430:eec8 far= 2431:009c\r
+&near= 1430:1dc0 &far= 1430:1dbc\r
+bigb= 1430:0000 &bigb=1430:1b78 \r
+========================================\r
+\r
+_memavl(): 4404\r
+HC_farcoreleft(): 962022\r
+HC_GetNearFreeSize(): 4406\r
+HC_GetFarFreeSize(): 40134\r
+Project 16 exmmtest.exe. This is just a test file!\r
+version Feb 22 2017 12:35:11\r
+debugmm: 1 \r
--- /dev/null
+\r
+ == default ==\r
+\r
+ USED block at 24200016 of size 26\r
+ USED block at 24200030 of size 26\r
+ FREE block at 2420004a of size 38914\r
+ USED block at 2420984c of size 136\r
+ USED block at 242098d4 of size 20\r
+ FREE block at 242098e8 of size 7972\r
+OK - end of heap\r
+\r
+ == near ==\r
+\r
+ USED block at 141fece6 of size 12\r
+ USED block at 141fecf2 of size 332\r
+ USED block at 141fee3e of size 52\r
+ USED block at 141fee72 of size 20\r
+ USED block at 141fee86 of size 20\r
+ USED block at 141fee9a of size 20\r
+ USED block at 141feeae of size 20\r
+ USED block at 141feec2 of size 20\r
+ USED block at 141feed6 of size 4390\r
+OK - end of heap\r
+\r
+ == far ==\r
+\r
+ USED block at 24200016 of size 26\r
+ USED block at 24200030 of size 26\r
+ USED block at 2420004a of size 38914\r
+ USED block at 2420984c of size 136\r
+ USED block at 242098d4 of size 20\r
+ USED block at 242098e8 of size 7972\r
+OK - end of heap\r
+\r
+Memory Type Total Used Free\r
+---------------- -------- -------- --------\r
+Default 47094 208 46886\r
+Near 4886 496 4390\r
+Far 47094 208 46886\r
+---------------- -------- -------- --------\r
+HC_coreleft = 4388\r
+HC_farcoreleft = 458752\r
+HC_GetFreeSize = 46886\r
+HC_GetNearFreeSize = 4390\r
+HC_GetFarFreeSize = 46886\r
+memavl = 4388\r
+stackavail = 31606\r
/*\r
exmm test\r
*/\r
+#include <malloc.h> // for _memavl()\r
#include "src/lib/16_head.h"\r
#include "src/lib/16_tail.h"\r
#include "src/lib/16_pm.h"\r
#include "src/lib/16_mm.h"\r
#include "src/lib/16_hc.h"\r
//#include "src/lib/16_vl.h"\r
+#include "src/lib/16_dbg.h"\r
+\r
#pragma hdrstop\r
\r
#pragma warn -pro\r
#pragma warn -use\r
\r
//file load or read definition\r
+#define FILEREADLOAD\r
#define FILEREAD\r
-#define EXMMVERBOSE\r
-//#ifdef __BORLANDC__\r
+//#define EXMMVERBOSE\r
+//#define BUFFDUMPPAUSE\r
+//#define EXMMVERBOSE__\r
+// #define PRINTBBDUMP\r
#define BUFFDUMP\r
-//#endif\r
\r
-#define BBUF bigbuffer//gvar.ca.tinf[0]\r
+#define BBUFNAME gvar.ca.tinf[0]//bigbuffer\r
+//#define INITBBUF static memptr BBUFNAME;\r
+#define BBUFPTR &BBUFNAME\r
+\r
+#ifdef __BORLANDC__\r
+#define BBUF (memptr *)BBUFPTR//\r
+#define BBUFSTRING (memptr *)BBUFNAME\r
+#endif\r
+#ifdef __WATCOMC__\r
+#define BBUF BBUFNAME\r
+#define BBUFSTRING BBUF\r
+#endif\r
+\r
\r
void VGAmodeX(sword vq, boolean cmem, global_game_variables_t *gv)\r
{\r
printf("VGAmodeX dummy:\n %Fp %Fp %Fp\n", &vq, &cmem, gv);\r
}\r
+\r
+//printf("* %Fp\t", *BBUF);\r
+//printf("* %04x\t", *BBUF);\r
#define PRINTBB {\\r
+ printf("-------------------------------------------------------------------------------\n");\\r
printf("&main()= %Fp\n", argv[0]);\\r
- printf("BBUF:\n");\\r
+ printf("buffer:\n");\\r
printf(" %Fp\t", BBUF);\\r
- printf("&%Fp\n", &BBUF);\\r
+ printf("&%Fp\n", BBUFPTR);\\r
printf(" %04x\t", BBUF);\\r
- printf("& %04x\n", &BBUF);\\r
+ printf("& %04x\n", BBUFPTR);\\r
+ printf("-------------------------------------------------------------------------------\n");\\r
}\r
//printf("&main()= %Fp\n", *argv[0]);\r
//printf("bigbuffer= %Fp\n", bigbuffer);\r
void\r
main(int argc, char *argv[])\r
{\r
- byte w=1;\r
+ byte w;\r
static global_game_variables_t gvar;\r
- memptr BBUF;\r
+#ifdef INITBBUF\r
+ INITBBUF\r
+#endif\r
//#ifdef __WATCOMC__\r
// __segment sega;\r
//#endif\r
argc=argc;\r
#endif\r
//file name //\r
- bakapee1 = malloc(64);\r
- bakapee2 = malloc(64);\r
+ bakapee1 = malloc(24);\r
+ bakapee2 = malloc(24);\r
//file name //\r
\r
#ifdef __16_PM__\r
#endif\r
#endif\r
\r
- //PRINTBB\r
+#ifdef __DEBUG_CA__\r
+ dbg_debugca=1;\r
+#endif\r
+#ifdef PRINTBBDUMP\r
+//0000PRINTBB; printf("press any key to continue!\n"); getch();\r
+#endif\r
if(argv[1]){ bakapee1 = argv[1];\r
if(argv[2]) bakapee2 = argv[2]; }\r
else{\r
bakapee2 = "data/test.map";\r
}\r
//printf("main()=%Fp start MM\n", *argv[0]);\r
- MM_Startup(&gvar);\r
- //printf("ok\n");\r
+ MM_Startup(&gvar); //printf("ok\n");\r
#ifdef __16_PM__\r
#ifdef __DEBUG_PM__\r
if(dbg_debugpm>0)\r
{\r
#endif\r
PM_Startup(&gvar); PM_CheckMainMem(&gvar); PM_UnlockMainMem(&gvar);\r
+//0000 printf("PM Started\n"); printf("press any key to continue!\n"); getch();\r
#ifdef __DEBUG_PM__\r
}\r
#endif\r
+#endif\r
+\r
+#ifdef __DEBUG_MM__\r
+ dbg_debugmm=0;\r
#endif\r
CA_Startup(&gvar);\r
// printf(" done!\n");\r
- //0000\r
- PRINTBB; printf("press any key to continue!\n"); getch();\r
+#ifdef PRINTBBDUMP\r
+//0000\r
+PRINTBB; printf("\n\npress any key to continue!\n"); getch();\r
+#endif\r
+#ifdef __DEBUG_MM__\r
+ dbg_debugmm=1;\r
+#endif\r
+\r
+ w=0;\r
+#ifdef FILEREADLOAD\r
#ifdef FILEREAD\r
-for(w=0;w<2;w++)\r
-{\r
-// printf("size of big buffer~=%u\n", _bmsize(segu, BBUF));\r
- if(w>0)\r
+ for(;w<2;w++)\r
{\r
- printf(" read\n");\r
- if(CA_ReadFile(bakapee2, &BBUF, &gvar)) baka=1; else baka=0;\r
- }\r
+ // printf("size of big buffer~=%u\n", _bmsize(segu, BBUF));\r
+ if(w>0)\r
+ {\r
+ printf("======================================read=====================================\n");\r
+ if(CA_ReadFile(bakapee2, BBUFPTR, &gvar)) baka=1; else baka=0;\r
+ printf("====================================read end===================================\n");\r
+ }\r
#endif\r
- if(w==0)\r
- {\r
- printf(" load\n");\r
- if(CA_LoadFile(bakapee1, &BBUF, &gvar)) baka=1; else baka=0;\r
- }\r
+ if(w==0)\r
+ {\r
+ printf("======================================load=====================================\n");\r
+ if(CA_LoadFile(bakapee1, BBUFPTR, &gvar)) baka=1; else baka=0;\r
+ printf("====================================load end===================================\n");\r
+ }\r
//#ifdef __WATCOMC__\r
// printf("\nsize of big buffer~=%u\n", _bmsize(sega, BBUF));\r
//#endif\r
#ifdef BUFFDUMP\r
- printf("contents of the buffer\n[\n%s\n]\n", (BBUF));\r
+ printf("contents of the buffer\n[\n%s\n]\n", BBUFSTRING);\r
#endif// #else\r
- PRINTBB;\r
-// #endif\r
- //printf("dark purple = purgable\n");\r
- //printf("medium blue = non purgable\n");\r
- //printf("red = locked\n");\r
-// printf("press any key to continue!\n");\r
-// DebugMemory_(&gvar, 1);\r
- if(baka) printf("\nyay!\n");\r
- else printf("\npoo!\n");\r
- printf("press any key to continue!\n");\r
- getch();\r
+#ifdef PRINTBBDUMP\r
+ PRINTBB;\r
+#endif\r
+//endif // BUFFDUMP\r
+\r
+ //printf("dark purple = purgable\n");\r
+ //printf("medium blue = non purgable\n");\r
+ //printf("red = locked\n");\r
+ // printf("press any key to continue!\n");\r
+ // DebugMemory_(&gvar, 1);\r
+ if(baka) printf("\nyay!\n");\r
+ else printf("\npoo!\n");\r
+#ifdef BUFFDUMPPAUSE\r
+ printf("press any key to continue!\n"); getch();\r
+#endif\r
#ifdef FILEREAD\r
-}\r
+ }\r
#endif\r
+#ifndef BUFFDUMPPAUSE\r
+ printf("press any key to continue!\n"); getch();\r
+#endif\r
+#endif //filereadload\r
DebugMemory_(&gvar, 1);\r
MM_DumpData(&gvar);\r
MM_Report_(&gvar);\r
//printf("bakapee1=%s\n", bakapee1);\r
//printf("bakapee2=%s\n", bakapee2);\r
- MM_FreePtr(&BBUF, &gvar);\r
+ MM_FreePtr(BBUFPTR, &gvar);\r
#ifdef __16_PM__\r
#ifdef __DEBUG_PM__\r
if(dbg_debugpm>0)\r
printf("bigb= %Fp ", BBUF);\r
//printf("bigbr= %04x", BBUF);\r
//printf("\n");\r
- printf("&bigb=%Fp ", &BBUF);\r
- //printf("&bigb=%04x", &BBUF);\r
+ printf("&bigb=%Fp ", BBUFPTR);\r
+ //printf("&bigb=%04x", BBUFPTR);\r
printf("\n");\r
+#endif\r
printf("========================================\n");\r
+\r
+#ifdef EXMMVERBOSE__\r
+ printf("coreleft(): %u\n", _memavl());\r
+ printf("farcoreleft(): %lu\n", (dword)HC_farcoreleft());\r
#endif\r
- printf("\n");\r
- printf("HC_coreleft(): %u\n", HC_coreleft());\r
#ifdef __WATCOMC__\r
//this is far printf("Total free: %lu\n", (dword)(HC_GetFreeSize()));\r
- printf("HC_GetNearFreeSize(): %u\n", HC_GetNearFreeSize());\r
- printf("HC_GetFarFreeSize(): %lub\n", (dword)HC_GetFarFreeSize());\r
+//super buggy printf("HC_coreleft(): %u\n", HC_coreleft());\r
+// printf("HC_farcoreleft(): %lu\n", (dword)HC_farcoreleft());\r
+ //printf("HC_GetNearFreeSize(): %u\n", HC_GetNearFreeSize());\r
+ //printf("HC_GetFarFreeSize(): %lu\n", (dword)HC_GetFarFreeSize());\r
HC_heapdump(&gvar);\r
// segatesuto();\r
#endif\r
-#ifdef __BORLANDC__\r
+/*#ifdef __BORLANDC__\r
//printf("core left: %lu\n", (dword)HC_coreleft());\r
//printf("far core left: %lu\n", (dword)HC_farcoreleft());\r
- printf("coreleft(): %u\n", coreleft());\r
- printf("farcoreleft(): %lu\n", (dword)farcoreleft());\r
+// printf("\nfarcoreleft(): %lu\n", farcoreleft());\r
+#endif*/\r
+ printf("Project 16 ");\r
+#ifdef __WATCOMC__\r
+ printf("exmmtest");\r
+#endif\r
+#ifdef __BORLANDC__\r
+ printf("bcexmm");\r
#endif\r
- printf("Project 16 exmmtest.exe. This is just a test file!\n");\r
+ printf(".exe. This is just a test file!\n");\r
printf("version %s\n", VERSION);\r
- //printf("\n");\r
-\r
+#if defined(__DEBUG__) && ( defined(__DEBUG_PM__) || defined(__DEBUG_MM__) )\r
+#ifdef __DEBUG_MM__\r
+ printf("debugmm: %u\t", dbg_debugmm);\r
+#endif\r
+#ifdef __DEBUG_PM__\r
+ printf("debugpm: %u", dbg_ddebugpm);\r
+#endif\r
+ printf("\n");\r
+#endif\r
//printf("based core left: %lu\n", (dword)_basedcoreleft());\r
//printf("huge core left: %lu\n", (dword)_hugecoreleft());\r
}\r
//segm=(length%0xfffflu)-1;\r
//fat=segm*0xfffflu;\r
//length-=fat;\r
- printf("CA_FarRead doesn't support 64K reads yet!\n");\r
+ printf("CA_FarWrite doesn't support 64K reads yet!\n");\r
return 0;\r
}\r
\r
size = filelength(handle);\r
if(!CA_FarRead(handle,*ptr,size, gvar))\r
{\r
- close (handle);\r
+ close(handle);\r
return false;\r
}\r
- close (handle);\r
+ close(handle);\r
return true;\r
}\r
\r
return false;\r
\r
size = filelength(handle);\r
+#ifdef __DEBUG_CA__\r
+ if(dbg_debugca>0){\r
+ printf("===============================================================================\n");\r
+ printf(" CA_LoadFile\n");\r
+ printf("===============================================================================\n");\r
+ //%04x\r
+ printf(" ptr=%Fp\n", ptr);\r
+ printf(" *ptr=%Fp\n", *ptr);\r
+ printf(" &ptr=%Fp\n", &ptr);\r
+ }\r
+#endif\r
MM_GetPtr(ptr,size, gvar);\r
+#ifdef __DEBUG_CA__\r
+ if(dbg_debugca>0){\r
+ //%04x\r
+ printf("---------------------------------------\n");\r
+ printf(" ptr=%Fp\n", ptr);\r
+ printf(" *ptr=%Fp\n", *ptr);\r
+ printf(" &ptr=%Fp\n", &ptr);\r
+ printf("-------------------------------------------------------------------------------\n");\r
+ }\r
+#endif\r
if(!CA_FarRead(handle,*ptr,size, gvar))\r
{\r
close(handle);\r
#include "src/lib/16_dbg.h"\r
\r
#ifdef __DEBUG__\r
+#ifdef __DEBUG_MM__\r
+boolean dbg_debugmm=0;\r
+#endif\r
#ifdef __DEBUG_PM__\r
boolean dbg_debugpm=0;\r
#endif\r
+#ifdef __DEBUG_CA__\r
+boolean dbg_debugca=0;\r
+#endif\r
#ifdef __DEBUG_InputMgr__\r
boolean dbg_testkeyin=0,dbg_testcontrolnoisy=0,dbg_nointest=0;\r
#endif\r
#endif\r
#endif\r
\r
-\r
+#ifdef __WATCOMC__\r
// TODO: Could we also provide a build mode to emit debug to the "Bochs E9 hack?"\r
#ifdef DEBUGSERIAL\r
# include <stdarg.h>\r
_DEBUG(_DEBUGF_TMP);\r
va_end(va);\r
}\r
+#endif //watcomc\r
#endif\r
-\r
#define __DEBUG__\r
#define __DEBUG_InputMgr__\r
#define __DEBUG_MAP__\r
+//#define __DEBUG_CA__\r
//#define __DEBUG_PM__\r
//#define __DEBUG_MM__\r
\r
\r
#ifdef __DEBUG__\r
+#ifdef __DEBUG_MM__\r
+extern boolean dbg_debugmm;\r
+#endif\r
#ifdef __DEBUG_PM__\r
extern boolean dbg_debugpm;\r
#endif\r
+#ifdef __DEBUG_CA__\r
+extern boolean dbg_debugca;\r
+#endif\r
#ifdef __DEBUG_InputMgr__\r
extern boolean dbg_testkeyin,dbg_testcontrolnoisy,dbg_nointest;\r
#endif\r
#endif\r
#endif\r
\r
+#ifdef __WATCOMC__\r
# ifdef DEBUGSERIAL\r
# include <hw/8250/8250.h>\r
\r
return -1;\r
}\r
# endif\r
+#endif //watcomc\r
#endif // _SRC_LIB_16_DBG\r
-\r
#include "src/lib/16_hc.h"\r
#include <malloc.h>\r
\r
-//functions\r
-void CHIKAKU* HC_LargestFreeBlock(size_t* Size)\r
+//from ftp://213.85.246.177/pub/FreeBSD/ports/archivers/arj/work/arj-3.10.22/environ.c\r
+//#ifdef __WATCOMC__\r
+#define FARCORELEFTPTR __huge\r
+long HC_farcoreleft()\r
+{\r
+ void FARCORELEFTPTR *hp;\r
+ static long rc=736L;\r
+ long s_rc;\r
+\r
+ s_rc=rc;\r
+ rc+=2L;\r
+ do\r
+ hp=halloc(rc-=2L, 1024);\r
+ while(hp==NULL&&rc>0L);\r
+ if(hp!=NULL)\r
+ hfree(hp);\r
+ if(rc<s_rc)\r
+ return(rc*1024L);\r
+ do\r
+ {\r
+ hp=halloc(rc+=16L, 1024);\r
+ if(hp!=NULL)\r
+ hfree(hp);\r
+ } while(hp!=NULL);\r
+ return((rc-16L)*1024L);\r
+}\r
+//#endif\r
+\r
+void\r
+#ifdef __BORLANDC__\r
+ *\r
+#endif\r
+#ifdef __WATCOMC__\r
+ __near*\r
+#endif\r
+HC_LargestFreeBlock(size_t* Size)\r
{\r
size_t s0, s1;\r
- void CHIKAKU* p;\r
+#ifdef __BORLANDC__\r
+ void * p;\r
+#endif\r
+#ifdef __WATCOMC__\r
+ void __near* p;\r
+#endif\r
\r
s0 = ~(size_t)0 ^ (~(size_t)0 >> 1);\r
+#ifdef __BORLANDC__\r
+ while (s0 && (p = malloc(s0)) == NULL)\r
+#endif\r
+#ifdef __WATCOMC__\r
while (s0 && (p = _nmalloc(s0)) == NULL)\r
+#endif\r
s0 >>= 1;\r
\r
if (p)\r
+#ifdef __BORLANDC__\r
+ free(p);\r
+#endif\r
+#ifdef __WATCOMC__\r
_nfree(p);\r
+#endif\r
\r
s1 = s0 >> 1;\r
while (s1)\r
{\r
+#ifdef __BORLANDC__\r
+ if ((p = malloc(s0 + s1)) != NULL)\r
+#endif\r
+#ifdef __WATCOMC__\r
if ((p = _nmalloc(s0 + s1)) != NULL)\r
+#endif\r
{\r
s0 += s1;\r
+#ifdef __BORLANDC__\r
+ free(p);\r
+#endif\r
+#ifdef __WATCOMC__\r
_nfree(p);\r
+#endif\r
}\r
s1 >>= 1;\r
}\r
+#ifdef __BORLANDC__\r
+ while (s0 && (p = malloc(s0)) == NULL)\r
+#endif\r
+#ifdef __WATCOMC__\r
while (s0 && (p = _nmalloc(s0)) == NULL)\r
+#endif\r
s0 ^= s0 & -s0;\r
\r
*Size = s0;\r
size_t HC_coreleft(void)\r
{\r
size_t total = 0;\r
- void CHIKAKU* pFirst = NULL;\r
- void CHIKAKU* pLast = NULL;\r
+ void __near* pFirst = NULL;\r
+ void __near* pLast = NULL;\r
for(;;)\r
{\r
size_t largest;\r
- void CHIKAKU* p = (void CHIKAKU *)HC_LargestFreeBlock(&largest);\r
- if (largest < sizeof(void CHIKAKU*))\r
+ void __near* p = (void __near *)HC_LargestFreeBlock(&largest);\r
+ if (largest < sizeof(void __near*))\r
{\r
if (p != NULL)\r
+#ifdef __BORLANDC__\r
+ free(p);\r
+#endif\r
+#ifdef __WATCOMC__\r
_nfree(p);\r
-\r
+#endif\r
break;\r
}\r
- *(void CHIKAKU* CHIKAKU*)p = NULL;\r
+ *(void __near* __near*)p = NULL;\r
total += largest;\r
if (pFirst == NULL)\r
pFirst = p;\r
\r
if (pLast != NULL)\r
- *(void CHIKAKU* CHIKAKU*)pLast = p;\r
+ *(void __near* __near*)pLast = p;\r
pLast = p;\r
}\r
\r
while (pFirst != NULL)\r
{\r
- void CHIKAKU* p = *(void CHIKAKU* CHIKAKU*)pFirst;\r
+ void __near* p = *(void __near* __near*)pFirst;\r
+#ifdef __BORLANDC__\r
+ free(pFirst);\r
+#endif\r
+#ifdef __WATCOMC__\r
_nfree(pFirst);\r
-\r
+#endif\r
pFirst = p;\r
}\r
return total;\r
return p;\r
}\r
\r
-size_t HC_farcoreleft(void)\r
+size_t HC_farcoreleft_(void)\r
{\r
size_t total = 0;\r
void far* pFirst = NULL;\r
}\r
\r
#ifdef __WATCOMC__\r
-/*\r
-void huge* HC_LargestHugeFreeBlock(size_t* Size)\r
+/*void huge* LargestHugeFreeBlock(size_t* Size)\r
{\r
size_t s0, s1;\r
void huge* p;\r
return p;\r
}\r
\r
-size_t HC_hugecoreleft(void)\r
+size_t _hugecoreleft(void)\r
{\r
size_t total = 0;\r
void huge* pFirst = NULL;\r
for(;;)\r
{\r
size_t largest;\r
- void huge* p = HC_LargestHugeFreeBlock(&largest);\r
+ void huge* p = LargestHugeFreeBlock(&largest);\r
if (largest < sizeof(void huge*))\r
{\r
if (p != NULL)\r
void __based(segu)* pFirst = NULL;\r
void __based(segu)* pLast = NULL;\r
// allocate based heap\r
- segu = _bheapseg( 1024 );\r
+ segu = _bHC_heapseg( 1024 );\r
if( segu == _NULLSEG ) {\r
printf( "Unable to allocate based heap\n" );\r
return 0;\r
struct _heapinfo fh_info, nh_info, h_info;\r
int heap_status;\r
size_t h_free, nh_free, fh_free, h_total, nh_total, fh_total, h_used, nh_used, fh_used;\r
- byte scratch[1024],str[16];\r
+ byte scratch[1024],str[16];\r
\r
HC_OpenDebug(gvar);\r
\r
printmeminfoline(&scratch, "Near", nh_total, nh_used, nh_free);\r
printmeminfoline(&scratch, "Far", fh_total, fh_used, fh_free);\r
strcat(scratch,"---------------- -------- -------- --------\n");\r
- strcat(scratch,"coreleft = "); ultoa((dword)HC_coreleft(),str,10); strcat(scratch,str); strcat(scratch,"\n");\r
- strcat(scratch,"farcoreleft = "); ultoa((dword)HC_farcoreleft(),str,10); strcat(scratch,str); strcat(scratch,"\n");\r
- strcat(scratch,"GetFreeSize = "); ultoa((dword)HC_GetFreeSize(),str,10); strcat(scratch,str); strcat(scratch,"\n");\r
- strcat(scratch,"GetNearFreeSize = "); ultoa((dword)HC_GetNearFreeSize(),str,10); strcat(scratch,str); strcat(scratch,"\n");\r
- strcat(scratch,"GetFarFreeSize = "); ultoa((dword)HC_GetFarFreeSize(),str,10); strcat(scratch,str); strcat(scratch,"\n");\r
+ strcat(scratch,"HC_coreleft = "); ultoa((dword)HC_coreleft(),str,10); strcat(scratch,str); strcat(scratch,"\n");\r
+ strcat(scratch,"HC_farcoreleft = "); ultoa((dword)HC_farcoreleft(),str,10); strcat(scratch,str); strcat(scratch,"\n");\r
+ strcat(scratch,"HC_GetFreeSize = "); ultoa((dword)HC_GetFreeSize(),str,10); strcat(scratch,str); strcat(scratch,"\n");\r
+ strcat(scratch,"HC_GetNearFreeSize = "); ultoa((dword)HC_GetNearFreeSize(),str,10); strcat(scratch,str); strcat(scratch,"\n");\r
+ strcat(scratch,"HC_GetFarFreeSize = "); ultoa((dword)HC_GetFarFreeSize(),str,10); strcat(scratch,str); strcat(scratch,"\n");\r
strcat(scratch,"memavl = "); ultoa((dword)_memavl(),str,10); strcat(scratch,str); strcat(scratch,"\n");\r
strcat(scratch,"stackavail = "); ultoa((dword)stackavail(),str,10); strcat(scratch,str); strcat(scratch,"\n");\r
write(gvar->handle.heaphandle,scratch,strlen(scratch));\r
\r
#include "src/lib/16_head.h"\r
\r
+long HC_farcoreleft();\r
#ifdef __BORLANDC__\r
-#define CHIKAKU near\r
-#define _nmalloc(size) malloc(size)\r
-#define _nfree(block) free(block)\r
-#define _nrealloc(block,size) realloc(block,size)\r
-#define _ncalloc(num,size) calloc(num,size)\r
-#define _nheapmin() 0\r
+void * HC_LargestFreeBlock(size_t* Size);\r
#endif\r
#ifdef __WATCOMC__\r
-//#define SETTOUJ I_CHIKAKU _n\r
-#define CHIKAKU __near\r
+void __near* HC_LargestFreeBlock(size_t* Size);\r
#endif\r
-\r
-void CHIKAKU* HC_LargestFreeBlock(size_t* Size);\r
size_t HC_coreleft(void);\r
void far* HC_LargestFarFreeBlock(size_t* Size);\r
-size_t HC_farcoreleft(void);\r
-//void huge* HC_LargestHugeFreeBlock(size_t* Size);\r
-//size_t HC_hugecoreleft(void);\r
-//void __based(__self)* LargestBasedFreeBlock(size_t* Size);\r
-//size_t _basedcoreleft(void);\r
+size_t HC_farcoreleft_(void);\r
+/*void huge* LargestHugeFreeBlock(size_t* Size);\r
+size_t _hugecoreleft(void);\r
+void __based(__self)* LargestBasedFreeBlock(size_t* Size);\r
+size_t _basedcoreleft(void);*/\r
size_t HC_GetFreeSize(void);\r
size_t HC_GetFarFreeSize(void);\r
size_t HC_GetNearFreeSize(void);\r
return retstr;\r
}\r
\r
+\r
+\r
//from http://quiz.geeksforgeeks.org/c-program-cyclically-rotate-array-one/\r
void rotateR(byte *arr, byte n)\r
{\r
#include <unistd.h>\r
#include <alloca.h>\r
#include <stdint.h> //16_vrs.h\r
-#include "src/lib/16_dbg.h"\r
#endif\r
#ifdef __BORLANDC__\r
#include <values.h>\r
#include "src/lib/16_t.h"\r
#include "src/lib/16_tdef.h"\r
#include "src/lib/nyan/kitten.h"\r
+#include "src/lib/16_dbg.h"\r
\r
#define VERSION __DATE__ " " __TIME__\r
\r
\r
#define nil ((void *)0)\r
#ifdef __BORLANDC__\r
-#define _FCORELEFT 0x90000UL-16UL\r
+//#define _FCORELEFT 0x90000UL-16UL\r
+#define _FCORELEFT HC_farcoreleft()\r
#define sprite\r
#endif\r
#ifdef __WATCOMC__\r
-#define _FCORELEFT 0x90000UL+16UL\r
+//#define _FCORELEFT 0x90000UL+16UL\r
+#define _FCORELEFT HC_farcoreleft()\r
/*static union REGS CPURegs;\r
\r
#define _AX CPURegs.x.ax\r
#include "src/lib/16_vl.h"\r
#include "src/lib/16_ca.h"\r
#include "src/lib/16_mm.h"\r
-#ifdef __WATCOMC__\r
#include "src/lib/16_pm.h"\r
-#endif\r
+\r
\r
//#define DEBUG_MAPDATA\r
//#define DEBUG_MAPVARS\r
======================
*/
-/*void MML_UseSpace(word segstart, dword seglength, global_game_variables_t *gvar)
-{
- mmblocktype far *scan,far *last;
- word segm=1;
- word oldend;
- dword segmlen;
- dword extra;
-
- scan = last = gvar->mm.mmhead;
- gvar->mm.mmrover = gvar->mm.mmhead; // reset rover to start of memory
-
-//
-// search for the block that contains the range of segments
-//
- while(scan->start+scan->length < segstart)
- {
- last = scan;
- scan = scan->next;
- }
-
-//
-// take the given range out of the block
-//
- oldend = scan->start + scan->length;
+/*
extra = oldend - (segstart+seglength);
segmlen=extra;
printf("segmlen=%lu\n", segmlen);
}
//++++todo: linked list of segment!
- if(segstart == scan->start)
- {
- last->next = scan->next; // unlink block
- FREEBLOCK(scan);
- scan = last;
- }
- else
- scan->length = segstart-scan->start; // shorten block
-
- if(extra > 0)
- {
- GETNEWBLOCK;
- gvar->mm.mmnew->useptr = NULL;
-
- gvar->mm.mmnew->next = scan->next;
- scan->next = gvar->mm.mmnew;
- gvar->mm.mmnew->start = segstart+seglength;
- gvar->mm.mmnew->length = extra;
- gvar->mm.mmnew->attributes = LOCKBIT;
- }//else if(segm>0) goto segu;
-
-}*/
+*/
void MML_UseSpace(word segstart, dword seglength, global_game_variables_t *gvar)
{
mmblocktype far *scan,far *last;
gvar->mm.mmnew->start = segstart+seglength;
gvar->mm.mmnew->length = extra;
gvar->mm.mmnew->attributes = LOCKBIT;
- }
+ }//else if(segm>0) goto segu;
}
#ifdef __WATCOMC__
_nheapgrow();
#endif
-
- length=(word)_memavl();//(word)coreleft();//(dword)GetFreeSize();
-
+ length=(word)_memavl();//(word)coreleft();
+ //start = gvar->mm.nearheap = _fmalloc(length);
#ifdef __WATCOMC__
start = (void __far *)(gvar->mm.nearheap = _nmalloc(length));
#endif
#ifdef __BORLANDC__
start = (void far *)(gvar->mm.nearheap = malloc(length));
#endif
+
length -= 16-(FP_OFF(start)&15);
length -= SAVENEARHEAP;
seglength = length / 16; // now in paragraphs
//
// get all available far conventional memory segments
//
- //printf("_FARCORELEFT %lu\n", _FCORELEFT);
#ifdef __WATCOMC__
_fheapgrow();
- length=_FCORELEFT;//_fcoreleft();//(dword)GetFarFreeSize();//0xffffUL*4UL;
#endif
#ifdef __BORLANDC__
-//0000 printf("farcoreleft() %lu\n", farcoreleft());
-//0000 printf("(farcoreleft()+32)-_FCORELEFT %d\n", (sword)((farcoreleft()+32)-_FCORELEFT));
- length=farcoreleft();//_fcoreleft();//(dword)GetFarFreeSize();//0xffffUL*4UL;
+// printf("farcoreleft() %lu\n", farcoreleft());
+// printf("(farcoreleft()+32)-_FCORELEFT %d\n", (sword)((farcoreleft()+32)-_FCORELEFT));
#endif
- start = gvar->mm.farheap = _fmalloc(length);
- //start = gvar->mm.farheap = halloc(length, 1);
+ length=_FCORELEFT;
+ start = gvar->mm.farheap = _fmalloc(length);//start = gvar->mm.farheap = halloc(length, 1);
+
length -= 16-(FP_OFF(start)&15);
length -= SAVEFARHEAP;
seglength = length / 16; // now in paragraphs
gvar->mm.mmnew->useptr = baseptr;
//if(gvar->mm.mmnew->useptr==NULL){
#ifdef __DEBUG_MM__
+ if(dbg_debugmm>0){
printf("MM_GetPtr\n");
//%04x
printf(" baseptr=%Fp ", baseptr); printf("useptr=%Fp\n", gvar->mm.mmnew->useptr);
printf(" *baseptr=%Fp ", *baseptr); printf("*useptr=%Fp\n", *(gvar->mm.mmnew->useptr));
printf(" &baseptr=%Fp ", &baseptr); printf("&useptr=%Fp\n", &(gvar->mm.mmnew->useptr));
+ }
#endif
//Quit(gvar, "gvar->mm.mmnew->useptr==NULL"); }
gvar->mm.mmnew->attributes = BASEATTRIBUTES;
if(!scan)
{
- printf("MM_FreePtr: Block not found!\n");
- return;
+ Quit(gvar, "MM_FreePtr: Block not found!\n");
+ //printf("MM_FreePtr: Block not found!\n"); return;
}
last->next = scan->next;
byte lock,purge;
FILE *dumpfile;
+#ifdef __WATCOMC__
+ _nfree(gvar->mm.nearheap);
+#endif
+#ifdef __BORLANDC__
free(gvar->mm.nearheap);
+#endif
#ifdef __BORLANDC__
dumpfile = fopen ("mmdump.16b","w");
#endif
on usage where you need pointer convert memseg type (segment) to far pointer by\r
MK_FP(segment value, 0)*/\r
#ifdef __WATCOMC__\r
+//typedef void __based( void ) * memptr; ////old //----typedef void __based(__self) * memptr;\r
//typedef unsigned short _seg; // it will contains segment value (as Borland _seg)\r
#define _seg __based( void )\r
#define __SEGA __segment\r
#endif\r
#ifdef __BORLANDC__\r
-//typedef void _seg * memptr;\r
+#define _memavl() coreleft()\r
#define __SEGA _seg\r
#endif\r
\r
-typedef void _seg * memptr;//typedef void __based( void ) * memptr; ////old //----typedef void __based(__self) * memptr;\r
-#ifdef __BORLANDC__\r
-#define _memavl() coreleft()\r
-#endif\r
+typedef void _seg * memptr;\r
+\r
#ifdef __WATCOMC__\r
#define _argv __argv\r
#define _argc __argc\r
#include "src/lib/16_mm.h"\r
#include "src/lib/16_ca.h"\r
#include "src/lib/16_in.h"\r
+#include "src/lib/16_dbg.h"\r
#include "src/lib/16_vl.h"\r
#include "src/lib/testpatt.h"\r
\r
boolean mmstarted, bombonerror, mmerror;\r
void far *farheap;\r
#ifdef __BORLANDC__\r
- void far *nearheap;\r
+ void *nearheap;\r
#endif\r
#ifdef __WATCOMC__\r
void __near *nearheap;\r
PMNumBlocks;\r
long PMFrameCount;\r
PageListStruct far *PMPages;\r
- __SEGA *PMSegPages;\r
+ memptr/*__SEGA*/ *PMSegPages;\r
pm_mmi_t mm;\r
pm_emmi_t emm;\r
pm_xmmi_t xmm;\r