From c1e6a21feec58f3f68bbc02253443e6865762a3e Mon Sep 17 00:00:00 2001 From: sparky4 Date: Mon, 27 Feb 2017 16:25:27 -0600 Subject: [PATCH] hmm where else is PM used... --- DEBUG.16B | 212 +++++++++++++++++++++++------------------------ DEBUG.16W | 212 +++++++++++++++++++++++------------------------ HEAP.16W | 50 +++++------ MMDUMP.16B | Bin 2550 -> 2550 bytes MMDUMP.16W | Bin 2550 -> 2550 bytes bcexmm.dsk | Bin 981 -> 981 bytes bcexmm.exe | Bin 109640 -> 109247 bytes bcexmm.prj | Bin 8450 -> 8714 bytes src/exmmtest.c | 9 +- src/lib/16_dbg.c | 164 ++++++++++++++++++------------------ src/lib/16_dbg.h | 5 +- src/lib/16_in.c | 10 +++ src/lib/16_in.h | 2 + 13 files changed, 342 insertions(+), 322 deletions(-) diff --git a/DEBUG.16B b/DEBUG.16B index 629832b7..20ac566a 100755 --- a/DEBUG.16B +++ b/DEBUG.16B @@ -1,210 +1,210 @@ -Seg:0 Size:4864 Owner:0x0 +Seg:0 Size:4863 Owner:0x0 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++0 -Seg:1300 Size:256 Owner:0x2e21 +Seg:12ff Size:256 Owner:0x2e15 ++++ -Seg:1400 Size:256 Owner:0x2c24 +Seg:13ff Size:256 Owner:0x2c18 ++++++ +Seg:14ff Size:256 Owner:0x2c1a ++++ -Seg:1500 Size:256 Owner:0x2c26 +Seg:15ff Size:256 Owner:0x2c1c ++++ -Seg:1600 Size:256 Owner:0x2c28 +Seg:16ff Size:256 Owner:0x2c1e ++++ -Seg:1700 Size:256 Owner:0x2c2a +Seg:17ff Size:256 Owner:0x2c20 ++++ -Seg:1800 Size:256 Owner:0x2c2c +Seg:18ff Size:256 Owner:0x2c22 ++++++ +Seg:19ff Size:256 Owner:0x2c24 ++++ -Seg:1900 Size:256 Owner:0x2c2e +Seg:1aff Size:256 Owner:0x2c26 ++++ -Seg:1a00 Size:256 Owner:0x2c30 +Seg:1bff Size:256 Owner:0x2c28 ++++ -Seg:1b00 Size:256 Owner:0x2c32 -++++ -Seg:1c00 Size:256 Owner:0x2c34 -++++ -Seg:1d00 Size:256 Owner:0x2c36 -++++ -Seg:1e00 Size:256 Owner:0x2c38 +Seg:1cff Size:256 Owner:0x2c2a ++++ +Seg:1dff Size:256 Owner:0x2c2c ++++++ Seg:1fde Size:34 Owner:0x0 ++ -Seg:2000 Size:256 Owner:0x2c3a +Seg:2000 Size:256 Owner:0x2c2e ++++ -Seg:2100 Size:256 Owner:0x2c3c +Seg:2100 Size:256 Owner:0x2c30 ++++ -Seg:2200 Size:256 Owner:0x2c3e +Seg:2200 Size:256 Owner:0x2c32 ++++ -Seg:2300 Size:256 Owner:0x2c40 +Seg:2300 Size:256 Owner:0x2c34 ++++ -Seg:2400 Size:256 Owner:0x2c42 +Seg:2400 Size:256 Owner:0x2c36 ++++ -Seg:2500 Size:256 Owner:0x2c44 +Seg:2500 Size:256 Owner:0x2c38 ++++ -Seg:2600 Size:256 Owner:0x2c46 +Seg:2600 Size:256 Owner:0x2c3a ++++ -Seg:2700 Size:256 Owner:0x2c48 +Seg:2700 Size:256 Owner:0x2c3c ++++ -Seg:2800 Size:256 Owner:0x2c4a +Seg:2800 Size:256 Owner:0x2c3e ++++ -Seg:2900 Size:256 Owner:0x2c4c +Seg:2900 Size:256 Owner:0x2c40 ++++ -Seg:2a00 Size:256 Owner:0x2c4e +Seg:2a00 Size:256 Owner:0x2c42 ++++ -Seg:2b00 Size:256 Owner:0x2c50 +Seg:2b00 Size:256 Owner:0x2c44 ++++ -Seg:2c00 Size:256 Owner:0x2c52 +Seg:2c00 Size:256 Owner:0x2c46 ++++ -Seg:2d00 Size:256 Owner:0x2c54 +Seg:2d00 Size:256 Owner:0x2c48 ++++ -Seg:2e00 Size:256 Owner:0x2c56 +Seg:2e00 Size:256 Owner:0x2c4a ++++ -Seg:2f00 Size:256 Owner:0x2c58 +Seg:2f00 Size:256 Owner:0x2c4c ++++ -Seg:3000 Size:256 Owner:0x2c5a +Seg:3000 Size:256 Owner:0x2c4e ++++ -Seg:3100 Size:256 Owner:0x2c5c +Seg:3100 Size:256 Owner:0x2c50 ++++ -Seg:3200 Size:256 Owner:0x2c5e +Seg:3200 Size:256 Owner:0x2c52 ++++ -Seg:3300 Size:256 Owner:0x2c60 +Seg:3300 Size:256 Owner:0x2c54 ++++ -Seg:3400 Size:256 Owner:0x2c62 +Seg:3400 Size:256 Owner:0x2c56 ++++ -Seg:3500 Size:256 Owner:0x2c64 +Seg:3500 Size:256 Owner:0x2c58 ++++ -Seg:3600 Size:256 Owner:0x2c66 +Seg:3600 Size:256 Owner:0x2c5a ++++ -Seg:3700 Size:256 Owner:0x2c68 +Seg:3700 Size:256 Owner:0x2c5c ++++ -Seg:3800 Size:256 Owner:0x2c6a +Seg:3800 Size:256 Owner:0x2c5e ++++ -Seg:3900 Size:256 Owner:0x2c6c +Seg:3900 Size:256 Owner:0x2c60 ++++ -Seg:3a00 Size:256 Owner:0x2c6e +Seg:3a00 Size:256 Owner:0x2c62 ++++ -Seg:3b00 Size:256 Owner:0x2c70 +Seg:3b00 Size:256 Owner:0x2c64 ++++ -Seg:3c00 Size:256 Owner:0x2c72 +Seg:3c00 Size:256 Owner:0x2c66 ++++ -Seg:3d00 Size:256 Owner:0x2c74 +Seg:3d00 Size:256 Owner:0x2c68 ++++ -Seg:3e00 Size:256 Owner:0x2c76 +Seg:3e00 Size:256 Owner:0x2c6a ++++ -Seg:3f00 Size:256 Owner:0x2c78 +Seg:3f00 Size:256 Owner:0x2c6c ++++ -Seg:4000 Size:256 Owner:0x2c7a +Seg:4000 Size:256 Owner:0x2c6e ++++ -Seg:4100 Size:256 Owner:0x2c7c +Seg:4100 Size:256 Owner:0x2c70 ++++ -Seg:4200 Size:256 Owner:0x2c7e +Seg:4200 Size:256 Owner:0x2c72 ++++ -Seg:4300 Size:256 Owner:0x2c80 +Seg:4300 Size:256 Owner:0x2c74 ++++ -Seg:4400 Size:256 Owner:0x2c82 +Seg:4400 Size:256 Owner:0x2c76 ++++ -Seg:4500 Size:256 Owner:0x2c84 +Seg:4500 Size:256 Owner:0x2c78 ++++ -Seg:4600 Size:256 Owner:0x2c86 +Seg:4600 Size:256 Owner:0x2c7a ++++ -Seg:4700 Size:256 Owner:0x2c88 +Seg:4700 Size:256 Owner:0x2c7c ++++ -Seg:4800 Size:256 Owner:0x2c8a +Seg:4800 Size:256 Owner:0x2c7e ++++ -Seg:4900 Size:256 Owner:0x2c8c +Seg:4900 Size:256 Owner:0x2c80 ++++ -Seg:4a00 Size:256 Owner:0x2c8e +Seg:4a00 Size:256 Owner:0x2c82 ++++ -Seg:4b00 Size:256 Owner:0x2c90 +Seg:4b00 Size:256 Owner:0x2c84 ++++ -Seg:4c00 Size:256 Owner:0x2c92 +Seg:4c00 Size:256 Owner:0x2c86 ++++ -Seg:4d00 Size:256 Owner:0x2c94 +Seg:4d00 Size:256 Owner:0x2c88 ++++ -Seg:4e00 Size:256 Owner:0x2c96 +Seg:4e00 Size:256 Owner:0x2c8a ++++ -Seg:4f00 Size:256 Owner:0x2c98 +Seg:4f00 Size:256 Owner:0x2c8c ++++ -Seg:5000 Size:256 Owner:0x2c9a +Seg:5000 Size:256 Owner:0x2c8e ++++ -Seg:5100 Size:256 Owner:0x2c9c +Seg:5100 Size:256 Owner:0x2c90 ++++ -Seg:5200 Size:256 Owner:0x2c9e +Seg:5200 Size:256 Owner:0x2c92 ++++ -Seg:5300 Size:256 Owner:0x2ca0 +Seg:5300 Size:256 Owner:0x2c94 ++++ -Seg:5400 Size:256 Owner:0x2ca2 +Seg:5400 Size:256 Owner:0x2c96 ++++ -Seg:5500 Size:256 Owner:0x2ca4 +Seg:5500 Size:256 Owner:0x2c98 ++++ -Seg:5600 Size:256 Owner:0x2ca6 +Seg:5600 Size:256 Owner:0x2c9a ++++ -Seg:5700 Size:256 Owner:0x2ca8 +Seg:5700 Size:256 Owner:0x2c9c ++++ -Seg:5800 Size:256 Owner:0x2caa +Seg:5800 Size:256 Owner:0x2c9e ++++ -Seg:5900 Size:256 Owner:0x2cac +Seg:5900 Size:256 Owner:0x2ca0 ++++ -Seg:5a00 Size:256 Owner:0x2cae +Seg:5a00 Size:256 Owner:0x2ca2 ++++ -Seg:5b00 Size:256 Owner:0x2cb0 +Seg:5b00 Size:256 Owner:0x2ca4 ++++ -Seg:5c00 Size:256 Owner:0x2cb2 +Seg:5c00 Size:256 Owner:0x2ca6 ++++ -Seg:5d00 Size:256 Owner:0x2cb4 +Seg:5d00 Size:256 Owner:0x2ca8 ++++ -Seg:5e00 Size:256 Owner:0x2cb6 +Seg:5e00 Size:256 Owner:0x2caa ++++ -Seg:5f00 Size:256 Owner:0x2cb8 +Seg:5f00 Size:256 Owner:0x2cac ++++ -Seg:6000 Size:256 Owner:0x2cba +Seg:6000 Size:256 Owner:0x2cae ++++ -Seg:6100 Size:256 Owner:0x2cbc +Seg:6100 Size:256 Owner:0x2cb0 ++++ -Seg:6200 Size:256 Owner:0x2cbe +Seg:6200 Size:256 Owner:0x2cb2 ++++ -Seg:6300 Size:256 Owner:0x2cc0 +Seg:6300 Size:256 Owner:0x2cb4 ++++ -Seg:6400 Size:256 Owner:0x2cc2 +Seg:6400 Size:256 Owner:0x2cb6 ++++ -Seg:6500 Size:256 Owner:0x2cc4 +Seg:6500 Size:256 Owner:0x2cb8 ++++ -Seg:6600 Size:256 Owner:0x2cc6 +Seg:6600 Size:256 Owner:0x2cba ++++ -Seg:6700 Size:256 Owner:0x2cc8 +Seg:6700 Size:256 Owner:0x2cbc ++++ -Seg:6800 Size:256 Owner:0x2cca +Seg:6800 Size:256 Owner:0x2cbe ++++ -Seg:6900 Size:256 Owner:0x2ccc +Seg:6900 Size:256 Owner:0x2cc0 ++++ -Seg:6a00 Size:256 Owner:0x2cce +Seg:6a00 Size:256 Owner:0x2cc2 ++++ -Seg:6b00 Size:256 Owner:0x2cd0 +Seg:6b00 Size:256 Owner:0x2cc4 ++++ -Seg:6c00 Size:256 Owner:0x2cd2 +Seg:6c00 Size:256 Owner:0x2cc6 ++++ -Seg:6d00 Size:256 Owner:0x2cd4 +Seg:6d00 Size:256 Owner:0x2cc8 ++++ -Seg:6e00 Size:256 Owner:0x2cd6 +Seg:6e00 Size:256 Owner:0x2cca ++++ -Seg:6f00 Size:256 Owner:0x2cd8 +Seg:6f00 Size:256 Owner:0x2ccc ++++ -Seg:7000 Size:256 Owner:0x2cda +Seg:7000 Size:256 Owner:0x2cce ++++ -Seg:7100 Size:256 Owner:0x2cdc +Seg:7100 Size:256 Owner:0x2cd0 ++++ -Seg:7200 Size:256 Owner:0x2cde +Seg:7200 Size:256 Owner:0x2cd2 ++++ -Seg:7300 Size:256 Owner:0x2ce0 +Seg:7300 Size:256 Owner:0x2cd4 ++++ -Seg:7400 Size:256 Owner:0x2ce2 +Seg:7400 Size:256 Owner:0x2cd6 ++++ -Seg:7500 Size:256 Owner:0x2ce4 +Seg:7500 Size:256 Owner:0x2cd8 ++++ -Seg:7600 Size:256 Owner:0x2ce6 +Seg:7600 Size:256 Owner:0x2cda ++++ -Seg:7700 Size:256 Owner:0x2ce8 +Seg:7700 Size:256 Owner:0x2cdc ++++ -Seg:7800 Size:256 Owner:0x2cea +Seg:7800 Size:256 Owner:0x2cde ++++ -Seg:7900 Size:273 Owner:0x2bfa +Seg:7900 Size:273 Owner:0x2bee ++++ Seg:9f3f Size:24768 Owner:0x0 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/DEBUG.16W b/DEBUG.16W index 18505d71..567470da 100755 --- a/DEBUG.16W +++ b/DEBUG.16W @@ -1,210 +1,210 @@ -Seg:0 Size:9008 Owner:0x0 +Seg:0 Size:9018 Owner:0x0 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++0000 -Seg:2421 Size:39 Owner:0x0 +Seg:242a Size:39 Owner:0x0 ++ -Seg:2448 Size:256 Owner:0x1dc4 +Seg:2451 Size:256 Owner:0x1dc4 ++++ -Seg:2548 Size:256 Owner:0x1bb6 +Seg:2551 Size:256 Owner:0x1bb6 ++++ -Seg:2648 Size:256 Owner:0x1bb8 +Seg:2651 Size:256 Owner:0x1bb8 ++++ -Seg:2748 Size:256 Owner:0x1bba -++++ -Seg:2848 Size:256 Owner:0x1bbc +Seg:2751 Size:256 Owner:0x1bba +++++ -Seg:2948 Size:256 Owner:0x1bbe +Seg:2851 Size:256 Owner:0x1bbc ++++ -Seg:2a48 Size:256 Owner:0x1bc0 +Seg:2951 Size:256 Owner:0x1bbe ++++ -Seg:2b48 Size:256 Owner:0x1bc2 +Seg:2a51 Size:256 Owner:0x1bc0 ++++ -Seg:2c48 Size:256 Owner:0x1bc4 +Seg:2b51 Size:256 Owner:0x1bc2 ++++ -Seg:2d48 Size:256 Owner:0x1bc6 +Seg:2c51 Size:256 Owner:0x1bc4 +++++ -Seg:2e48 Size:256 Owner:0x1bc8 +Seg:2d51 Size:256 Owner:0x1bc6 ++++ -Seg:2f48 Size:256 Owner:0x1bca +Seg:2e51 Size:256 Owner:0x1bc8 ++++ -Seg:3048 Size:256 Owner:0x1bcc +Seg:2f51 Size:256 Owner:0x1bca ++++ -Seg:3148 Size:256 Owner:0x1bce +Seg:3051 Size:256 Owner:0x1bcc ++++ -Seg:3248 Size:256 Owner:0x1bd0 +Seg:3151 Size:256 Owner:0x1bce +++++ -Seg:3348 Size:256 Owner:0x1bd2 +Seg:3251 Size:256 Owner:0x1bd0 ++++ -Seg:3448 Size:256 Owner:0x1bd4 +Seg:3351 Size:256 Owner:0x1bd2 ++++ -Seg:3548 Size:256 Owner:0x1bd6 +Seg:3451 Size:256 Owner:0x1bd4 ++++ -Seg:3648 Size:256 Owner:0x1bd8 +Seg:3551 Size:256 Owner:0x1bd6 ++++ -Seg:3748 Size:256 Owner:0x1bda +Seg:3651 Size:256 Owner:0x1bd8 +++++ -Seg:3848 Size:256 Owner:0x1bdc +Seg:3751 Size:256 Owner:0x1bda ++++ -Seg:3948 Size:256 Owner:0x1bde +Seg:3851 Size:256 Owner:0x1bdc ++++ -Seg:3a48 Size:256 Owner:0x1be0 +Seg:3951 Size:256 Owner:0x1bde ++++ -Seg:3b48 Size:256 Owner:0x1be2 +Seg:3a51 Size:256 Owner:0x1be0 ++++ -Seg:3c48 Size:256 Owner:0x1be4 +Seg:3b51 Size:256 Owner:0x1be2 +++++ -Seg:3d48 Size:256 Owner:0x1be6 +Seg:3c51 Size:256 Owner:0x1be4 ++++ -Seg:3e48 Size:256 Owner:0x1be8 +Seg:3d51 Size:256 Owner:0x1be6 ++++ -Seg:3f48 Size:256 Owner:0x1bea +Seg:3e51 Size:256 Owner:0x1be8 ++++ -Seg:4048 Size:256 Owner:0x1bec +Seg:3f51 Size:256 Owner:0x1bea ++++ -Seg:4148 Size:256 Owner:0x1bee +Seg:4051 Size:256 Owner:0x1bec +++++ -Seg:4248 Size:256 Owner:0x1bf0 +Seg:4151 Size:256 Owner:0x1bee ++++ -Seg:4348 Size:256 Owner:0x1bf2 +Seg:4251 Size:256 Owner:0x1bf0 ++++ -Seg:4448 Size:256 Owner:0x1bf4 +Seg:4351 Size:256 Owner:0x1bf2 ++++ -Seg:4548 Size:256 Owner:0x1bf6 +Seg:4451 Size:256 Owner:0x1bf4 ++++ -Seg:4648 Size:256 Owner:0x1bf8 +Seg:4551 Size:256 Owner:0x1bf6 +++++ -Seg:4748 Size:256 Owner:0x1bfa +Seg:4651 Size:256 Owner:0x1bf8 ++++ -Seg:4848 Size:256 Owner:0x1bfc +Seg:4751 Size:256 Owner:0x1bfa ++++ -Seg:4948 Size:256 Owner:0x1bfe +Seg:4851 Size:256 Owner:0x1bfc ++++ -Seg:4a48 Size:256 Owner:0x1c00 +Seg:4951 Size:256 Owner:0x1bfe ++++ -Seg:4b48 Size:256 Owner:0x1c02 +Seg:4a51 Size:256 Owner:0x1c00 +++++ -Seg:4c48 Size:256 Owner:0x1c04 +Seg:4b51 Size:256 Owner:0x1c02 ++++ -Seg:4d48 Size:256 Owner:0x1c06 +Seg:4c51 Size:256 Owner:0x1c04 ++++ -Seg:4e48 Size:256 Owner:0x1c08 +Seg:4d51 Size:256 Owner:0x1c06 ++++ -Seg:4f48 Size:256 Owner:0x1c0a +Seg:4e51 Size:256 Owner:0x1c08 ++++ -Seg:5048 Size:256 Owner:0x1c0c +Seg:4f51 Size:256 Owner:0x1c0a +++++ -Seg:5148 Size:256 Owner:0x1c0e +Seg:5051 Size:256 Owner:0x1c0c ++++ -Seg:5248 Size:256 Owner:0x1c10 +Seg:5151 Size:256 Owner:0x1c0e ++++ -Seg:5348 Size:256 Owner:0x1c12 +Seg:5251 Size:256 Owner:0x1c10 ++++ -Seg:5448 Size:256 Owner:0x1c14 +Seg:5351 Size:256 Owner:0x1c12 ++++ -Seg:5548 Size:256 Owner:0x1c16 +Seg:5451 Size:256 Owner:0x1c14 +++++ -Seg:5648 Size:256 Owner:0x1c18 +Seg:5551 Size:256 Owner:0x1c16 ++++ -Seg:5748 Size:256 Owner:0x1c1a +Seg:5651 Size:256 Owner:0x1c18 ++++ -Seg:5848 Size:256 Owner:0x1c1c +Seg:5751 Size:256 Owner:0x1c1a ++++ -Seg:5948 Size:256 Owner:0x1c1e +Seg:5851 Size:256 Owner:0x1c1c ++++ -Seg:5a48 Size:256 Owner:0x1c20 +Seg:5951 Size:256 Owner:0x1c1e +++++ -Seg:5b48 Size:256 Owner:0x1c22 +Seg:5a51 Size:256 Owner:0x1c20 ++++ -Seg:5c48 Size:256 Owner:0x1c24 +Seg:5b51 Size:256 Owner:0x1c22 ++++ -Seg:5d48 Size:256 Owner:0x1c26 +Seg:5c51 Size:256 Owner:0x1c24 ++++ -Seg:5e48 Size:256 Owner:0x1c28 +Seg:5d51 Size:256 Owner:0x1c26 ++++ -Seg:5f48 Size:256 Owner:0x1c2a +Seg:5e51 Size:256 Owner:0x1c28 +++++ -Seg:6048 Size:256 Owner:0x1c2c +Seg:5f51 Size:256 Owner:0x1c2a ++++ -Seg:6148 Size:256 Owner:0x1c2e +Seg:6051 Size:256 Owner:0x1c2c ++++ -Seg:6248 Size:256 Owner:0x1c30 +Seg:6151 Size:256 Owner:0x1c2e ++++ -Seg:6348 Size:256 Owner:0x1c32 +Seg:6251 Size:256 Owner:0x1c30 ++++ -Seg:6448 Size:256 Owner:0x1c34 +Seg:6351 Size:256 Owner:0x1c32 +++++ -Seg:6548 Size:256 Owner:0x1c36 +Seg:6451 Size:256 Owner:0x1c34 ++++ -Seg:6648 Size:256 Owner:0x1c38 +Seg:6551 Size:256 Owner:0x1c36 ++++ -Seg:6748 Size:256 Owner:0x1c3a +Seg:6651 Size:256 Owner:0x1c38 ++++ -Seg:6848 Size:256 Owner:0x1c3c +Seg:6751 Size:256 Owner:0x1c3a ++++ -Seg:6948 Size:256 Owner:0x1c3e +Seg:6851 Size:256 Owner:0x1c3c +++++ -Seg:6a48 Size:256 Owner:0x1c40 +Seg:6951 Size:256 Owner:0x1c3e ++++ -Seg:6b48 Size:256 Owner:0x1c42 +Seg:6a51 Size:256 Owner:0x1c40 ++++ -Seg:6c48 Size:256 Owner:0x1c44 +Seg:6b51 Size:256 Owner:0x1c42 ++++ -Seg:6d48 Size:256 Owner:0x1c46 +Seg:6c51 Size:256 Owner:0x1c44 ++++ -Seg:6e48 Size:256 Owner:0x1c48 +Seg:6d51 Size:256 Owner:0x1c46 +++++ -Seg:6f48 Size:256 Owner:0x1c4a +Seg:6e51 Size:256 Owner:0x1c48 ++++ -Seg:7048 Size:256 Owner:0x1c4c +Seg:6f51 Size:256 Owner:0x1c4a ++++ -Seg:7148 Size:256 Owner:0x1c4e +Seg:7051 Size:256 Owner:0x1c4c ++++ -Seg:7248 Size:256 Owner:0x1c50 +Seg:7151 Size:256 Owner:0x1c4e ++++ -Seg:7348 Size:256 Owner:0x1c52 +Seg:7251 Size:256 Owner:0x1c50 +++++ -Seg:7448 Size:256 Owner:0x1c54 +Seg:7351 Size:256 Owner:0x1c52 ++++ -Seg:7548 Size:256 Owner:0x1c56 +Seg:7451 Size:256 Owner:0x1c54 ++++ -Seg:7648 Size:256 Owner:0x1c58 +Seg:7551 Size:256 Owner:0x1c56 ++++ -Seg:7748 Size:256 Owner:0x1c5a +Seg:7651 Size:256 Owner:0x1c58 ++++ -Seg:7848 Size:256 Owner:0x1c5c +Seg:7751 Size:256 Owner:0x1c5a +++++ -Seg:7948 Size:256 Owner:0x1c5e +Seg:7851 Size:256 Owner:0x1c5c ++++ -Seg:7a48 Size:256 Owner:0x1c60 +Seg:7951 Size:256 Owner:0x1c5e ++++ -Seg:7b48 Size:256 Owner:0x1c62 +Seg:7a51 Size:256 Owner:0x1c60 ++++ -Seg:7c48 Size:256 Owner:0x1c64 +Seg:7b51 Size:256 Owner:0x1c62 ++++ -Seg:7d48 Size:256 Owner:0x1c66 +Seg:7c51 Size:256 Owner:0x1c64 +++++ -Seg:7e48 Size:256 Owner:0x1c68 +Seg:7d51 Size:256 Owner:0x1c66 ++++ -Seg:7f48 Size:256 Owner:0x1c6a +Seg:7e51 Size:256 Owner:0x1c68 ++++ -Seg:8048 Size:256 Owner:0x1c6c +Seg:7f51 Size:256 Owner:0x1c6a ++++ -Seg:8148 Size:256 Owner:0x1c6e +Seg:8051 Size:256 Owner:0x1c6c ++++ -Seg:8248 Size:256 Owner:0x1c70 +Seg:8151 Size:256 Owner:0x1c6e +++++ -Seg:8348 Size:256 Owner:0x1c72 +Seg:8251 Size:256 Owner:0x1c70 ++++ -Seg:8448 Size:256 Owner:0x1c74 +Seg:8351 Size:256 Owner:0x1c72 ++++ -Seg:8548 Size:256 Owner:0x1c76 +Seg:8451 Size:256 Owner:0x1c74 ++++ -Seg:8648 Size:256 Owner:0x1c78 +Seg:8551 Size:256 Owner:0x1c76 ++++ -Seg:8748 Size:256 Owner:0x1c7a +Seg:8651 Size:256 Owner:0x1c78 +++++ -Seg:8848 Size:256 Owner:0x1c7c +Seg:8751 Size:256 Owner:0x1c7a +++++ +Seg:8851 Size:256 Owner:0x1c7c ++++ -Seg:8948 Size:273 Owner:0x1b88 +Seg:8951 Size:273 Owner:0x1b88 ++++ -Seg:9d87 Size:25208 Owner:0x0 +Seg:9d90 Size:25199 Owner:0x0 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/HEAP.16W b/HEAP.16W index 2146b9f6..d6a0f5ca 100755 --- a/HEAP.16W +++ b/HEAP.16W @@ -1,47 +1,47 @@ == default == - USED block at 24430016 of size 26 - USED block at 24430030 of size 26 - FREE block at 2443004a of size 38914 - USED block at 2443984c of size 136 - USED block at 244398d4 of size 20 - FREE block at 244398e8 of size 7972 + USED block at 244c0016 of size 26 + USED block at 244c0030 of size 26 + FREE block at 244c004a of size 38914 + USED block at 244c984c of size 136 + USED block at 244c98d4 of size 20 + FREE block at 244c98e8 of size 7972 OK - end of heap == near == - USED block at 1442ece6 of size 12 - USED block at 1442ecf2 of size 332 - USED block at 1442ee3e of size 52 - USED block at 1442ee72 of size 20 - USED block at 1442ee86 of size 20 - USED block at 1442ee9a of size 20 - USED block at 1442eeae of size 20 - USED block at 1442eec2 of size 20 - USED block at 1442eed6 of size 4390 + USED block at 144becf6 of size 12 + USED block at 144bed02 of size 332 + USED block at 144bee4e of size 52 + USED block at 144bee82 of size 20 + USED block at 144bee96 of size 20 + USED block at 144beeaa of size 20 + USED block at 144beebe of size 20 + USED block at 144beed2 of size 20 + USED block at 144beee6 of size 4374 OK - end of heap == far == - USED block at 24430016 of size 26 - USED block at 24430030 of size 26 - USED block at 2443004a of size 38914 - USED block at 2443984c of size 136 - USED block at 244398d4 of size 20 - USED block at 244398e8 of size 7972 + USED block at 244c0016 of size 26 + USED block at 244c0030 of size 26 + USED block at 244c004a of size 38914 + USED block at 244c984c of size 136 + USED block at 244c98d4 of size 20 + USED block at 244c98e8 of size 7972 OK - end of heap Memory Type Total Used Free ---------------- -------- -------- -------- Default 47094 208 46886 -Near 4886 496 4390 +Near 4870 496 4374 Far 47094 208 46886 ---------------- -------- -------- -------- -HC_coreleft = 4388 +HC_coreleft = 4372 HC_farcoreleft = 458752 HC_GetFreeSize = 46886 -HC_GetNearFreeSize = 4390 +HC_GetNearFreeSize = 4374 HC_GetFarFreeSize = 46886 -memavl = 4388 +memavl = 4372 stackavail = 31606 diff --git a/MMDUMP.16B b/MMDUMP.16B index 2cb68d4dc47df90ab63609c39a98c8c421d77af2..fe3f37d8e8e964a03d22391bad967c12c27c69e1 100755 GIT binary patch literal 2550 zcmZ|RD^5dE6oyeW34$41SwxfD^FAbq^QdPy44(=FqDz0t-dXNHf6g=P&oJ-z<8pof zIKGbDYI}P<|H8Vpk|W8HKH$Z}*kvK(2CB1e&<$Wi1dauhj=97T>QN0p<> zQRS#|R5_{~RgNY{lcUMed@+tIN0Fn*QRFCc6gjFK zRgNl0m7~g0<*0I0Ihq_zjwVNwqsh_aXmT_;x*T1OE=QN6%hBcNa&$R{97B#F$B<*l zG2|F>3^}G8Q;sRelw-;<<(P6zIhGttjwQ#EW681PSaK{mwj5iIEytE)%dz3u*W2&7 I`?ukK0K7QsJpcdz diff --git a/MMDUMP.16W b/MMDUMP.16W index 0eabe16dfa9930e8c235ab0999591d9161fcfecb..3306f98f04d5ef9113e396b84dd31908efcc4b89 100755 GIT binary patch literal 2550 zcmZ|RJxYT?6oyf2!NMJ+j74DnzbLo|w_xtftik1*MzF}KA6_n}yXhyTGC%U|dOe*l zuWzT%Q_t`HIi?&_jw#2KW6Ck* zm~u=xmK;ltCC8Fu$+6^Eax6Kv99xbp$ChKuvE|ruY&asp5ebe+a72P55*(4>hy+I@ zIkFsCjx0x(Bg>KH$Z}*kiX26bB1e&<$Wi1dauhkL9951gN0p<>QRS#|R5_X)O^zl< zlcUMeH3V zN0uYYk>$v8WI3`NS&l46k)y~_b>$0^4t$0^4t$0^4N M$Bf_O*MC3U4-4K3n*aa+ diff --git a/bcexmm.dsk b/bcexmm.dsk index b1c97ef806323542bd1a314e3c06bc2426df11dd..3f30f2e81a25f77c32b429ff74d2e6c9c8b021e0 100755 GIT binary patch delta 21 ccmcc0ewBSgJTsGX$mB$32_`@1$<@qJ08Q%#aR2}S delta 21 ccmcc0ewBSgJTp^_%j8662__f4$<@qJ08PsVTL1t6 diff --git a/bcexmm.exe b/bcexmm.exe index 5376f8fc10e1793aa6b639ba05e3b9959654548e..00dd4fbe3dbb134c002fc4577c93071343695750 100755 GIT binary patch delta 28710 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

2%(* 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 JYsnk@e*h6gwI2Wg diff --git a/bcexmm.prj b/bcexmm.prj index 1226134da1b92104d104ec9e6e4eb20c15c546d2..7ec1ecdaa468de0231a5b78d20100439f30452dd 100755 GIT binary patch delta 1676 zcmb7ET}YEr7=HKjZQsvm&b1|*Q_E7zoLVMYS96OKe^w%eiWQ-(v>)(7 zu+vQu1YLAdV8t$kZVKu`?<$0-?gYE&?UL&w1bTKIeIV#+oKV zk4JbDKb}aZ_ywNh#uM^O)ay9Gl>_-kuN)`sJHbNGd^3O>02)zqes^9K!+sk9VqE|= z29(ZE+N&8jDgcxk0OF{~*=?_7*n1M}AidO1Gr*k}B0nPU*Y&MtmY7@vImZ{i03$EX)e` zh3mqQkQ4$!rQj9}!Y6*7f5t!HZ}8{%BYc$qX4!9D|=1FeKbk%&#c+oU! z7%&b(uL0vhlCJ{l!8e+ai$(Z&Sd}@L?^Dr0!Eh=%qRJj33HXUmfbK*EXMHmbVdqHIqJBz zwi5PsD%+l{Q%-v6IcY4{Q;pU|dxPE|Q;u0?=%G_|RzMB34KLLs_gd9eeQf&rpeIn~P#UrBH1b+$6iMP@awGwvXIUQl*wqrIokuh(Yn4$Nwa2_01B=_I1< zf*I1zT2n8JcIJO1wARlxz5ekS)1lHt#w0ze@w&JQIwwf>Hg2Ma7<(eq&D0M~dAGQz zh$c2j+7K=?U1J>dLz*j7G6Mg6J|n$UUM1Y2!~=@b;E%vx2V{oT*h;V~81JOhP5(1z z=yjnhMK{LMjpR7mwla`_q>EOiP{M~4iqeYe;@N^BFl|pAOy-t=bZhCrNYEeg0;YRS zhlZM3GTDgiE*}Y_OHk*agu>0#gD8}~} zM|7hi}B|_bqxly>o39&k_{c7+d1m zl5hyfayg#>A{I&f(Eiw^n)r+2Q4Dbpq7N~SxErwxu^X`mu@^CkxEGNz5e;Ex+OP|` zNqg+@td+_Yh7HbP0LEc~%jN{sVQsMeL`cC!Lv&cZ@0e?0 zo{lljBMxI22-7jasDbU&6z3XnT@p%#-AXY=ug5whESKKXBYF}>Fs?&tdx@R;w=3yi z5<}E{?3UO_p}zX@`CcNbva-`l)jlHR4fh4aT?#*(S&0nN-m}nX{}+k-Ik?S(zEDl(MX0v)Rsj z^HjlYtQe)T=vuMzGch?{8kgu@;k)o61bP337X`$c;7k zZQcYe1zMTYTa}F?*>ZW7_kOF9KZnccNZspb?K%^z)0ylqm-_w0P0xsEfrbe)GpV#Y NBzG(QPEIS`^`F2If{6eC diff --git a/src/exmmtest.c b/src/exmmtest.c index c4fcebdf..881a1356 100755 --- a/src/exmmtest.c +++ b/src/exmmtest.c @@ -221,7 +221,14 @@ PRINTBB; printf("\n\npress any key to continue!\n"); getch(); printf("press any key to continue!\n"); getch(); #endif #endif //filereadload - //getch(); ShapeTest (&gvar); + +/* +#ifdef __WATCOMC__ + IN_Shutdown(&gvar); + ShapeTest (&gvar); + IN_Startup(&gvar); +#endif +*/ DebugMemory_(&gvar, 1); MM_DumpData(&gvar); diff --git a/src/lib/16_dbg.c b/src/lib/16_dbg.c index 2cc7e985..576f492b 100755 --- a/src/lib/16_dbg.c +++ b/src/lib/16_dbg.c @@ -19,6 +19,80 @@ byte *dbg_mapdata; #endif #endif //debug +#ifdef __WATCOMC__ +// TODO: Could we also provide a build mode to emit debug to the "Bochs E9 hack?" +#ifdef DEBUGSERIAL +# include +# include +# include + +unsigned char _DEBUG_INITed = 0; +struct info_8250 *_DEBUG_uart = NULL; + +int _DEBUG_INIT() { + if (!_DEBUG_INITed) { + unsigned int i; + uint16_t port; + + if (!init_8250()) return 0; + + // what does the BIOS say the serial ports are? + probe_8250_bios_ports(); + for (i=0;i < bios_8250_ports;i++) { + port = get_8250_bios_port(i); + if (port == 0) continue; + probe_8250(port); + } + + // what about the standard serial ports? + for (i=0;i < (sizeof(standard_8250_ports)/sizeof(standard_8250_ports[0]));i++) { + port = standard_8250_ports[i]; + if (port == 0) continue; + probe_8250(port); + } + + // pick the first port, which is probably COM1 + if (base_8250_ports == 0) return 0; // FIXME: You know "base_8250_ports" is probably a bad variable name for the max entries in info_8250_port[] + _DEBUG_uart = &info_8250_port[0]; + _DEBUG_INITed = 1; + + // init the COM port. + // in DOSBox-X, the "log" mode will receive our text and print it into the log file + // on real hardware, our text will likely go over a null modem cable to another PC running a serial terminal program like PuTTY or minicom. + // if nothing is connected, then the bytes go off into the ether to get lost and life goes on. + uart_8250_enable_interrupt(_DEBUG_uart,0); // disable interrupts + uart_8250_set_FIFO(_DEBUG_uart,0x07); // enable FIFO (why not?), also clear xmit/recv FIFO buffers, set threshhold to 1 byte + uart_8250_set_MCR(_DEBUG_uart,3); // RTS and DTS on + uart_8250_set_line_control(_DEBUG_uart,UART_8250_LCR_8BIT | UART_8250_LCR_PARITY); // 8 bit 1 stop bit odd parity + uart_8250_set_baudrate(_DEBUG_uart,uart_8250_baud_to_divisor(_DEBUG_uart,9600)); // 9600 baud + } + + return _DEBUG_INITed; +} + +void _DEBUG(const char *msg) { + if (_DEBUG_uart != NULL) { + char c; + + while ((c=(*msg++)) != 0/*NUL*/) { + while (!uart_8250_can_write(_DEBUG_uart)); // wait for the UART to indicate readiness for our output + uart_8250_write(_DEBUG_uart,(uint8_t)c); // then write it + } + } +} + +static char _DEBUGF_TMP[256]; + +void _DEBUGF(const char *fmt,...) { + va_list va; + + va_start(va,fmt); + vsnprintf(_DEBUGF_TMP,sizeof(_DEBUGF_TMP),fmt,va); + _DEBUG(_DEBUGF_TMP); + va_end(va); +} +#endif //serial +#endif //watcomc /* ================ = @@ -35,7 +109,7 @@ extern word _seg *DigiList; static char buf[10]; boolean done; - ScanCode scan=0; + ScanCode scan; int i,j; // dword l; word k,x; memptr addr; @@ -55,7 +129,7 @@ static char buf[10]; if (i < (gvar->pm.fi.PMSpriteStart)) // US_Print(" (Wall)"); printf(" (Wall)"); - else if (i < (gvar->pm.fi.PMSoundStart)) +/* else if (i < (gvar->pm.fi.PMSoundStart)) // US_Print(" (Sprite)"); printf(" (Sprite)"); else if (i == (gvar->pm.fi.ChunksInFile - 1)) @@ -63,7 +137,7 @@ static char buf[10]; printf(" (Sound Info)"); else // US_Print(" (Sound)"); - printf(" (Sound)"); + printf(" (Sound)");*/ // US_Print("\n XMS: "); printf("\n XMS: "); @@ -177,12 +251,13 @@ static char buf[10]; WindowX + 8 + (j / 32),BLACK); } }*/ - printf("addr ok\n"); + printf("\naddr ok\n"); } // VW_UpdateScreen(); -// while (!(scan = LastScan)) +// while (!(scan = IN_GetLastScan())) + scan = *IN_GetScanName(scan); // SD_Poll(); IN_ClearKey(scan); @@ -200,10 +275,10 @@ static char buf[10]; i = 0; break; case sc_S: // Sprites - i = (gvar->pm.fi.PMSpriteStart); +// i = (gvar->pm.fi.PMSpriteStart); break; case sc_D: // Digitized - i = (gvar->pm.fi.PMSoundStart); +// i = (gvar->pm.fi.PMSoundStart); break; case sc_I: // Digitized info i = (gvar->pm.fi.ChunksInFile - 1); @@ -227,78 +302,3 @@ static char buf[10]; //SD_StopDigitized(); } #pragma warn +pia - -#ifdef __WATCOMC__ -// TODO: Could we also provide a build mode to emit debug to the "Bochs E9 hack?" -#ifdef DEBUGSERIAL -# include -# include -# include - -unsigned char _DEBUG_INITed = 0; -struct info_8250 *_DEBUG_uart = NULL; - -int _DEBUG_INIT() { - if (!_DEBUG_INITed) { - unsigned int i; - uint16_t port; - - if (!init_8250()) return 0; - - // what does the BIOS say the serial ports are? - probe_8250_bios_ports(); - for (i=0;i < bios_8250_ports;i++) { - port = get_8250_bios_port(i); - if (port == 0) continue; - probe_8250(port); - } - - // what about the standard serial ports? - for (i=0;i < (sizeof(standard_8250_ports)/sizeof(standard_8250_ports[0]));i++) { - port = standard_8250_ports[i]; - if (port == 0) continue; - probe_8250(port); - } - - // pick the first port, which is probably COM1 - if (base_8250_ports == 0) return 0; // FIXME: You know "base_8250_ports" is probably a bad variable name for the max entries in info_8250_port[] - _DEBUG_uart = &info_8250_port[0]; - _DEBUG_INITed = 1; - - // init the COM port. - // in DOSBox-X, the "log" mode will receive our text and print it into the log file - // on real hardware, our text will likely go over a null modem cable to another PC running a serial terminal program like PuTTY or minicom. - // if nothing is connected, then the bytes go off into the ether to get lost and life goes on. - uart_8250_enable_interrupt(_DEBUG_uart,0); // disable interrupts - uart_8250_set_FIFO(_DEBUG_uart,0x07); // enable FIFO (why not?), also clear xmit/recv FIFO buffers, set threshhold to 1 byte - uart_8250_set_MCR(_DEBUG_uart,3); // RTS and DTS on - uart_8250_set_line_control(_DEBUG_uart,UART_8250_LCR_8BIT | UART_8250_LCR_PARITY); // 8 bit 1 stop bit odd parity - uart_8250_set_baudrate(_DEBUG_uart,uart_8250_baud_to_divisor(_DEBUG_uart,9600)); // 9600 baud - } - - return _DEBUG_INITed; -} - -void _DEBUG(const char *msg) { - if (_DEBUG_uart != NULL) { - char c; - - while ((c=(*msg++)) != 0/*NUL*/) { - while (!uart_8250_can_write(_DEBUG_uart)); // wait for the UART to indicate readiness for our output - uart_8250_write(_DEBUG_uart,(uint8_t)c); // then write it - } - } -} - -static char _DEBUGF_TMP[256]; - -void _DEBUGF(const char *fmt,...) { - va_list va; - - va_start(va,fmt); - vsnprintf(_DEBUGF_TMP,sizeof(_DEBUGF_TMP),fmt,va); - _DEBUG(_DEBUGF_TMP); - va_end(va); -} -#endif //serial -#endif //watcomc diff --git a/src/lib/16_dbg.h b/src/lib/16_dbg.h index 37062b43..3d7ef4af 100755 --- a/src/lib/16_dbg.h +++ b/src/lib/16_dbg.h @@ -33,8 +33,6 @@ extern byte *dbg_mapdata; #endif #endif -void ShapeTest (global_game_variables_t *gvar); - #ifdef __WATCOMC__ # ifdef DEBUGSERIAL # include @@ -56,4 +54,7 @@ static inline int _DEBUG_INIT() { } # endif #endif //watcomc + +void ShapeTest (global_game_variables_t *gvar); + #endif // _SRC_LIB_16_DBG diff --git a/src/lib/16_in.c b/src/lib/16_in.c index 8d17c37f..938675de 100755 --- a/src/lib/16_in.c +++ b/src/lib/16_in.c @@ -1275,3 +1275,13 @@ boolean IN_qb(byte kee) if(inpu.Keyboard[kee]==true) return 1; else return 0; } + +ScanCode IN_GetLastScan() +{ + return inpu.LastScan; +} + +ScanCode IN_GetCurCode() +{ + return inst.CurCode; +} diff --git a/src/lib/16_in.h b/src/lib/16_in.h index 9bcec258..b56e9f46 100755 --- a/src/lib/16_in.h +++ b/src/lib/16_in.h @@ -302,5 +302,7 @@ extern boolean IN_UserInput(dword delay,boolean clear); extern boolean IN_KeyDown(byte code); extern void IN_ClearKey(byte code); extern boolean IN_qb(byte kee); +extern ScanCode IN_GetLastScan(); +extern ScanCode IN_GetCurCode(); #endif -- 2.39.2