From 27b190bc76b1f75811d6686daf3fde0167e10704 Mon Sep 17 00:00:00 2001 From: sparky4 Date: Sun, 7 Sep 2014 15:49:20 -0500 Subject: [PATCH] Added improve keyboard support~ for scroll.exe ^^ modified: 16/Project 16.bfproject deleted: 16/modex16/PALVIEW.EXE new file: 16/modex16/dos_kb.c new file: 16/modex16/dos_kb.h new file: 16/modex16/lib/lib_com.cpp new file: 16/modex16/lib/lib_com.h modified: 16/modex16/makefile modified: 16/modex16/pcxtest.exe modified: 16/modex16/scroll.c modified: 16/modex16/scroll.exe modified: 16/modex16/test.exe modified: 16/modex16/test2.exe --- 16/Project 16.bfproject | 37 ++++++---- 16/modex16/PALVIEW.EXE | Bin 10358 -> 0 bytes 16/modex16/dos_kb.c | 140 +++++++++++++++++++++++++++++++++++++ 16/modex16/dos_kb.h | 23 ++++++ 16/modex16/lib/lib_com.cpp | 21 ++++++ 16/modex16/lib/lib_com.h | 106 ++++++++++++++++++++++++++++ 16/modex16/makefile | 9 ++- 16/modex16/pcxtest.exe | Bin 35942 -> 35904 bytes 16/modex16/scroll.c | 41 +++++++---- 16/modex16/scroll.exe | Bin 17968 -> 18304 bytes 16/modex16/test.exe | Bin 16934 -> 16936 bytes 16/modex16/test2.exe | Bin 16686 -> 16688 bytes 12 files changed, 344 insertions(+), 33 deletions(-) delete mode 100644 16/modex16/PALVIEW.EXE create mode 100644 16/modex16/dos_kb.c create mode 100644 16/modex16/dos_kb.h create mode 100644 16/modex16/lib/lib_com.cpp create mode 100644 16/modex16/lib/lib_com.h diff --git a/16/Project 16.bfproject b/16/Project 16.bfproject index 7b17875c..43a1f5ad 100644 --- a/16/Project 16.bfproject +++ b/16/Project 16.bfproject @@ -2,7 +2,7 @@ c2e.convert_special: 0 e2c.convert_num: 0 openfiles: /dos/z/16/16/dos_gfx.cpp:7655:7604:0: openfiles: /dos/z/16/16/dos_gfx.h:910:295:0: -openfiles: /dos/z/16/16/dos_kb.c:217:0:0: +openfiles: /dos/z/16/16/dos_kb.c:0:0:0: openfiles: /dos/z/16/16/dos_kb.h:161:0:0: openfiles: /dos/z/16/16/lib/lib_com.cpp:2:0:0: openfiles: /dos/z/16/16/lib/lib_com.h:633:1027:0: @@ -11,7 +11,11 @@ openfiles: /dos/z/16/16/project16.txt:8063:6091:0: openfiles: /dos/z/16/16/16.txt:0:0:0: openfiles: /dos/z/16/16/lib/x/MODEX.H:5511:2798:0: openfiles: /dos/z/16/16/TEST.C:430:6112:0: -openfiles: /dos/z/16/16/modex16/scroll.c:1610:1479:1: +openfiles: /dos/z/16/16/modex16/scroll.c:1537:1152:1: +openfiles: /dos/z/16/16/modex16/modex16.h:156:0:0: +openfiles: /dos/z/16/16/modex16/makefile:106:0:0: +openfiles: /dos/z/16/16/modex16/dos_kb.c:3565:2934:0: +openfiles: /dos/z/16/16/modex16/dos_kb.h:0:0:0: snr_recursion_level: 0 convertcolumn_horizontally: 0 adv_open_matchname: 0 @@ -23,7 +27,7 @@ view_left_panel: 0 default_mime_type: text/plain e2c.convert_xml: 1 c2e.convert_iso: 0 -opendir: file:///dos/z/16/16/lib +opendir: file:///dos/z/16/16/modex16 wrap_text_default: 0 bookmarks_filename_mode: 1 ssearch_text: mapScrollRight @@ -48,13 +52,6 @@ ssearch_regex: 0 e2c.convert_iso: 0 ssearch_casesens: 0 charmap_block: 1 -recent_files: file:///dos/z/16/16/w_modex/MODEX.HPP -recent_files: file:///dos/z/16/16/w_modex/XPRIM.HPP -recent_files: file:///dos/z/16/16/w_modex/XPRIM.CPP -recent_files: file:///dos/z/16/16/w_modex/MODEX.CPP -recent_files: file:///dos/z/16/16/w_modex/TEST.CPP -recent_files: file:///dos/z/16/16/Project%2016.bfproject -recent_files: file:///dos/z/16/16/lib/x/compile.bat recent_files: file:///dos/z/16/16/x.bat recent_files: file:///dos/z/16/16/xx.bat recent_files: file:///dos/z/16/16/lib/x/MXPN.ASM @@ -85,16 +82,26 @@ recent_files: file:///dos/z/16/16/lib/MODEX16.H recent_files: file:///dos/z/16/16/modex16/SCROLL.C recent_files: file:///dos/z/16/16/modex16/scroll.c recent_files: file:///dos/z/16/16/dos_gfx.h -recent_files: file:///dos/z/16/16/dos_gfx.cpp -recent_files: file:///dos/z/16/16/lib/lib_com.h -recent_files: file:///dos/z/16/16/dos_kb.c recent_files: file:///dos/z/16/16/dos_kb.h recent_files: file:///dos/z/16/16/lib/lib_com.cpp -recent_files: file:///dos/z/16/16/scroll.txt -recent_files: file:///dos/z/16/16/project16.txt +recent_files: file:///dos/z/16/16/lib/lib_com.h recent_files: file:///dos/z/16/16/16.txt +recent_files: file:///dos/z/16/16/dos_gfx.cpp +recent_files: file:///dos/z/16/16/project16.txt +recent_files: file:///dos/z/16/16/scroll.txt recent_files: file:///dos/z/16/16/TEST.C recent_files: file:///dos/z/16/16/lib/x/MODEX.H +recent_files: file:///dos/z/16/src/lib/dos_comm.c +recent_files: file:///dos/z/16/src/eng_comm.cpp +recent_files: file:///dos/z/16/src/eng_comm.h +recent_files: file:///dos/z/16/src/lib/dos_comm.h +recent_files: file:///dos/z/16/16/modex16/lib/lib_com.h +recent_files: file:///dos/z/16/16/modex16/lib/lib_com.cpp +recent_files: file:///dos/z/16/16/dos_kb.c +recent_files: file:///dos/z/16/16/modex16/modex16.h +recent_files: file:///dos/z/16/16/modex16/makefile +recent_files: file:///dos/z/16/16/modex16/dos_kb.h +recent_files: file:///dos/z/16/16/modex16/dos_kb.c snr_replacetype: 0 savedir: file:///dos/z/16/16/modex16 spell_check_default: 1 diff --git a/16/modex16/PALVIEW.EXE b/16/modex16/PALVIEW.EXE deleted file mode 100644 index 4c721d3b87833381ed95237540c2246e8f6eade8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10358 zcmeHtYj_h^lIZD&T5?O49Ucl0A`4=ahalI3GTtE;V2Eiu889{^G6axA!ehLf04sOP zVZUJHh;QQdkrg)CZzgzVcfyct2qC#9DK98z8b?VfqQ&q<+p7o)r2q7E#HB!}AX+M1f&tz+x$6!}0IQX%3*&2XB7B0x{?m*=Q z1o&wvP}xli93qHw7@*7SVq()#5|al^LtWi;jkGLWk=<7Tf&~a2@bLvpu!>aQRn>Pz z^>wSh3w7-?2rM7sB8RrVta2K!v?5PAWy8U`f@r7XFBZUV_F5H*_pInoGs6G2NkNEc{U$@&*;Cyg{aSTnz{VP#GYV zLs035N`E?3_CTcJSED{4G?Q=Yl=3ou%wJpIwL$z|I7j zUa(`m9hcDdfS$tLp%#0M{;fGGikZ=b_HUjow|wLSlh%{S~5BShy|=2`r2+5Ux!$T$6=yEQ~D>q7w~KSs25@2%zk~gEE4J zVL+K^0F+@Y3<1hS1E35Agh5b{K}|vSCMM+P;9lzQ-=H=Oz3j8sF`*;y{ST<45%MQ4srrExZm9Pz3IO7}8N zD19t+v8wF~cdLAoCBqzDOFJV)=4g&CtS&!03%4I(KfPLzeLz6R3Q%_N-avmMTi(is z6KWBB`S^MA;oxV;mhDRs6PJN_u+?!TeyQQ9v$L{;)>n~5KYqN2ZM@1kK5<5F9jpQ zm_gYcTps#&3R(|R=4dUOUA1TvbK!!dUsIH=T7JfaRlra!d1xvPLjLjDS+aE-3UWJ; zIU|hb9PLAAXAwSpOy8p+?p0*R*>lke?qw#}-g>(Gm9W+$G-B zuB&g5ua0jyq};G%9AlCHJ&cZrQQp~EUVga6FY5fSW0d>TonJQjnd5#YdK66*j-WGO zoSmnX8SrVOkTMCr?vh4CDTZW;qKf%blC`Oa1yM(sO~x#dt*erXAR$9BpJbmB1zXFa4L$XBWRQKSl}8!5lTH9&S>J&AEObGg!P1F z8%TD}*;yI>MfC`Ysn)lTpc9slQ3Gjf&54(r17EXPXIw^$gX;atjaJ|^JWdw!3LRJk z_DN(_>mQJ|QqeOsQQa_&VvfYxXYpl6x7V0sZ9-lh?psxSW>xY2qbOGb6^Z3=I z+d1606wU7+KRo|x?=An(Gh&)K`j2XuBJ?Y1_dv5g+PH1yKLeuSBe;SrHb46 zi1;`8g`_D8P5scc9-7v;W{a7w^&+!W>35!5au|wZ(8MyG%BQ%wGd8*NASInvC_qdV z9f0s4^d3zjz`}kH;nE$1F6Eb&40+LS5OXoV^UKaJnTt#Py$MGzZac6a1uX{|hBUXk|}izmE>nHenq2R~TpH&|MRd;G{qRz$le_zr)k!a{=bl1?)W! z?0JB_2MK$JzBeDPe*MiuN@xB0&e+XE`97(~wUiq&^x!2(%+`owX+Smvt@*wFZTRGvXX}s<0%+OQPBCUj&9gg1w z39%pMw20}szYtBobVf9V!Er_Tg=T+G(_|_os*f{APph!EY;WMP38;AIldyfh+mc(D zhFsWNKpwErYOc5uv9FnPnc||lH5M0I_d1u$ti?UXZjsTiYsJkm^DX3^>WmP6%14T# zGtip({aQsIHN#F)_mRr{{wRgc{Pr~j`**f~(H_KjO|IGHCYR02*6S3`HQ7hkPd?U$ zF1~f(71UbOro@xdPcLyFS5@rehV%GbaJ~*8CX6l4x5=m-VR!^zsZy>W{8|?U z2c*>aZ0%74uCZYpfGCTc$g;+92}o;0*=)U-9{yJp1xmW1VqaKyX|>A!W|wWM6yPK z>xR1dz=Z5h7|%cRdhhC@!Py~Qdo_Ao zN%$JD7+t`?H1SBSz*_*E(9qiJ3QU9@6UaiVmqh;_06Fj^G?oYrcL~U}CXYWD5K9l{ zO6v~NQh|x8&f{^S>gy}0s^c7W&?Kb}>nOzbN7TilUVc#-VB7dSH-^u-nM8|4pO4=V7j;#FXv=aX2L{ge*HaeHHHovq~e3D zWF>4DR3)w<(NvWfhW%NUFjJC!_%%4o#0)sCiY>L3TnX^Mgz!&}F9F!p7~i}a=KE_B zAFKmaGl-qogrDXdr-M^zD61q7Zm~QUIW0wRynDBLZ(VI+>L#pr(_xI2MyxvB-uI->@;A&zlo1K zBQl6R&mgmM9u3m+Y-qiW7e;h)Q?5;_e^u)_%Gf0uVHyTv#Aw9~MHY$_3ij0IQ}WX^ zka^kw6g8Pn&;tD|akqJR;$bhWKw?3KVeUq8`P_R%qN}m9$T8e5j8hPPQAibd0_k6j z#C3tn1QMUoute}U0LvlHocmW|Hb5ez{Bds+#Q-9$oY>oxLMcOgYs7@H18AE+br-jyvXE zLArCW=|^gW@#4vuM$x5<^E5q9D(Wn&+Z?qKMF>=~ zNSx%1RKsk@5)w@yNud6)TE{i zzjltI#Ce!?02v`+j8x7lN~&JXa^oXk71#AoAp$on5E7!E>)2!5oQ&*+#Nd?;BzXh+_H|#Ef9U+WV3%A;Qy#283r?pVzFz7_?&B*sCVVV z!FvqFevhIxbZyh?35)*FN)TJ@8!Eb&HmcI3V8j@aOjiBz2N`Uh$Hcm+5?nacr=L&a z4r=9E$LMRH#9FE7^E9l_2gAa6x(Ght2eF(4l(QsVbUv*th-TBn!nf0;tad@wH>N|3 zw#wO6+w{vs6N{qtG_=$>~BI>Gq$$nRpz$EM?jqcmn>023|!svH<>iBDR83 zg&VK{xgZ9U?JYbIs2oDOCyRQJJcks1;Z`lY7@{<9;!X5R*~>+*(ME;y_}nlpcqkiAI4mTJ#W+&69NbupSh6W+nA# z@S_Qt{C7lHYZu0N<;P?i3JdQCHQM(;nubR0!eG|N#k5><$=B!p@! z6^p*6a13ReS2HxfYD$ugQXvqdgvLOu` zXfXvKY+3`Ty`$M74D5nXo+~MaUK7M|CqK4DkD(%qzP54@7Y;=K9<6~MgP00$R_o7- z{tB%v)fYv5S{ExOk$#S1XuQp5wtp!5%&l4hpSOSb2B`tAO*BMfYN!Q|v_`vCJOawe zgd(k0ed}9XNt*|9d@I?P)9rY%UDew|`Sc;M$okgeRorTb)ON+eReE+U@n@n+wC_F~ zrwT_(Agn$dji|g?THs@7K|O?93YG4)j!*K(Ta&30&5E*`5e0*k0Jl_OZktfM=KFp_ z4jV*#OgQJjF(4-a9187uMpgEW2R$T(gxv`(@dDJahs&|b$jgOM%BW&&SOlTHt{prR z6cdJ$qumD40f_QQT;P#kEC^JZkT}D63U`L7rGWF(xL|_g+sp`t$!>nTluwa%2 zla@VzsB6AjT?sSc@k#I$(EG?QrN0m1wtkrV5#yI&n~eLdC)`{n!*?_+gy_C}(n8=a zCEkokviDsy8ryaAP24;O=@ufLltQK*M)xSuc2Hd{zd^Dau#LuZL19Q_@i`>m`1cVl zTHj~D3viwyaZv0OBA8^PFnR)pQOW?^52msny$|Ctv4bQ!pO}CAGpi+|)~z-y21sy< zr}`_^8B$vOvx)vBO--blY+eFp5H2)D4`Mr{(}0eFRJv zZ$KjBKV{QYg-=RrTC6d_7mfp&YDfa%RxOY_rCi=$iQ?xUXm*}D2!eoK;>y6ue_M;V zQKClW;O7>a`d%ci3@vTGJHUi?;KHCushn*{QSu3pU(6-Cam!s|)rUO%I3C1f_+;OM z4XJ(?FM$~X9@xW=w}~@dGbDpnr4?PZF2DC0?r^kl8Ks_B%{PHj3Op7UFUFL9E+gqj z&D7RA-eN;i>Rk)uJy*{wS0t-r|tcaS*z(wu+N)+`f9B*kln)xsWwfAI{78Bt8I z`ZE>q!x9d#3tL9Cv0~qR4cr+|NjgXv{P}Bb^)g1Qq#7IJ~nXhoTI z|6|}&i3P_!_u_09bHbXySecXKFH4p9|#^ed+c}_Bq*d5dvF77 zm+x1maP~G(^5A;2U0!br=1-C<()G~E+vN?=yn%x++qwj-#OiTeVZf!lQ&k?ot?MAA zw{$hG;BcuS=Zcv9Q)o8rt$jL?^J)2?m;vttA3_{GfD;8d&E*e3eKI~zTCOlHIvU}) zoR?7gabz9N=j43Ds4{(>ygVVMFr$v<0$Jx6Wk%)Q1~P?_*5Z<3h%3b{(SJiYfmtBJ zI8HvfWC^Zdjl<$f=3IG-Gjeo5?Q<$i!&B){#J)e5SqR&}auoS<&U?AeYto1^J1}PO z-rw1aTMF=brnwy4gLu~iEvurBqG!uf17icCE=)9bRJjkIca&&B9dJ;=KP69D$_#d} zAlVAObZsj>5A3jF+EXxoVa^4wZb3<+JbUTt;^37KxiE-IOcD=@<=0Lfs+3@ERP1T)dsw>UW-mH0QgMPu+Y6-^61X z!4@rJqER{FgXB%HI~2K-*#o+`16JlQVa4G39L6tkTTl34^nK1tcQUd?u6ZI0u?}_E zwV)znZkG4H&c4nrdcrWW5R?^mjmHo^dbt@T76v8@LGJ(P4 zCvLBZg-NC$1EMKVX{L8Wv}s1WQaZR-kOe7E?}bdw*U&^sQz5=BxKGR8Py&CC+teYL z(Os!Z@ZgBsv5AKq;zaUqB2D?WmZmfizcU4l4_tPs3hjt!Zd@|!H-#{P+i#~l1~f!+ zyY~u!QDU9oPGu=PvVlA?0Mk-?3lx<>`Dhw(PEy0@1<=zn$ z0N{N3yYX3(%_TKq(9!jAJEj5ge(fJ`bboP}(kDuV zCzmfPeX>wk30L_){7gYrRaMjv{|nEDewXvC#Ci)D)A+q&HYBDxErs zR@bBT&~cR|NaTGt;kzsJT}1aV8a3@jv#0?b0W2tdjIN{l7HXAf(J_g$Lz>Td1u0H?LkIhU@AoMpEB5yb^ao_0$Y_0lTYR6kuhHQ8{2l@ zX7834w^yX{h|&6-q_1q7xOwYl@5Ioy=Xcrw1*K>J3kblr?V@e-w(Zi^pV`WHY6d7B8(;|N|V@`Cb;M0q!Ry#Rw~jmUgL1jgMcmTlWQZ^w2R&{i(( z*sTw{VADW>vyJ8DWm|6#<)%JXc~nmn@6Iy~fy0U5AB_wF z`UQH`QXCCNbm?$|e}Dz;FriQco8dn>M!`k+_U1c9;m1(XnP6+My8zDd$ni7;NvwMH z=12KBj#~?~mLn`~kDvcE8tieLFK2_@j;>FyG6SI=+@ZC$Xsr>gbtKesxaNG}hxnvW z(~_BR)l0g=aP`T#K9*j(`A$s>ob*SU=2PYjY-Q27vkL(GCgT>SH5B;}j|5azyvI)6 z-+Qxa3=N2usuq;4TnCgfED7_HnEixdS4GT9waWtBj4&F;Batxud&;|VE zEqvlp^}jXb!j)m81qDxsdXCPdAhIU^m{9~Pzj>35D4wmX-1fqDuUFb3J_QS0jMkv7 zXeas|`W)Rvw-85lQ&y1QLAr@POJAlv%oe7C+0E22zh(|Fzi0jjlRhVs`2{1gJ6S*b zEB4>mtXa2a4eMS{ImG`XAK;(o1%4K9G!F1*_yxwU% clock()) && !kbhit()) ; +} /* End of wait */ \ No newline at end of file diff --git a/16/modex16/lib/lib_com.h b/16/modex16/lib/lib_com.h new file mode 100644 index 00000000..5a203b9d --- /dev/null +++ b/16/modex16/lib/lib_com.h @@ -0,0 +1,106 @@ +#ifndef _LIBCOM_H_ +#define _LIBCOM_H_ +#include +#include +#include // just for wait +#include // just for wait +#include "types.h" + +/* Control codes for all keys on the keyboard */ +//here temperarly +#define KEY_A (0x1E) +#define KEY_B (0x30) +#define KEY_C (0x2E) +#define KEY_D (0x20) +#define KEY_E (0x12) +#define KEY_F (0x21) +#define KEY_G (0x22) +#define KEY_H (0x23) +#define KEY_I (0x17) +#define KEY_J (0x24) +#define KEY_K (0x25) +#define KEY_L (0x26) +#define KEY_M (0x32) +#define KEY_N (0x31) +#define KEY_O (0x18) +#define KEY_P (0x19) +#define KEY_Q (0x10) +#define KEY_R (0x13) +#define KEY_S (0x1F) +#define KEY_T (0x14) +#define KEY_U (0x16) +#define KEY_V (0x2F) +#define KEY_W (0x11) +#define KEY_X (0x2D) +#define KEY_Y (0x15) +#define KEY_Z (0x2C) +#define KEY_1 (0x02) +#define KEY_2 (0x03) +#define KEY_3 (0x04) +#define KEY_4 (0x05) +#define KEY_5 (0x06) +#define KEY_6 (0x07) +#define KEY_7 (0x08) +#define KEY_8 (0x09) +#define KEY_9 (0x0A) +#define KEY_0 (0x0B) +#define KEY_DASH (0x0C) /* -_ */ +#define KEY_EQUAL (0x0D) /* =+ */ +#define KEY_LBRACKET (0x1A) /* [{ */ +#define KEY_RBRACKET (0x1B) /* ]} */ +#define KEY_SEMICOLON (0x27) /* ;: */ +#define KEY_RQUOTE (0x28) /* '" */ +#define KEY_LQUOTE (0x29) /* `~ */ +#define KEY_PERIOD (0x33) /* .> */ +#define KEY_COMMA (0x34) /* ,< */ +#define KEY_SLASH (0x35) /* /? */ +#define KEY_BACKSLASH (0x2B) /* \| */ +#define KEY_F1 (0x3B) +#define KEY_F2 (0x3C) +#define KEY_F3 (0x3D) +#define KEY_F4 (0x3E) +#define KEY_F5 (0x3F) +#define KEY_F6 (0x40) +#define KEY_F7 (0x41) +#define KEY_F8 (0x42) +#define KEY_F9 (0x43) +#define KEY_F10 (0x44) +#define KEY_ESC (0x01) +#define KEY_BACKSPACE (0x0E) +#define KEY_TAB (0x0F) +#define KEY_ENTER (0x1C) +#define KEY_CONTROL (0x1D) +#define KEY_LSHIFT (0x2A) +#define KEY_RSHIFT (0x36) +#define KEY_PRTSC (0x37) +#define KEY_ALT (0x38) +#define KEY_SPACE (0x39) +#define KEY_CAPSLOCK (0x3A) +#define KEY_NUMLOCK (0x45) +#define KEY_SCROLLLOCK (0x46) +#define KEY_HOME (0x47) +#define KEY_UP (0x48) +#define KEY_PGUP (0x49) +#define KEY_MINUS (0x4A) +#define KEY_LEFT (0x4B) +#define KEY_CENTER (0x4C) +#define KEY_RIGHT (0x4D) +#define KEY_PLUS (0x4E) +#define KEY_END (0x4F) +#define KEY_DOWN (0x50) +#define KEY_PGDOWN (0x51) +#define KEY_INS (0x52) +#define KEY_DEL (0x53) + +#define KEY_LWIN (0x73) +#define KEY_RWIN (0x74) +#define KEY_MENU (0x75) + + +//typedef unsigned char byte; +//typedef unsigned int word; +//typedef unsigned short syte; + +void wait(clock_t wait); + +#endif/*_LIBCOM_H_*/ diff --git a/16/modex16/makefile b/16/modex16/makefile index e0a07cc4..bdf9d948 100644 --- a/16/modex16/makefile +++ b/16/modex16/makefile @@ -1,8 +1,8 @@ FLAGS=-0 all: test.exe pcxtest.exe test2.exe scroll.exe -scroll.exe: scroll.obj modex16.obj - wcl $(FLAGS) scroll.obj modex16.obj +scroll.exe: scroll.obj modex16.obj dos_kb.obj + wcl $(FLAGS) scroll.obj modex16.obj dos_kb.obj scroll.obj: scroll.c wcl $(FLAGS) -c scroll.c test.exe: test.obj modex16.obj @@ -25,7 +25,10 @@ pcxtest.obj: pcxtest.c modex16.h modex16.obj: modex16.h modex16.c wcl $(FLAGS) -c modex16.c - + +dos_kb.obj: dos_kb.h dos_kb.c + wcl $(FLAGS) -c dos_kb.c + clean: del *.obj del *.exe diff --git a/16/modex16/pcxtest.exe b/16/modex16/pcxtest.exe index 4ab5474eda921991e739342a6e978af201ef95d2..89c7beff065ba4d4782f7bd4bddae2d09650380e 100644 GIT binary patch delta 4581 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 Wh5M}t3;yK8OM)s94&1m7!~O>jUz|q( delta 4762 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 E8@yfH=Kufz diff --git a/16/modex16/scroll.c b/16/modex16/scroll.c index dbfe3976..43edbcd5 100644 --- a/16/modex16/scroll.c +++ b/16/modex16/scroll.c @@ -1,8 +1,9 @@ #include "modex16.h" #include -#include +#include +#include "dos_kb.h" -word far *clock= (word far*) 0x046C; /* 18.2hz clock */ +//word far *clock= (word far*) 0x046C; /* 18.2hz clock */ typedef struct { bitmap_t *data; @@ -48,13 +49,16 @@ void main() { int show1=1; int tx, ty; int x, y; - int ch=0x0; + //int ch=0x0; + byte ch; int q=0; page_t screen; map_t map; map_view_t mv; - byte *ptr; - + byte *ptr; + + setkb(1); + /* create the map */ map = allocMap(40,30); initMap(&map); @@ -69,10 +73,12 @@ void main() { mapGoTo(&mv, 0, 0); modexShowPage(mv.page); - while(1){ + while(!keyp(1)) + { // scroll all the way to the right //for(x=0; x<(map.width*16-SCREEN_WIDTH); x++) { - if(ch==0x4d){ + //if(ch==0x4d){ + if(keyp(77)){ for(q=0; q<16; q++) { mapScrollRight(&mv, 1); modexShowPage(mv.page); @@ -81,7 +87,8 @@ void main() { // scroll all the way to the left //for(; x>0; x--) { - if(ch==0x4b){ + //if(ch==0x4b){ + if(keyp(75)){ for(q=0; q<16; q++) { mapScrollLeft(&mv, 1); modexShowPage(mv.page); @@ -90,7 +97,8 @@ void main() { // scroll all the way down //for(y=0; y<(map.height*16-SCREEN_HEIGHT); y++) { - if(ch==0x50){ + //if(ch==0x50){ + if(keyp(80)){ for(q=0; q<16; q++) { mapScrollDown(&mv, 1); modexShowPage(mv.page); @@ -99,7 +107,8 @@ void main() { // scroll all the way up //for(; y>0; y--) { - if(ch==0x48){ + //if(ch==0x48){ + if(keyp(72)){ for(q=0; q<16; q++) { mapScrollUp(&mv, 1); modexShowPage(mv.page); @@ -111,12 +120,14 @@ void main() { modexWaitBorder(); }*/ //while(1){ - ch=getch(); - //printf("0x%02x\n", ch); - if(ch==0x71)break; // 'q' - if(ch==0x1b)break; // 'ESC' +// ch=getch(); + //printf("0x%02x\n", ch); + keyp(ch); +// if(ch==0x71)break; // 'q' +// if(ch==0x1b)break; // 'ESC' } - modexLeave(); + modexLeave(); + setkb(0); } diff --git a/16/modex16/scroll.exe b/16/modex16/scroll.exe index 213610d934be63dc67ca285790e26031038ed215..321a7a725ba70f5913b0b84c1815461ab2ff81e5 100755 GIT binary patch delta 2993 zcmY*bdvsGp8lSoM_TD5-a?>`p1)-!UEeHpjMNxr1fNp#M5>jkSi!I>VKYX&7;L)ul zZ0#{aNNfjLDtqLfb7$s$ z^ZVZ4e0TOXVBa?ET~^`4HzOHI=opH}yCkGT=%W;bY-s#xRuS4}K`1{Jp@Z=5O+zTv z`pYIv|BU^2J3RjV1xJEGa&Y+N{R(dhu994K8Ys_9+fuYZN{pKRh$C=d(1RfC>5M$>J=6VMl+2FP9bEX zH;AReIum_d{Ik$%q-oMJ;c+8fC)ElUl4-y6jNneDl}Qu5bGVUUqn3l%(&U8hL`pK7 zHellTxycRV7`J!pCf2qQbA!j9W&_gFz`l4$lC}LJ)2ShZ`66x(ok3cs$PiFOP8l?Z zQjqqg$j+NXUZi~`va@FUiMtLzWg(d-kNyyFF}~StUK|?;2`cAkHB+NJ%l5KC6H(L} z*Q|&UgR3lInUP#d*mkAKP0Quq2#XE0K`s}fdisOB#QUCU5B3amc>xnS#OFFwC@rD= zdDE8CvAkif{~42ZTx8Fg_UPQhp*ctki>$^JD3j_=i$_oMuW}QFC0ZGGY7%1i=*vq< z7g;Hh)p8X?T}JG7eR+w?9|;MFn|q7N-D2yV7Fm`lk#ZYiDSFzbl&5Wh5VEEQ z7|%5|!Z^^hozBqJ3e$D8U7scBbo4vDM!ot1!J;H67iFM~2^W*-cZNsOUP>_TNHD$v zFVTXg{u7vMPMRm+7kg7+Z`IbpaNB#A!C6A%RLB?u&hzD3>QBy4G0j zHA%eANQeEHc0go;4(5X*lXT=T{=%;;+B}NH+QI1M|8QSVi7pL^%qWr0`mo2MO+`+2 zTB+MFXz@53RY-5ecP%k~rGb9{1(lt?jzsaIaS`6nN)jk3w8#fPuo4DwBgUNowVXaZt? z5_qY-EAP=kS;Fc~ShQ?Ue}uk8c^xxK_4O!h!^wdiDT2am-XP~@8w^j zMdZN!n_7G*(d4eM?Iz!*t2%eOwi`f80R$~;6ZvI_w(_dsKhKcczdN=NYJ|F4VP~`Nxo+E>&}dZawv=Il?Cf z`lg!cb*^xgtbCxfEK7De$=RQ^0;#c2TZ5P>iF9ad5lc!k{?Q*vgblt1CEpouUYs1~ zTm8~-htHktKMXW~d%qkr`Va5L{ukEB{ulb?kPVSu)+&{kD^seg9;~daSXJKRJ0!%t!j(HXWQ@;H~ zUig|4oH@-ygvlQdc z=r+rZDR1z<(koq#F&uTrNpEZ?ZMAGuAd(#|PwA*DWwD%{+Hi=yK;KANfD33}%3mNQ zYs8s7d(q|h>k3-I$xLm6byq8HFt_1dVVFAcuKh4|;W>j^rgc|0tPf!=4$)Crjp_^) z(Du~K6bZz(Ue=X3T@5{r--YI+QkFV-(jBSI0@_z}B)iR9H`2DWBJ8H|v<%!vGpy6GLW``8@;wGJca1{7v=SVoRX4nZtLV@THbJ$} zwDdxJnU`pa-dkiC>9+qRwOr%a=;oW)-hzENtvth$8=rh4%1C)-KH_* z*71$yRGctvwn9euZ{~9|V&|ZVIZe@3aj2uevL~o(;wt zL`wGEek7apHFQ=+qS}@5&di=O^446nDnh!+CDwEWR>&TXj9<)xGqTIlsIB$2~l0;~fWtagwbjhz8ZX&GmudvbE1 zo_ca@GZpf*MCL+ONTjbiap~c=q?3&Q0^AcqB8r8zi6|r%u|srX?iApfms^FG1YgTF z3Q0;tdqfGoKVv->HqQ!9npr32DIf$cJ0N4;DahkOzREjA4uG`jO`ygjkR(zo9r&$; z5GjB{=$SnkXVAgfHV|#Tb&~M!XmHl8s|{EQlDqB|M1`sJtNEo#=e}uLuLScJOu@!| z{h$HrYRlVCDZ$G89*mpm%)%+@hrbLs#;(;MbT>HbL+tN#P2qYFeY7wWM4l`BTEGtk zI~Hxm)KQ!VcWi`4tRvRov&GwS&dP$71&KV_+Tf;*Y%kx+M>nV0R_DQJwdW)BKkA0; AY5)KL delta 2672 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 diff --git a/16/modex16/test.exe b/16/modex16/test.exe index b0247b18e9ecb1cc9481de996b4b5eeabf440af8..dbc7ed27b32b7b009eade58ed286b7514893b26a 100644 GIT binary patch delta 1235 zcmZ8gYfKbZ6rM9P%r5u{@{%gZ0*j$5=wj>c!mf*=?h>QffGL!>wm;aK4Q*ft{9$AX zZt7*IH9d)mmL|2@#`>q4Y0_1q!fsNaudszgDv{zNad4=GLa`LH^iKaY>7CqjzI*eX zoSW}E^TlbndK$RHwfQ%=9(}HtE8W+%!flqSr;hP_yKu>mn>RJ&*K_>`ITAZF+_h5AwWS40Suw6VBB*mEZfIR1Q$21_ zfA5Ob_T{gx3j&S{VBl#|6;(SGc37vI`J7r zY+d9?RW%v9;}fI|s>Nn|C+p|QlsX?cEO1gOaY&XHDg)itrbbGxsFc>X2*D9iPiU^K zsf&>B$*_i{jY{8dB&t59oT_TAEVv}5^iM(8$`aewu;j)oIcd;>{W%6bRkedB79T#& zv96s|N3;?$DA9|pxdV`cPjfAx;ud2ToJFT`4&1mSF9Y7eLwS1=PHs>aL+=TZP%EC# z`|6c<6N4k2f|wMXY+rvhASMKU2#_$DQ-t_B?2#X}lon1I9N-_gT6%&m4uafel^ z)|1ibbaWcRJ-qoz^iiRifv}5I>(%=&nuLId)vNvTLSZsMg{<3A25=1znls=zHkn@LvtBF*QC<%XE_hWV|OLR&tcdkaWj5-{NPIoy? z9LxDLrS&F`N;IsvX$t-<+Cp)RVpizjQ#YkFh9hYw1f>@5SgZIo6PHe4y3Gc0SYb25 zHf*<@0tOdt`{1^0E4~U~#D^tC7Ji(#VsyH8l6f*jrmA}<&JILp7CuiNS-8?fCY0H6 z$rU5B4NZ;O#EdHAW9qze56kU^nawM-?hk2;iG#6#2MqN0t0ZA%c$Lz!@FV+P-o;%m z$9wiNor?ozNGL~xqg0dUn4=uZ@tWfe-8qn4FBK08yL;D!SY`&9nU872Pj-KhJn(PZ zNC+79&sTrxUKUzsvDE1?_Z3a5Dw&%(8aq-!2FYmm->d%k-uuN-QBc~W+B3f^np9dJ pP{e2p2c22+ug+Xop7#sGJy@`@y~4wdHgaU;%w%xM!}aC{>RB;uC?=@M+6L%Jk-2aK zsDB1mJoxs;+6vmYMq{r{1@GF#A*26cGUSO}dsX!L;r=Z&={M{a0Lyd=3( z4uPt4Z0OWOM(m9MP+{A9Mrd^^(+e)FuJW9?#NrW*8n>ppl`=(>pWcGWd3uaAh{QmbWE#m z2R$CEZi3AyS3eItX4@*@GS=C4G`+~R#+u1AiC%5{uDFLKI;E9+qgC^Z+8dj`8+4gD zmh%@%nP!gaGpV>~3jHA3BWaAXO`-3eS}El+9Lenyly)4q9p*Dst z;(5m|en5EFjd90r-GBhhgy2S#vtGOG3(iJx<44YCb>~2GFDosWQFnIDD9a>}Nxa1* z-o)X$S99WI_MZ|l`svlbp89d=vy~=GxL6#d9yRW znePt64~HRgcdZ#x8J^*oz>kri>eAg@$@bnQhHKwIuE5QHK4bF8M{dsE(=l_AYDT^7 zcgq)bIsi9b(QgE|JgdLMQ8f|O!BT9;TBMh$wF&GSO@eP)jQOQmkWzfpooJkP z)OpR|C4+ivafiTp^cR3350$e(7RXd%Lv3A9(vdL9(Ik*f^pvRg{5+$`QR*$ZG-eLq z9n6W#h96~p0e%l_H{pH#1?v0I$to^NkFrX zW3|xwb!Tiz)2;n-|9x1w6@QsUlLUnCTU65QRW11~(P)^?`A@vUR*;l27 z`4+{vp+BH^=>gkbzgUjvQ{$l-FQ*#yv{Ritu{7aAsx@j_9oIt0h(rNP+AyTylQavc zxFy{HgZO&-Lny}*Q!>1dZ<$IXy4I_Y{VhV!zaPIceV_QjI^TGYAjbHnJEG5d#R%`O zUJ{@TjmigJ%;ssn6PYP7G@r5RumZ;eiMSM*&8OCeh?8)ut?dCR{y|B|NRq4rOXeKlRfqve6H*`D4%s{|N zs`TphCyj#F#p=}|naha!(f~#0+ZzgyGv(6J+6s)^1>sFW3%2c~`+X029s^ z=2;@H5$6h>uB~LAjFOvG15<;;q1lBmW5*ZHHj*jj(KX4rLgwll8?=d;RIXoD=am~+ zU6hmZ-V%*_ByCFL;HuXJM!HgaNI)4|rEUg1U9^pNaA!*KUQwCO!2vTWl%m;IqP6Fc zZ5LgQ3${0P$3Su}D=v(;4@CM|W)_**6I9~2_M@@G&(j9|z^MOb{@M4R&^CvzVwd@3 z-n6QchqLaLy%l7HO!hrn^@I;xFARx-(iPHv^HScl(sqMdjP_xu*dYH?oW#Afu3%lk abIABb1l7ihOih|K%$Ts5%DDR$hWQ^LpWj9R delta 1150 zcmX9+eN0RW4_q)HGlXK7g z-S3aXx5pu}syP=@8J^)7|AokpH0ds`q^xh1;kq}I8!+3?Z=E{%mW#9Z9=>yxBBT5< z=<;3FXaHPzLz@ULUr>9GqcEvE%u=m<6Vk)2xs?WK|-spmK)m1k@b_~eXF&2CLsxG@y7(K&czMYscTZD zyL|D9jbTuXZ|GB?4d2!8hh%)Dw;FA6-VyN=$r-WN~U8c*?Q@;WL8=7 zR0*6^LhO>MgAPZ-+~%UmHMLSyhv2;?Y6->WrWQY$Amb{RHp}P!Bmw0f&8crt%e)~m zX6RSwTm6geZVgr9#nd?Hz=>3YmcG>yo|xM4L8@6dqD-hI9x=l6vxkgQ zhpzYzZpr3pzmGFgqG>;oC1K(gtcEP~7w!Qbji#+IfK{f# z>esm@e+>zc(TgpUsa-75$W7dPO{!niUVq?DpCgTX#JW?Ys5Fkg&$#TQ;JqnY2E!P6 zyG;KwwNi>(VM*LULEei2Q#~IuefA(`nJu(YhuH|3NX$K`wUoh_??uabfGzk>Q2|8Z zb5?y^=oiVkP8M3*Tz+u~~n)g9+uE}+nXg?J>#4Yn{riO-}wX5Pdw{{hBhy|w@V -- 2.39.5