From fa252ebd82649e4f3bab4a53228828766713ad6c Mon Sep 17 00:00:00 2001 From: sparky4 Date: Mon, 30 Jan 2017 18:52:45 -0600 Subject: [PATCH] ====----==== this is a messed up build that contains a busted 0.exe pan page system --- {src => 16/src}/bakapi4b.c | 0 {src => 16/src}/planrpcx.c | 0 {src => 16/src}/vgacamm.c | 0 DEBUG.16B | 210 +++++++++++++++++++++++++++++++++++++ DEBUG.16W | 210 +++++++++++++++++++++++++++++++++++++ HEAP.16W | 47 +++++++++ MEMINFO.16B | 0 MMDUMP.16B | Bin 0 -> 2550 bytes MMDUMP.16W | Bin 0 -> 2550 bytes bcexmm.dsk | Bin 955 -> 981 bytes bcexmm.exe | Bin 104433 -> 103446 bytes bcexmm.prj | Bin 8377 -> 8523 bytes makefile | 1 + src/0.c | 22 ++++ src/16.c | 2 +- src/16.h | 2 +- src/bakapi.h | 2 +- src/emsdump.c | 2 +- src/exmmtest.c | 2 +- src/fmemtest.c | 2 +- src/fontgfx.c | 2 +- src/fonttest.c | 2 +- src/inputest.c | 2 +- src/lib/16_hc.c | 2 +- src/lib/16_hc.h | 2 +- src/lib/16_head.c | 2 +- src/lib/16_head.h | 2 +- src/lib/16_map.c | 2 +- src/lib/16_map.h | 2 +- src/lib/16_pm.c | 2 +- src/lib/16_pm.h | 2 +- src/lib/16_snd.c | 2 +- src/lib/16_snd.h | 2 +- src/lib/16_sprit.c | 2 +- src/lib/16_sprit.h | 44 ++++---- src/lib/16_t.h | 2 +- src/lib/16_tail.c | 51 ++++----- src/lib/16_tail.h | 3 +- src/lib/16_tdef.h | 49 +++++---- src/lib/16_timer.c | 2 +- src/lib/16_timer.h | 2 +- src/lib/16_vl.c | 2 +- src/lib/16_vrs.c | 2 +- src/lib/16_vrs.h | 2 +- src/lib/16render.c | 2 +- src/lib/16render.h | 2 +- src/lib/16text.c | 2 +- src/lib/16text.h | 2 +- src/lib/bitmap.c | 2 +- src/lib/bitmap.h | 2 +- src/lib/doslib | 2 +- src/lib/scroll16.c | 146 +++----------------------- src/lib/scroll16.h | 78 ++++++++++++-- src/maptest.c | 2 +- src/palettec.c | 2 +- src/palettel.c | 2 +- src/palllist.c | 2 +- src/pcxtest.c | 2 +- src/pcxtest2.c | 2 +- src/scroll.c | 4 +- src/sountest.c | 2 +- src/test2.c | 2 +- src/vgmtest.c | 2 +- src/vrstest.c | 2 +- src/zcroll.c | 19 ++-- 65 files changed, 699 insertions(+), 271 deletions(-) rename {src => 16/src}/bakapi4b.c (100%) rename {src => 16/src}/planrpcx.c (100%) rename {src => 16/src}/vgacamm.c (100%) create mode 100755 DEBUG.16B create mode 100755 DEBUG.16W create mode 100755 HEAP.16W create mode 100755 MEMINFO.16B create mode 100755 MMDUMP.16B create mode 100755 MMDUMP.16W diff --git a/src/bakapi4b.c b/16/src/bakapi4b.c similarity index 100% rename from src/bakapi4b.c rename to 16/src/bakapi4b.c diff --git a/src/planrpcx.c b/16/src/planrpcx.c similarity index 100% rename from src/planrpcx.c rename to 16/src/planrpcx.c diff --git a/src/vgacamm.c b/16/src/vgacamm.c similarity index 100% rename from src/vgacamm.c rename to 16/src/vgacamm.c diff --git a/DEBUG.16B b/DEBUG.16B new file mode 100755 index 00000000..6b4d34fc --- /dev/null +++ b/DEBUG.16B @@ -0,0 +1,210 @@ +Seg:0 Size:4620 Owner:0x0 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++0 +Seg:120c Size:256 Owner:0x24e5 +++++ +Seg:130c Size:256 Owner:0x22ea ++++++ +Seg:140c Size:256 Owner:0x22ec +++++ +Seg:150c Size:256 Owner:0x22ee +++++ +Seg:160c Size:256 Owner:0x22f0 +++++ +Seg:170c Size:256 Owner:0x22f2 +++++ +Seg:180c Size:256 Owner:0x22f4 ++++++ +Seg:190c Size:256 Owner:0x22f6 +++++ +Seg:1a0c Size:256 Owner:0x22f8 +++++ +Seg:1b0c Size:256 Owner:0x22fa +++++ +Seg:1c0c Size:256 Owner:0x22fc +++++ +Seg:1d0c Size:256 Owner:0x22fe ++++++ +Seg:1e0c Size:256 Owner:0x2300 +++++ +Seg:1f0c Size:256 Owner:0x2302 +++++ +Seg:200c Size:256 Owner:0x2304 +++++ +Seg:210c Size:256 Owner:0x2306 +++++ +Seg:220c Size:256 Owner:0x2308 ++++++ +Seg:230c Size:256 Owner:0x230a +++++ +Seg:240c Size:256 Owner:0x230c +++++ +Seg:250c Size:256 Owner:0x230e +++++ +Seg:260c Size:256 Owner:0x2310 +++++ +Seg:270c Size:256 Owner:0x2312 ++++++ +Seg:280c Size:256 Owner:0x2314 +++++ +Seg:290c Size:256 Owner:0x2316 +++++ +Seg:2a0c Size:256 Owner:0x2318 +++++ +Seg:2b0c Size:256 Owner:0x231a +++++ +Seg:2c0c Size:256 Owner:0x231c ++++++ +Seg:2d0c Size:256 Owner:0x231e +++++ +Seg:2e0c Size:256 Owner:0x2320 +++++ +Seg:2f0c Size:256 Owner:0x2322 +++++ +Seg:300c Size:256 Owner:0x2324 +++++ +Seg:310c Size:256 Owner:0x2326 ++++++ +Seg:320c Size:256 Owner:0x2328 +++++ +Seg:330c Size:256 Owner:0x232a +++++ +Seg:340c Size:256 Owner:0x232c +++++ +Seg:350c Size:256 Owner:0x232e +++++ +Seg:360c Size:256 Owner:0x2330 ++++++ +Seg:370c Size:256 Owner:0x2332 +++++ +Seg:380c Size:256 Owner:0x2334 +++++ +Seg:390c Size:256 Owner:0x2336 +++++ +Seg:3a0c Size:256 Owner:0x2338 +++++ +Seg:3b0c Size:256 Owner:0x233a ++++++ +Seg:3c0c Size:256 Owner:0x233c +++++ +Seg:3d0c Size:256 Owner:0x233e +++++ +Seg:3e0c Size:256 Owner:0x2340 +++++ +Seg:3f0c Size:256 Owner:0x2342 +++++ +Seg:400c Size:256 Owner:0x2344 ++++++ +Seg:410c Size:256 Owner:0x2346 +++++ +Seg:420c Size:256 Owner:0x2348 +++++ +Seg:430c Size:256 Owner:0x234a +++++ +Seg:440c Size:256 Owner:0x234c +++++ +Seg:450c Size:256 Owner:0x234e ++++++ +Seg:460c Size:256 Owner:0x2350 +++++ +Seg:470c Size:256 Owner:0x2352 +++++ +Seg:480c Size:256 Owner:0x2354 +++++ +Seg:490c Size:256 Owner:0x2356 +++++ +Seg:4a0c Size:256 Owner:0x2358 ++++++ +Seg:4b0c Size:256 Owner:0x235a +++++ +Seg:4c0c Size:256 Owner:0x235c +++++ +Seg:4d0c Size:256 Owner:0x235e +++++ +Seg:4e0c Size:256 Owner:0x2360 +++++ +Seg:4f0c Size:256 Owner:0x2362 ++++++ +Seg:500c Size:256 Owner:0x2364 +++++ +Seg:510c Size:256 Owner:0x2366 +++++ +Seg:520c Size:256 Owner:0x2368 +++++ +Seg:530c Size:256 Owner:0x236a +++++ +Seg:540c Size:256 Owner:0x236c ++++++ +Seg:550c Size:256 Owner:0x236e +++++ +Seg:560c Size:256 Owner:0x2370 +++++ +Seg:570c Size:256 Owner:0x2372 +++++ +Seg:580c Size:256 Owner:0x2374 +++++ +Seg:590c Size:256 Owner:0x2376 ++++++ +Seg:5a0c Size:256 Owner:0x2378 +++++ +Seg:5b0c Size:256 Owner:0x237a +++++ +Seg:5c0c Size:256 Owner:0x237c +++++ +Seg:5d0c Size:256 Owner:0x237e +++++ +Seg:5e0c Size:256 Owner:0x2380 ++++++ +Seg:5f0c Size:256 Owner:0x2382 +++++ +Seg:600c Size:256 Owner:0x2384 +++++ +Seg:610c Size:256 Owner:0x2386 +++++ +Seg:620c Size:256 Owner:0x2388 +++++ +Seg:630c Size:256 Owner:0x238a ++++++ +Seg:640c Size:256 Owner:0x238c +++++ +Seg:650c Size:256 Owner:0x238e +++++ +Seg:660c Size:256 Owner:0x2390 +++++ +Seg:670c Size:256 Owner:0x2392 +++++ +Seg:680c Size:256 Owner:0x2394 ++++++ +Seg:690c Size:256 Owner:0x2396 +++++ +Seg:6a0c Size:256 Owner:0x2398 +++++ +Seg:6b0c Size:256 Owner:0x239a +++++ +Seg:6c0c Size:256 Owner:0x239c +++++ +Seg:6d0c Size:256 Owner:0x239e ++++++ +Seg:6e0c Size:256 Owner:0x23a0 +++++ +Seg:6f0c Size:256 Owner:0x23a2 +++++ +Seg:700c Size:256 Owner:0x23a4 +++++ +Seg:710c Size:256 Owner:0x23a6 +++++ +Seg:720c Size:256 Owner:0x23a8 ++++++ +Seg:730c Size:256 Owner:0x23aa +++++ +Seg:740c Size:256 Owner:0x23ac +++++ +Seg:750c Size:256 Owner:0x23ae +++++ +Seg:760c Size:256 Owner:0x23b0 +++++ +Seg:770c Size:273 Owner:0xfde ++++++ +Seg:9fde Size:32802 Owner:0x0 + +Seg:9ffe Size:24577 Owner:0x0 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/DEBUG.16W b/DEBUG.16W new file mode 100755 index 00000000..78d43b40 --- /dev/null +++ b/DEBUG.16W @@ -0,0 +1,210 @@ +Seg:0 Size:8801 Owner:0x0 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++0 +Seg:2261 Size:256 Owner:0x1958 +++++ +Seg:23bb Size:44 Owner:0x0 ++ +Seg:23e7 Size:256 Owner:0x174a ++++++ +Seg:24e7 Size:256 Owner:0x174c +++++ +Seg:25e7 Size:256 Owner:0x174e +++++ +Seg:26e7 Size:256 Owner:0x1750 +++++ +Seg:27e7 Size:256 Owner:0x1752 +++++ +Seg:28e7 Size:256 Owner:0x1754 ++++++ +Seg:29e7 Size:256 Owner:0x1756 +++++ +Seg:2ae7 Size:256 Owner:0x1758 +++++ +Seg:2be7 Size:256 Owner:0x175a +++++ +Seg:2ce7 Size:256 Owner:0x175c +++++ +Seg:2de7 Size:256 Owner:0x175e ++++++ +Seg:2ee7 Size:256 Owner:0x1760 +++++ +Seg:2fe7 Size:256 Owner:0x1762 +++++ +Seg:30e7 Size:256 Owner:0x1764 +++++ +Seg:31e7 Size:256 Owner:0x1766 +++++ +Seg:32e7 Size:256 Owner:0x1768 ++++++ +Seg:33e7 Size:256 Owner:0x176a +++++ +Seg:34e7 Size:256 Owner:0x176c +++++ +Seg:35e7 Size:256 Owner:0x176e +++++ +Seg:36e7 Size:256 Owner:0x1770 +++++ +Seg:37e7 Size:256 Owner:0x1772 ++++++ +Seg:38e7 Size:256 Owner:0x1774 +++++ +Seg:39e7 Size:256 Owner:0x1776 +++++ +Seg:3ae7 Size:256 Owner:0x1778 +++++ +Seg:3be7 Size:256 Owner:0x177a +++++ +Seg:3ce7 Size:256 Owner:0x177c ++++++ +Seg:3de7 Size:256 Owner:0x177e +++++ +Seg:3ee7 Size:256 Owner:0x1780 +++++ +Seg:3fe7 Size:256 Owner:0x1782 +++++ +Seg:40e7 Size:256 Owner:0x1784 +++++ +Seg:41e7 Size:256 Owner:0x1786 ++++++ +Seg:42e7 Size:256 Owner:0x1788 +++++ +Seg:43e7 Size:256 Owner:0x178a +++++ +Seg:44e7 Size:256 Owner:0x178c +++++ +Seg:45e7 Size:256 Owner:0x178e +++++ +Seg:46e7 Size:256 Owner:0x1790 ++++++ +Seg:47e7 Size:256 Owner:0x1792 +++++ +Seg:48e7 Size:256 Owner:0x1794 +++++ +Seg:49e7 Size:256 Owner:0x1796 +++++ +Seg:4ae7 Size:256 Owner:0x1798 +++++ +Seg:4be7 Size:256 Owner:0x179a ++++++ +Seg:4ce7 Size:256 Owner:0x179c +++++ +Seg:4de7 Size:256 Owner:0x179e +++++ +Seg:4ee7 Size:256 Owner:0x17a0 +++++ +Seg:4fe7 Size:256 Owner:0x17a2 +++++ +Seg:50e7 Size:256 Owner:0x17a4 ++++++ +Seg:51e7 Size:256 Owner:0x17a6 +++++ +Seg:52e7 Size:256 Owner:0x17a8 +++++ +Seg:53e7 Size:256 Owner:0x17aa +++++ +Seg:54e7 Size:256 Owner:0x17ac +++++ +Seg:55e7 Size:256 Owner:0x17ae ++++++ +Seg:56e7 Size:256 Owner:0x17b0 +++++ +Seg:57e7 Size:256 Owner:0x17b2 +++++ +Seg:58e7 Size:256 Owner:0x17b4 +++++ +Seg:59e7 Size:256 Owner:0x17b6 +++++ +Seg:5ae7 Size:256 Owner:0x17b8 ++++++ +Seg:5be7 Size:256 Owner:0x17ba +++++ +Seg:5ce7 Size:256 Owner:0x17bc +++++ +Seg:5de7 Size:256 Owner:0x17be +++++ +Seg:5ee7 Size:256 Owner:0x17c0 +++++ +Seg:5fe7 Size:256 Owner:0x17c2 ++++++ +Seg:60e7 Size:256 Owner:0x17c4 +++++ +Seg:61e7 Size:256 Owner:0x17c6 +++++ +Seg:62e7 Size:256 Owner:0x17c8 +++++ +Seg:63e7 Size:256 Owner:0x17ca +++++ +Seg:64e7 Size:256 Owner:0x17cc ++++++ +Seg:65e7 Size:256 Owner:0x17ce +++++ +Seg:66e7 Size:256 Owner:0x17d0 +++++ +Seg:67e7 Size:256 Owner:0x17d2 +++++ +Seg:68e7 Size:256 Owner:0x17d4 +++++ +Seg:69e7 Size:256 Owner:0x17d6 ++++++ +Seg:6ae7 Size:256 Owner:0x17d8 +++++ +Seg:6be7 Size:256 Owner:0x17da +++++ +Seg:6ce7 Size:256 Owner:0x17dc +++++ +Seg:6de7 Size:256 Owner:0x17de +++++ +Seg:6ee7 Size:256 Owner:0x17e0 ++++++ +Seg:6fe7 Size:256 Owner:0x17e2 +++++ +Seg:70e7 Size:256 Owner:0x17e4 +++++ +Seg:71e7 Size:256 Owner:0x17e6 +++++ +Seg:72e7 Size:256 Owner:0x17e8 +++++ +Seg:73e7 Size:256 Owner:0x17ea ++++++ +Seg:74e7 Size:256 Owner:0x17ec +++++ +Seg:75e7 Size:256 Owner:0x17ee +++++ +Seg:76e7 Size:256 Owner:0x17f0 +++++ +Seg:77e7 Size:256 Owner:0x17f2 +++++ +Seg:78e7 Size:256 Owner:0x17f4 ++++++ +Seg:79e7 Size:256 Owner:0x17f6 +++++ +Seg:7ae7 Size:256 Owner:0x17f8 +++++ +Seg:7be7 Size:256 Owner:0x17fa +++++ +Seg:7ce7 Size:256 Owner:0x17fc +++++ +Seg:7de7 Size:256 Owner:0x17fe ++++++ +Seg:7ee7 Size:256 Owner:0x1800 +++++ +Seg:7fe7 Size:256 Owner:0x1802 +++++ +Seg:80e7 Size:256 Owner:0x1804 +++++ +Seg:81e7 Size:256 Owner:0x1806 +++++ +Seg:82e7 Size:256 Owner:0x1808 ++++++ +Seg:83e7 Size:256 Owner:0x180a +++++ +Seg:84e7 Size:256 Owner:0x180c +++++ +Seg:85e7 Size:256 Owner:0x180e +++++ +Seg:86e7 Size:256 Owner:0x1810 +++++ +Seg:87e7 Size:273 Owner:0xe622 ++++++ +Seg:b3e7 Size:19480 Owner:0x0 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/HEAP.16W b/HEAP.16W new file mode 100755 index 00000000..13dd057a --- /dev/null +++ b/HEAP.16W @@ -0,0 +1,47 @@ + + == default == + + USED block at 23dd0016 of size 66 + USED block at 23dd0058 of size 66 + FREE block at 23dd009a of size 18 + USED block at 23dd00ac of size 136 + USED block at 23dd0134 of size 20 + FREE block at 23dd0148 of size 7860 +OK - end of heap + + == near == + + USED block at 13dce656 of size 12 + USED block at 13dce662 of size 332 + USED block at 13dce7ae of size 52 + USED block at 13dce7e2 of size 20 + USED block at 13dce7f6 of size 20 + USED block at 13dce80a of size 20 + USED block at 13dce81e of size 20 + USED block at 13dce832 of size 20 + USED block at 13dce846 of size 6070 +OK - end of heap + + == far == + + USED block at 23dd0016 of size 66 + USED block at 23dd0058 of size 66 + USED block at 23dd009a of size 18 + USED block at 23dd00ac of size 136 + USED block at 23dd0134 of size 20 + USED block at 23dd0148 of size 7860 +OK - end of heap + +Memory Type Total Used Free +---------------- -------- -------- -------- +Default 8166 288 7878 +Near 6566 496 6070 +Far 8166 288 7878 +---------------- -------- -------- -------- +coreleft = 6068 +farcoreleft = 54752 +GetFreeSize = 48704 +GetNearFreeSize = 6070 +GetFarFreeSize = 48704 +memavl = 6068 +stackavail = 31604 diff --git a/MEMINFO.16B b/MEMINFO.16B new file mode 100755 index 00000000..e69de29b diff --git a/MMDUMP.16B b/MMDUMP.16B new file mode 100755 index 0000000000000000000000000000000000000000..8609c2124abff8aaa5613e99aa392e7bd3872815 GIT binary patch literal 2550 zcmZ|RJxWAD5QR}=!N487a14a*uKpDaT4!GDa$LTGiNT!sqY6%T(|1bc`j*b??YO)? zzZ~yJtE)dfroT|iZ6BAfhkM~u;rG?ui!&({g{sgMrh*)&948!+;D`iABse0$5ebe+ za72P5k{nr%EJv0j%aP^Ca%4HO97T>IN0Fn*QRFCc6gi3+#BIl3G}jv>d8W5_Y& z7;+3bh8$ClDaVv!$}#1ba!fg<97~QR$C6{ovE*2CEIF1OTaGQqmSfAY<=Ap;Ikp@h NaMWA-9e4jW+z$c};->%r literal 0 HcmV?d00001 diff --git a/MMDUMP.16W b/MMDUMP.16W new file mode 100755 index 0000000000000000000000000000000000000000..db214e41f7163c1ad4600018a33c6f742a887e0f GIT binary patch literal 2550 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 A8~^|S literal 104433 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%0DF{# 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 Q{(L!s1TRFVfQ9DVKOMh@vH$=8 delta 1269 zcma)5O=uHQ5T4y+_wBBs+WfTICfe3mHLI!B`iD^1=BLRvE1?awheE_Qs3ixzXcZ*> z+yqY#qSy_n+JgNP`4^Pm(xitBr`X-Ja>z0A(ed-KgV-^_bE^4wSw z1VJi`!d2qBmeI>4<%=TEkLl)}ZhE$T*4q#K=Z_4K27q%S0KFLU)7ADQ*@H(G9rhMH z5%lk}V`Yp!^`2Jt!4;NARNCpAB~kn_=}ljO96n;{-Ed(q;#xgGr-X#3FaguY_L45Pmbt!?uxn`2Lm$EGvs zk?FxB`J9o?L}OTY5U)8P0a(#JqXeynmR362T%61Mj+wbeE>3-iay_qqaN#g@Tr3Nj z1YrP~NZj()dmGEyHfPrf6=tz3`oQP+g<(JDIYn#PO=O)8TTyN)Tm#vdQI$=HOMFmk zWSi#HtjhmQi??WVXs%FV%Cd5aiCk5nz1XOOgOyDg#b5)YF9Mf`HWmz}s?$3aLpTrY zM)Fqo@iv}l+g+(ANq(7L2nFOAp!+ho&1jGym$nk)(G=Kx)#`B5Cs~khvI}WCE81G1 zdO7OFYP~$8TcFa|44VgIvYufsF_q&{{*r3^j#ihx>2{v&UvrR&, or + * write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + #include #include #include diff --git a/src/16.c b/src/16.c index b3fa0673..d2072fcb 100755 --- a/src/16.c +++ b/src/16.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/16.h b/src/16.h index c39155d2..dd35aa6e 100755 --- a/src/16.h +++ b/src/16.h @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/bakapi.h b/src/bakapi.h index 7c1fb1ab..54af8984 100755 --- a/src/bakapi.h +++ b/src/bakapi.h @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/emsdump.c b/src/emsdump.c index 45069863..b45b4c48 100755 --- a/src/emsdump.c +++ b/src/emsdump.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/exmmtest.c b/src/exmmtest.c index 8a17839c..25436f81 100755 --- a/src/exmmtest.c +++ b/src/exmmtest.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/fmemtest.c b/src/fmemtest.c index df0efd65..db9ec17f 100755 --- a/src/fmemtest.c +++ b/src/fmemtest.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/fontgfx.c b/src/fontgfx.c index 0589a493..1fc19b24 100755 --- a/src/fontgfx.c +++ b/src/fontgfx.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/fonttest.c b/src/fonttest.c index ffa6d0c7..a46466cc 100755 --- a/src/fonttest.c +++ b/src/fonttest.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/inputest.c b/src/inputest.c index 30cb8598..1f88a3cc 100755 --- a/src/inputest.c +++ b/src/inputest.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/lib/16_hc.c b/src/lib/16_hc.c index 13dd3f0e..0f77772c 100755 --- a/src/lib/16_hc.c +++ b/src/lib/16_hc.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/lib/16_hc.h b/src/lib/16_hc.h index 870d50c7..8285ff4f 100755 --- a/src/lib/16_hc.h +++ b/src/lib/16_hc.h @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/lib/16_head.c b/src/lib/16_head.c index 7c25afa5..f48a09c8 100755 --- a/src/lib/16_head.c +++ b/src/lib/16_head.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/lib/16_head.h b/src/lib/16_head.h index 7fd72c44..aad7a554 100755 --- a/src/lib/16_head.h +++ b/src/lib/16_head.h @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/lib/16_map.c b/src/lib/16_map.c index 895e4d68..d5744b9a 100755 --- a/src/lib/16_map.c +++ b/src/lib/16_map.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/lib/16_map.h b/src/lib/16_map.h index 5cf56c2c..84cfd923 100755 --- a/src/lib/16_map.h +++ b/src/lib/16_map.h @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/lib/16_pm.c b/src/lib/16_pm.c index 4cf50396..ac77de42 100755 --- a/src/lib/16_pm.c +++ b/src/lib/16_pm.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/lib/16_pm.h b/src/lib/16_pm.h index 5caf88c7..2ce5fc10 100755 --- a/src/lib/16_pm.h +++ b/src/lib/16_pm.h @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/lib/16_snd.c b/src/lib/16_snd.c index 544b4944..e814c148 100755 --- a/src/lib/16_snd.c +++ b/src/lib/16_snd.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/lib/16_snd.h b/src/lib/16_snd.h index 7b0d04ec..1d274eab 100755 --- a/src/lib/16_snd.h +++ b/src/lib/16_snd.h @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/lib/16_sprit.c b/src/lib/16_sprit.c index 66797e3d..35143db4 100755 --- a/src/lib/16_sprit.c +++ b/src/lib/16_sprit.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/lib/16_sprit.h b/src/lib/16_sprit.h index 8fede666..0e29ebeb 100755 --- a/src/lib/16_sprit.h +++ b/src/lib/16_sprit.h @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * @@ -25,28 +25,26 @@ #include "src/lib/16_vrs.h" #include "src/lib/scroll16.h" -//#define VMEMPAGESIZE2 video->page[0].pagesize+video->page[1].pagesize -//#define VMEMPAGEDATA2 video->page[2].data - -struct sprite -{ - // VRS container from which we will extract animation and image data - struct vrs_container *spritesheet; - // Container for a vrl sprite - struct vrl_container *sprite_vrl_cont; - // Current sprite id - int curr_spri_id; - // Index of a current sprite in an animation sequence - int curr_anim_spri; - // Current animation sequence - struct vrs_animation_list_entry_t *curr_anim_list; - // Index of current animation in relevant VRS offsets table - int curr_anim; - // Delay in time units untill we should change sprite - int delay; - // Position of sprite on screen - int x, y; -}; +//moved to 16_tdef.h +// struct sprite +// { +// // VRS container from which we will extract animation and image data +// struct vrs_container *spritesheet; +// // Container for a vrl sprite +// struct vrl_container *sprite_vrl_cont; +// // Current sprite id +// int curr_spri_id; +// // Index of a current sprite in an animation sequence +// int curr_anim_spri; +// // Current animation sequence +// struct vrs_animation_list_entry_t *curr_anim_list; +// // Index of current animation in relevant VRS offsets table +// int curr_anim; +// // Delay in time units untill we should change sprite +// int delay; +// // Position of sprite on screen +// int x, y; +// }; /* Retrive current animation name of sprite * In: diff --git a/src/lib/16_t.h b/src/lib/16_t.h index 35eb2f4b..4c5abf5f 100755 --- a/src/lib/16_t.h +++ b/src/lib/16_t.h @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/lib/16_tail.c b/src/lib/16_tail.c index 7cfd84e1..4e8c2d10 100755 --- a/src/lib/16_tail.c +++ b/src/lib/16_tail.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * @@ -371,23 +371,9 @@ void Quit (global_game_variables_t *gvar, char *error) } //=========================================================================== - -void walktypeinfo(player_t *player, word pn) -{ - switch(player[pn].walktype) - { - case 0: //bump - sprintf(global_temp_status_text, "%s", "b"); - break; - case 1: //walk no scroll - sprintf(global_temp_status_text, "%s", "w"); - break; - case 2: //scrolling walk - sprintf(global_temp_status_text, "%s", "s"); - break; - } -} - +#ifndef __WATCOMC__ +char global_temp_status_text[512]; +#else // // for mary4 (XT) // this is from my XT's BIOS @@ -399,36 +385,37 @@ void turboXT(byte bakapee) push ax push bx push cx - in al, 61h ; Read equipment flags - xor al, bakapee ; toggle speed - out 61h, al ; Write new flags back + in al, 61h //; Read equipment flags + xor al, bakapee //; toggle speed + out 61h, al //; Write new flags back - mov bx, 0F89h ; low pitch blip - and al, 4 ; Is turbo mode set? + mov bx, 0F89h //; low pitch blip + and al, 4 //; Is turbo mode set? jz @@do_beep - mov bx, 52Eh ; high pitch blip + mov bx, 52Eh //; high pitch blip @@do_beep: - mov al, 10110110b ; Timer IC 8253 square waves - out 43h, al ; channel 2, speaker + mov al, 10110110b //; Timer IC 8253 square waves + out 43h, al //; channel 2, speaker mov ax, bx - out 42h, al ; send low order - mov al, ah ; load high order - out 42h, al ; send high order - in al, 61h ; Read IC 8255 machine status + out 42h, al //; send low order + mov al, ah //; load high order + out 42h, al //; send high order + in al, 61h //; Read IC 8255 machine status push ax or al, 00000011b - out 61h, al ; Turn speaker on + out 61h, al //; Turn speaker on mov cx, 2000h @@delay: loop @@delay pop ax - out 61h, al ; Turn speaker off + out 61h, al //; Turn speaker off pop cx pop bx pop ax } } +#endif const char *nibble_to_binary(nibble x) { diff --git a/src/lib/16_tail.h b/src/lib/16_tail.h index 984ad365..e91b4eb6 100755 --- a/src/lib/16_tail.h +++ b/src/lib/16_tail.h @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * @@ -78,7 +78,6 @@ void Startup16(global_game_variables_t *gvar); void ClearMemory (global_game_variables_t *gvar); void Quit (global_game_variables_t *gvar, char *error); void turboXT(byte bakapee); -void walktypeinfo(player_t *player, word pn); void nibbletest(); void booleantest(); diff --git a/src/lib/16_tdef.h b/src/lib/16_tdef.h index 0a4248ba..9a225c8f 100755 --- a/src/lib/16_tdef.h +++ b/src/lib/16_tdef.h @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * @@ -119,6 +119,29 @@ typedef struct { sword delta; // How much should we shift the page for smooth scrolling } page_t; +//from 16_sprit.h +#ifdef __WATCOMC__ +typedef struct sprite +{ + // VRS container from which we will extract animation and image data + struct vrs_container *spritesheet; + // Container for a vrl sprite + struct vrl_container *sprite_vrl_cont; + // Current sprite id + int curr_spri_id; + // Index of a current sprite in an animation sequence + int curr_anim_spri; + // Current animation sequence + struct vrs_animation_list_entry_t *curr_anim_list; + // Index of current animation in relevant VRS offsets table + int curr_anim; + // Delay in time units untill we should change sprite + int delay; + // Position of sprite on screen + int x, y; +} sprite_t; +#endif + //newer structs typedef struct { @@ -128,35 +151,23 @@ typedef struct int ty; //entity tile position on the viewable map int triggerx; //entity's trigger box tile position on the viewable map int triggery; //entity's trigger box tile position on the viewable map - int sheetsetx; //NOT USED YET! entity sprite sheet set on the image x - int sheetsety; //NOT USED YET! entity sprite sheet set on the image y +// int sheetsetx; //NOT USED YET! entity sprite sheet set on the image x +// int sheetsety; //NOT USED YET! entity sprite sheet set on the image y nibble d; //direction to render sprite!! wwww nibble pred; //prev. direction for animation changing word dire; //sprite in use nibble q; //loop variable for anumation and locking the playing to compleate the animation cycle to prevent issues with misalignment www word speed; //entity speed! word spt; //speed per tile - struct sprite *spri; // sprite used by entity +#ifdef __WATCOMC__ + sprite_t *spri; // sprite used by entity +#endif sword hp; //hitpoints of the entity nibble overdraww, overdrawh; // how many pixels to "overdraw" so that moving sprites with edge pixels don't leave streaks. // if the sprite's edge pixels are clear anyway, you can set this to 0. nibble /*int*/ persist_aniframe; // gonna be increased to 1 before being used, so 0 is ok for default } entity_t; -//TODO: MAKE THIS WWWW -typedef struct -{ - //sprite .... - boolean wwww; -} spri_t; - -//TODO: MAKE THIS TO WWWW -typedef struct -{ - //vrs with sprite .... - spri_t *spri; -} vrs_t; - //from 16_in //========================================================================== typedef byte ScanCode; @@ -526,8 +537,8 @@ typedef struct mminfo_t mm; mminfotype mmi; } global_game_variables_t; -extern char global_temp_status_text[512]; #ifdef __WATCOMC__ +extern char global_temp_status_text[512]; #define EINVFMT EMFILE #endif #endif /* _TYPEDEFSTRUCT_H_ */ diff --git a/src/lib/16_timer.c b/src/lib/16_timer.c index 86220b33..6a0c7a47 100755 --- a/src/lib/16_timer.c +++ b/src/lib/16_timer.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/lib/16_timer.h b/src/lib/16_timer.h index fb2335ce..ec25af51 100755 --- a/src/lib/16_timer.h +++ b/src/lib/16_timer.h @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/lib/16_vl.c b/src/lib/16_vl.c index 083e2124..057e763c 100755 --- a/src/lib/16_vl.c +++ b/src/lib/16_vl.c @@ -1340,7 +1340,7 @@ void VL_PrintmodexmemInfo(video_t *v) printf("VL_PrintmodexmemInfo:\n"); // printf("========================================\n"); printf(" Virtual Screen: %dx", v->page[0].width); printf("%d ", v->page[0].height); printf("Tile: %dx", v->page[0].ti.tilesw); printf("%d", v->page[0].ti.tilesh); printf("=((Virtual Screen)/16)\n"); - printf(" Screen: %dx", v->page[0].sw); printf("%d ", v->page[0].sh); printf("Tile: %dx", v->page[0].ti.tw); printf("%d", v->page[0].ti.th); printf("=((Screen)/16)\n"); + printf(" Screen: %dx", v->page[0].sw); printf("%d ", v->page[0].sh); printf("Tile: %dx", v->page[0].ti.tw); printf("%d", v->page[0].ti.th); printf("=((Screen)/16)\n"); printf(" Free Video Memory: %u\n", v->vmem_remain); printf(" page"); diff --git a/src/lib/16_vrs.c b/src/lib/16_vrs.c index 41ef537e..75908ace 100755 --- a/src/lib/16_vrs.c +++ b/src/lib/16_vrs.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/lib/16_vrs.h b/src/lib/16_vrs.h index cb5495bb..068f569f 100755 --- a/src/lib/16_vrs.h +++ b/src/lib/16_vrs.h @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/lib/16render.c b/src/lib/16render.c index 3a3a7a74..56abfb8f 100755 --- a/src/lib/16render.c +++ b/src/lib/16render.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/lib/16render.h b/src/lib/16render.h index 32cb7e0f..7287bf1e 100755 --- a/src/lib/16render.h +++ b/src/lib/16render.h @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/lib/16text.c b/src/lib/16text.c index d395c027..65620d7f 100755 --- a/src/lib/16text.c +++ b/src/lib/16text.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/lib/16text.h b/src/lib/16text.h index c6f3e36c..c4c81e4f 100755 --- a/src/lib/16text.h +++ b/src/lib/16text.h @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/lib/bitmap.c b/src/lib/bitmap.c index e8ad461c..22bad981 100755 --- a/src/lib/bitmap.c +++ b/src/lib/bitmap.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/lib/bitmap.h b/src/lib/bitmap.h index 25537645..b35996d2 100755 --- a/src/lib/bitmap.h +++ b/src/lib/bitmap.h @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/lib/doslib b/src/lib/doslib index e6fba71d..3bb67471 160000 --- a/src/lib/doslib +++ b/src/lib/doslib @@ -1 +1 @@ -Subproject commit e6fba71d59fad9b5e5bce6115f38dfb61c299a32 +Subproject commit 3bb67471d6e782d6b77309e39eaf63a330ad83a7 diff --git a/src/lib/scroll16.c b/src/lib/scroll16.c index dd37e3fe..d48f9214 100755 --- a/src/lib/scroll16.c +++ b/src/lib/scroll16.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * @@ -285,15 +285,16 @@ void ZC_MVInit(map_view_t *pip, int tx, int ty) void ZC_ShowMV(map_view_t *moo, boolean vsync, boolean sr) { - word high_address, low_address, offset; + VL_ShowPage(moo[moo[0].video->sp].page, vsync, sr); + /*word high_address, low_address, offset; byte crtcOffset; - /* calculate offset */ + // calculate offset offset = (word) moo[moo[0].video->sp].page->data; offset += moo[0].page->dy * (moo[0].page->width >> 2 ); offset += moo[0].page->dx >> 2; - /* calculate crtcOffset according to virtual width */ + // calculate crtcOffset according to virtual width switch(sr) { case 1: @@ -308,19 +309,19 @@ void ZC_ShowMV(map_view_t *moo, boolean vsync, boolean sr) high_address = HIGH_ADDRESS | (offset & 0xff00); low_address = LOW_ADDRESS | (offset << 8); - /* wait for appropriate timing and then program CRTC */ + // wait for appropriate timing and then program CRTC if(vsync) while ((inp(INPUT_STATUS_1) & DISPLAY_ENABLE)); outpw(CRTC_INDEX, high_address); outpw(CRTC_INDEX, low_address); outp(CRTC_INDEX, 0x13); outp(CRTC_DATA, crtcOffset); - /* wait for one retrace */ + // wait for one retrace if(vsync) while (!(inp(INPUT_STATUS_1) & VRETRACE)); - /* do PEL panning here */ + // do PEL panning here outp(AC_INDEX, 0x33); - outp(AC_INDEX, (moo[0].page->dx & 0x03) << 1); + outp(AC_INDEX, (moo[0].page->dx & 0x03) << 1);*/ } /*map_t @@ -410,23 +411,12 @@ initMap(map_t *map) { } } + void near mapScrollRight(map_view_t *mv, player_t *player, word id, word plid) { word x;//, y; /* coordinate for drawing */ - /* increment the pixel position and update the page */ - mv[id].page[0].dx += player[plid].enti.speed; - - /* check to see if this changes the tile */ - if(mv[id].page[0].dx >= mv[id].dxThresh ) - { - /* go forward one tile */ - mv[id].tx++; - /* Snap the origin forward */ - mv[id].page->data += 4; - - mv[id].page[0].dx = mv[id].map->tiles->tileWidth; - } + ScrollRight(mv, player, id, plid); /* draw the next column */ x= mv[0].page->sw + mv[id].map->tiles->tileWidth; @@ -448,19 +438,7 @@ void near mapScrollLeft(map_view_t *mv, player_t *player, word id, word plid) { word x;//,y; /* coordinate for drawing */ - /* decrement the pixel position and update the page */ - mv[id].page[0].dx -= player[plid].enti.speed; - - /* check to see if this changes the tile */ - if(mv[id].page[0].dx == 0) - { - /* go backward one tile */ - mv[id].tx--; - /* Snap the origin backward */ - mv[id].page->data -= 4; - - mv[id].page[0].dx = mv[id].map->tiles->tileWidth; - } + ScrollLeft(mv, player, id, plid); /* draw the next column */ x= 0; @@ -482,19 +460,7 @@ void near mapScrollUp(map_view_t *mv, player_t *player, word id, word plid) { word y;//x, /* coordinate for drawing */ - /* decrement the pixel position and update the page */ - mv[id].page[0].dy -= player[plid].enti.speed; - - /* check to see if this changes the tile */ - if(mv[id].page[0].dy == 0 ) - { - /* go up one tile */ - mv[id].ty--; - /* Snap the origin upward */ - mv[id].page->data -= mv[id].page->pi; - - mv[id].page[0].dy = mv[id].map->tiles->tileHeight; - } + ScrollUp(mv, player, id, plid); /* draw the next row */ y= 0; @@ -516,19 +482,7 @@ void near mapScrollDown(map_view_t *mv, player_t *player, word id, word plid) { word y;//x, /* coordinate for drawing */ - /* increment the pixel position and update the page */ - mv[id].page[0].dy += player[plid].enti.speed; - - /* check to see if this changes the tile */ - if(mv[id].page[0].dy >= mv[id].dyThresh ) - { - /* go down one tile */ - mv[id].ty++; - /* Snap the origin downward */ - mv[id].page->data += mv[id].page->pi; - - mv[id].page[0].dy = mv[id].map->tiles->tileHeight; - } + ScrollDown(mv, player, id, plid); /* draw the next row */ y= mv[0].page->sh + mv[id].map->tiles->tileHeight; @@ -546,79 +500,11 @@ void near mapScrollDown(map_view_t *mv, player_t *player, word id, word plid) } -//TODO finish this wwww -void near ScrollRight(map_view_t *mv, player_t *player, word id, word plid) -{ - /* increment the pixel position and update the page */ - mv[id].page->dx += player[plid].enti.speed; - - /* check to see if this changes the tile */ - if(mv[id].page->dx >= mv[0].dxThresh ) - { -// vga_setup_wm1_block_copy(); -// _fmemmove(mv[id].page->data+4, mv[id].page->data, mv[id].page->pagesize); -// vga_restore_rm0wm0(); - /* Snap the origin forward */ - mv[id].page->data += 4; - mv[id].page->dx = mv[0].map->tiles->tileWidth; - } -} - -void near ScrollLeft(map_view_t *mv, player_t *player, word id, word plid) -{ - /* decrement the pixel position and update the page */ - mv[id].page->dx -= player[plid].enti.speed; - - /* check to see if this changes the tile */ - if(mv[id].page->dx == 0) - { -// vga_setup_wm1_block_copy(); -// _fmemmove(mv[id].page->data-4, mv[id].page->data, mv[id].page->pagesize); -// vga_restore_rm0wm0(); - /* Snap the origin backward */ - mv[id].page->data -= 4; - mv[id].page->dx = mv[0].map->tiles->tileWidth; - } -} - -void near ScrollUp(map_view_t *mv, player_t *player, word id, word plid) -{ - /* decrement the pixel position and update the page */ - mv[id].page->dy -= player[plid].enti.speed; - - /* check to see if this changes the tile */ - if(mv[id].page->dy == 0) - { -// vga_setup_wm1_block_copy(); -// _fmemmove(mv[id].page->data-mv[id].page->pi, mv[id].page->data, mv[id].page->pagesize); -// vga_restore_rm0wm0(); - /* Snap the origin backward */ - mv[id].page->data -= mv[id].page->pi; - mv[id].page->dy = mv[0].map->tiles->tileWidth; - } -} - -void near ScrollDown(map_view_t *mv, player_t *player, word id, word plid) -{ - /* increment the pixel position and update the page */ - mv[id].page->dy += player[plid].enti.speed; - - /* check to see if this changes the tile */ - if(mv[id].page->dy >= mv[0].dxThresh ) - { -// vga_setup_wm1_block_copy(); -// _fmemmove(mv[id].page->data+mv[id].page->pi, mv[id].page->data, mv[id].page->pagesize); -// vga_restore_rm0wm0(); - /* Snap the origin forward */ - mv[id].page->data += mv[id].page->pi; - mv[id].page->dy = mv[0].map->tiles->tileWidth; - } -} //=========================================================================== //TODO: put player in starting position of assigned spot on map //default player position on the viewable map -void playerXYpos(int x, int y, player_t *player, map_view_t *pip, nibble pn) +void ZC_playerXYpos(int x, int y, player_t *player, map_view_t *pip, nibble pn) { player[pn].enti.tx = x + pip[0].tx + pip[0].page->ti.tilemidposscreenx; player[pn].enti.ty = y + pip[0].ty + pip[0].page->ti.tilemidposscreeny; @@ -704,7 +590,7 @@ void mapinitmapview(map_view_t *mv, int tx, int ty) /* set up the thresholds */ mv[0].dxThresh = mv[1].dxThresh = mv[2].dxThresh = mv[3].dxThresh = mv->map->tiles->tileWidth * 2; - mv[0].dyThresh = mv[1].dyThresh = mv[2].dxThresh = mv[3].dxThresh = mv->map->tiles->tileHeight * 2; + mv[0].dyThresh = mv[1].dyThresh = mv[2].dyThresh = mv[3].dyThresh = mv->map->tiles->tileHeight * 2; } void near diff --git a/src/lib/scroll16.h b/src/lib/scroll16.h index c3260f78..1262b9ac 100755 --- a/src/lib/scroll16.h +++ b/src/lib/scroll16.h @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * @@ -81,7 +81,7 @@ printf("\n");\ printf("player vars:\n");\ printf(" xy: %dx%d", player[0].enti.x, player[0].enti.y); printf(" txy: %dx%d", player[0].enti.tx, player[0].enti.ty); printf(" triggxy: %dx%d", player[0].enti.triggerx, player[0].enti.triggery); printf(" value: %d\n", mv[0].map->data[(player[0].enti.triggerx-1)+(map.width*(player[0].enti.triggery-1))]);\ - printf(" hp: %d", (player[0].enti.hp)); printf(" q: %d", player[0].enti.q); printf(" player.info.dir: %d", player[0].info.dir); printf(" player.d: %d ", player[0].enti.d);\ + printf(" hp: %d", (player[0].enti.hp)); printf(" q: %d", player[0].enti.q); printf(" info.dir: %d", player[0].info.dir); printf(" d: %d ", player[0].enti.d);\ printf(" pdir: %d\n", player[0].pdir); printf(" delay=%u", player[0].enti.spri->delay);\ printf("\n\n");\ VL_PrintmodexmemInfo(&gvar.video);\ @@ -106,11 +106,75 @@ void near mapScrollRight(map_view_t *mv, player_t *player, word id, word plid); void near mapScrollLeft(map_view_t *mv, player_t *player, word id, word plid); void near mapScrollUp(map_view_t *mv, player_t *player, word id, word plid); void near mapScrollDown(map_view_t *mv, player_t *player, word id, word plid); -void near ScrollRight(map_view_t *mv, player_t *player, word id, word plid); -void near ScrollLeft(map_view_t *mv, player_t *player, word id, word plid); -void near ScrollUp(map_view_t *mv, player_t *player, word id, word plid); -void near ScrollDown(map_view_t *mv, player_t *player, word id, word plid); -void playerXYpos(int x, int y, player_t *player, map_view_t *pip, nibble pn); +inline void near ScrollRight(map_view_t *mv, player_t *player, word id, word plid) +{ + /* increment the pixel position and update the page */ + mv[id].page->dx += player[plid].enti.speed; + + /* check to see if this changes the tile */ + if(mv[id].page->dx >= mv[id].dxThresh ) + { + /* go forward one tile */ + if(id==0) mv[id].tx++; + /* Snap the origin forward */ + mv[id].page->data += 4; + + mv[id].page->dx = mv[id].map->tiles->tileWidth; + } +} + +inline void near ScrollLeft(map_view_t *mv, player_t *player, word id, word plid) +{ + /* decrement the pixel position and update the page */ + mv[id].page->dx -= player[plid].enti.speed; + + /* check to see if this changes the tile */ + if(mv[id].page->dx == 0) + { + /* go backward one tile */ + if(id==0) mv[id].tx--; + /* Snap the origin backward */ + mv[id].page->data -= 4; + + mv[id].page->dx = mv[id].map->tiles->tileWidth; + } +} + +inline void near ScrollUp(map_view_t *mv, player_t *player, word id, word plid) +{ + /* decrement the pixel position and update the page */ + mv[id].page->dy -= player[plid].enti.speed; + + /* check to see if this changes the tile */ + if(mv[id].page->dy == 0 ) + { + /* go up one tile */ + if(id==0) mv[id].ty--; + /* Snap the origin upward */ + mv[id].page->data -= mv[id].page->pi; + + mv[id].page->dy = mv[id].map->tiles->tileHeight; + } +} + +inline void near ScrollDown(map_view_t *mv, player_t *player, word id, word plid) +{ + /* increment the pixel position and update the page */ + mv[id].page->dy += player[plid].enti.speed; + + /* check to see if this changes the tile */ + if(mv[id].page->dy >= mv[id].dyThresh ) + { + /* go down one tile */ + if(id==0) mv[id].ty++; + /* Snap the origin downward */ + mv[id].page->data += mv[id].page->pi; + + mv[id].page->dy = mv[id].map->tiles->tileHeight; + } +} + +void ZC_playerXYpos(int x, int y, player_t *player, map_view_t *pip, nibble pn); sword chkmap(map_t *map, word q); void mapGoTo(map_view_t *mv, int tx, int ty); void mapinitmapview(map_view_t *mv, int tx, int ty); diff --git a/src/maptest.c b/src/maptest.c index 33016249..7649898e 100755 --- a/src/maptest.c +++ b/src/maptest.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/palettec.c b/src/palettec.c index df89b454..3864b677 100755 --- a/src/palettec.c +++ b/src/palettec.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/palettel.c b/src/palettel.c index 6ec55683..f2ff1944 100755 --- a/src/palettel.c +++ b/src/palettel.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/palllist.c b/src/palllist.c index e15d8625..3e8bb2f7 100755 --- a/src/palllist.c +++ b/src/palllist.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/pcxtest.c b/src/pcxtest.c index a7cb7cc7..357e2cae 100755 --- a/src/pcxtest.c +++ b/src/pcxtest.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/pcxtest2.c b/src/pcxtest2.c index 2ab48632..efebd168 100755 --- a/src/pcxtest2.c +++ b/src/pcxtest2.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/scroll.c b/src/scroll.c index 98e5a160..810ccf35 100755 --- a/src/scroll.c +++ b/src/scroll.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * @@ -118,7 +118,7 @@ void main(int argc, char *argv[]) //TODO: LOAD map data and position the map in the middle of the screen if smaller then screen mapGoTo(&mv, 0, 0); - playerXYpos(0, 0, &player, &mv, 0); + ZC_playerXYpos(0, 0, &player, &mv, 0); EN_initplayer(&player, 0, &gvar.video); player[0].enti.spri->x = player[0].enti.x-4; player[0].enti.spri->y = player[0].enti.y-16; diff --git a/src/sountest.c b/src/sountest.c index f2726fcf..ac8908c3 100755 --- a/src/sountest.c +++ b/src/sountest.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/test2.c b/src/test2.c index b4c33ee3..e33a676e 100755 --- a/src/test2.c +++ b/src/test2.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/vgmtest.c b/src/vgmtest.c index b86eaa7b..3aa5cd0c 100755 --- a/src/vgmtest.c +++ b/src/vgmtest.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/vrstest.c b/src/vrstest.c index d879f659..8e20a4cf 100755 --- a/src/vrstest.c +++ b/src/vrstest.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * diff --git a/src/zcroll.c b/src/zcroll.c index 6cdba594..557cc9a3 100755 --- a/src/zcroll.c +++ b/src/zcroll.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * @@ -25,6 +25,8 @@ #include "src/lib/16render.h" #include "src/lib/16_dbg.h" +#define FADE + static map_t map; map_view_t mv[4]; float t; @@ -36,15 +38,13 @@ boolean pagenorendermap = 0; //default: 0 unsigned int i; #ifdef FADE -static word paloffset=0; +//static word paloffset=0; byte *dpal; #endif byte *gpal; byte *ptr; memptr pal; -//bitmap_t *ptmpdata; - #define FILENAME_1 "data/spri/chikyuu.vrs" #define FILENAME_1P "data/spri/chikyuu.pal" #define FILENAME_2 "data/spri/ptmp.vrs" @@ -89,7 +89,6 @@ void main(int argc, char *argv[]) // fprintf(stderr, "yay map loaded~~\n"); // data - //read_vrs(&gvar, , .spri->spritesheet); VRS_LoadVRS(bakapee1, &player[0].enti, &gvar); // input! @@ -124,14 +123,11 @@ void main(int argc, char *argv[]) modexHiganbanaPageSetup(&gvar.video); ZC_MVSetup(&mv, &map, &gvar); - //renderswitch - gvar.video.rss=0; - // set up paging //TODO: LOAD map data and position the map in the middle of the screen if smaller then screen mapGoTo(&mv, 0, 0); - playerXYpos(0, 0, &player, &mv, 0); + ZC_playerXYpos(0, 0, &player, &mv, 0); EN_initplayer(&player, 0, &gvar.video); player[0].enti.spri->x = player[0].enti.x-4; player[0].enti.spri->y = player[0].enti.y-16; @@ -151,14 +147,11 @@ void main(int argc, char *argv[]) } // while(!IN_KeyDown(sc_Escape) && !IN_KeyDown(sc_Space) && !IN_KeyDown(sc_Enter)){ FUNCTIONKEYSHOWMV } - VL_ShowPage(mv[0].page, 0, 0);//modexShowPage(mv[0].page);//!(gvar.video.p) + VL_ShowPage(mv[0].page, 0, 0); animate_spri(&(player[0].enti), &gvar.video); #ifdef FADE modexFadeOn(4, gpal); #endif - /*strcpy(global_temp_status_text, "press enter for the loop of zcroll\nescape to quit"); - modexprint(&gvar.video.page[0], 144, 72, 1, 7, 0, global_temp_status_text); - while(!IN_KeyDown(sc_Enter)){ if(IN_KeyDown(sc_Escape)) goto quit; } IN_UserInput(1,1);*///wwww while(!IN_KeyDown(sc_Escape) && player[0].enti.hp>0) { shinku(&gvar); -- 2.39.5