From e65b5401f0f5a953ca2e69d99fa927635e42fd41 Mon Sep 17 00:00:00 2001 From: sparky4 Date: Thu, 22 May 2014 17:19:05 -0500 Subject: [PATCH] modified: 16/DOS_GFX.OBJ modified: 16/Project 16.bfproject modified: 16/dos_gfx.cpp new file: 16/error.png modified: 16/lib/x/MAKEFILE modified: 16/lib/x/MODEX.BAK modified: 16/lib/x/MODEX.DEF modified: 16/lib/x/MODEX.H modified: 16/lib/x/MODEX.LIB modified: 16/lib/x/MODEX.OBJ modified: 16/lib/x/MXBB.OBJ modified: 16/lib/x/MXCC.OBJ modified: 16/lib/x/MXCG.OBJ modified: 16/lib/x/MXCL.OBJ modified: 16/lib/x/MXCR.OBJ modified: 16/lib/x/MXEL.OBJ modified: 16/lib/x/MXFB.OBJ modified: 16/lib/x/MXFP.OBJ modified: 16/lib/x/MXGC.OBJ modified: 16/lib/x/MXGI.OBJ modified: 16/lib/x/MXGM.OBJ modified: 16/lib/x/MXGP.OBJ modified: 16/lib/x/MXGV.OBJ modified: 16/lib/x/MXHL.OBJ modified: 16/lib/x/MXIT.OBJ modified: 16/lib/x/MXLL.OBJ modified: 16/lib/x/MXLN.OBJ modified: 16/lib/x/MXOT.OBJ modified: 16/lib/x/MXPB.OBJ modified: 16/lib/x/MXPF.OBJ modified: 16/lib/x/MXPG.OBJ modified: 16/lib/x/MXPI.OBJ modified: 16/lib/x/MXPN.OBJ modified: 16/lib/x/MXPP.OBJ modified: 16/lib/x/MXPT.OBJ modified: 16/lib/x/MXRA.OBJ modified: 16/lib/x/MXRP.OBJ modified: 16/lib/x/MXSA.OBJ modified: 16/lib/x/MXSC.OBJ modified: 16/lib/x/MXSI.OBJ modified: 16/lib/x/MXSL.OBJ modified: 16/lib/x/MXSM.OBJ modified: 16/lib/x/MXSP.OBJ modified: 16/lib/x/MXSS.OBJ modified: 16/lib/x/MXTL.OBJ modified: 16/lib/x/MXVS.OBJ modified: 16/lib/x/MXWD.OBJ modified: 16/lib/x/MXWM.OBJ modified: 16/lib/x/MXWP.OBJ modified: 16/lib/x/MXWR.OBJ deleted: 16/lib/x/modex.BAK new file: 16/lib/x/modex.bak new file: 16/lib/x/modex.lb1 modified: 16/lib/x/modex.lib new file: 16/lib/x/modex.mk new file: 16/lib/x/modex.mk1 new file: 16/lib/x/modex.tgt new file: 16/lib/x/modex.wpj modified: 16/x.bat modified: 16/xx.bat --- 16/DOS_GFX.OBJ | Bin 8352 -> 8332 bytes 16/Project 16.bfproject | 47 +- 16/dos_gfx.cpp | 1103 ++++++++++++++++++--------------------- 16/error.png | Bin 0 -> 74343 bytes 16/lib/x/MAKEFILE | 2 +- 16/lib/x/MODEX.BAK | Bin 5632 -> 3072 bytes 16/lib/x/MODEX.DEF | 3 +- 16/lib/x/MODEX.H | 2 +- 16/lib/x/MODEX.LIB | Bin 5632 -> 1536 bytes 16/lib/x/MODEX.OBJ | Bin 31 -> 31 bytes 16/lib/x/MXBB.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXCC.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXCG.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXCL.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXCR.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXEL.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXFB.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXFP.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXGC.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXGI.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXGM.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXGP.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXGV.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXHL.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXIT.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXLL.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXLN.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXOT.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXPB.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXPF.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXPG.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXPI.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXPN.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXPP.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXPT.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXRA.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXRP.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXSA.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXSC.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXSI.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXSL.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXSM.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXSP.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXSS.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXTL.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXVS.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXVS~1.OBJ | Bin 0 -> 32 bytes 16/lib/x/MXWD.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXWM.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXWP.OBJ | Bin 98 -> 30 bytes 16/lib/x/MXWR.OBJ | Bin 98 -> 30 bytes 16/lib/x/modex.BAK | Bin 5632 -> 0 bytes 16/lib/x/modex.bak | Bin 0 -> 3072 bytes 16/lib/x/modex.lb1 | 40 ++ 16/lib/x/modex.lib | Bin 5632 -> 1536 bytes 16/lib/x/modex.mk | 3 + 16/lib/x/modex.mk1 | 236 +++++++++ 16/lib/x/modex.tgt | 948 +++++++++++++++++++++++++++++++++ 16/lib/x/modex.wpj | 43 ++ 16/x.bat | 2 +- 16/xx.bat | 3 +- 61 files changed, 1823 insertions(+), 609 deletions(-) create mode 100644 16/error.png create mode 100644 16/lib/x/MXVS~1.OBJ delete mode 100644 16/lib/x/modex.BAK create mode 100644 16/lib/x/modex.bak create mode 100644 16/lib/x/modex.lb1 create mode 100644 16/lib/x/modex.mk create mode 100644 16/lib/x/modex.mk1 create mode 100644 16/lib/x/modex.tgt create mode 100644 16/lib/x/modex.wpj diff --git a/16/DOS_GFX.OBJ b/16/DOS_GFX.OBJ index d5b35927b3ab31ac8a71738e2ad1dfd6067da226..23a5a0350ec935c6b40a3b750e7d4b143d8ac0c0 100644 GIT binary patch delta 3075 zcmZ8j3s_Xg6`nbBAA9evE6DpH0wTy$R^uurh^SGiCSbs!qJ;1i46sBVzFny+LO{h_ zZ4_4vm?*SW;&FpV+E*BEUYW12QkQWE2#`1#YHoNCrT~)Gt&GH&YS^1ij$~n8T=Z9a$h`^sklsW2) zR#dD>DXpsu-gR=S)NGM~_U`(}kkmy+`_OHtPSN=whpRb*0&$$8LLvBlMSbWU8bAR8 z=_m-I!EjT1LW-d0v`%S*VkKP!Ke>xFKY1D*(H6={{w_Yo*v@^8y<9d9p&a9Ko7OI0 zjSeGYYS!eIH}I-e4UNUsxuvVh%WH{HRa;j?9_&6xXuS4>Da~)NlI9G4NOQcIx9GyH zf5+U@8lNaIkX43<$_kBObft_*WpgZ z4{aCPzT0;KhCd2BKm486tEA9i?Xt4gnc<#F^Z;%(k~!#huIl&mQO1Lqv4jV>R`Nh& z9S7G|9%SsmYWAZXMmf!WV|QO5ga*^`5JFQRl%_!#oeSYK8zN}|#L!}xL>s_HH^5}t z3TtT_tfL2D6YYa$dK9+M0dUb5pv6fkYo!Wnr~YgQjbfcNneC#J*i&>0)97@zo6car zrs-@i&0zcJeAY!DV*6<>J4iYE4J~8cw37AEde%!fvqQ9sS`6j%`HjV^P|Sn2JM|uV`sDh8J(Zegw5oru8yggSQX!-Fb`Dk zMb_SfqP$S$&!f1OVhs!(V8lN^qpq=`wDOl2+F0LMU))$4-$VuNQEPZgpFq?OA2KRG z!%#rFsaE8ep8%2ot3yct9%em_>q+@$!Z#leN88U+poU*g$tTF7->| zlk;w--n1Vg#QF&#ZJ%k|efpNY>Rv*0nU8asd884HluY7g+=$Ga`5s8r7 zhW#R{NTPl1+gEztT}X6>PpX(D0JB8l%yB$MPsZM!!YAlyJXW8L{yaXx^$Q+{eLX>6 zic*MDf-zM%R*x~OQE%X8qlGj50Q!e{3?4pkt)of1E(d9fUr|7whkzt`@gqFH?G@XQ zr+(Xz=J4w;4svG^m&zx)e0aPbga0N8Gk9jsM9D(Q;jy@zm|n~ij55@t1tvBT1?`#+1FQkrme%r2UjsAU3*~79gW(!1y!nny5g)F8b zQ!_D37Ei_<7OUst>;)(lC=DphT+myv&K*2K*U;XNx`&HcpBeXXqJD~t3Erk%4Vltf z$dWcdj9j?}y2<8>Y+sFjGDXTs{UX<>RnQehya4C%`G60k=E=eexgRj64W0 z%g@8x@>#ehpM!7ZA&^WjgOBMv1e-3vc#{rOO!hy*bkjx1G+ly1)2mQodJXDLufwlQ z256=~L7%DBvp)Mwjk32vD7kfz+zJD2NnoF|#a&Ev5z7ri3c`_&Xrv$xDM&%zj+CV1 z*nGsY(auNvQN&9zt{VM1^jG5;wuin2{dV;C;FufzXAtkh*fTuwh-cw)l&wP>W&4N~ z8&%#UdOOzMqiqQ4bIFv~!_n~AUHV<_+N-oZ^9OG6XR*QZk z>W!$I5#NdUZk*e*jQuDlxp2udx1`$J1M%$o(*9%wA*my`eSS2&u(l$k%bDa}?Ab0N zZkJfy4}luu!|avSz4pMhKX9D0<0Lcj7aIHr6F zCzY?^wDK*SQ|`c!@^5%e`5xX>{tNFYguSn*?7CuQ-z&b1sAHI<`ms^!tPtj}hOCd_iHFW}>b>*kUOPn+dk@~C8$+MTc-Niw z)0u;d8Eu5)xs${#Uh>lUBp2rs^-3gbEuJ@9xY@NGwP(RjbMuQGHtq2+o80HQaaNhN zs4ze6WZ1K_7vqiT^2N9Sd@crcB0l#xk8?Hic*Dh04L82J9OgEopHFrT@F|-+Y@SQ3 z%#l}K-+=dAe3RB49u_I$#aCZMHg+!~G{JKFbI%#&eGAw+)Tj(nqFoJ-bqRv zgyam)BtN~H*@g;U|H_?CTmrw(kZ~%1KGhY@ZQf%wmaCWI^AtT9UlDBFuBYMa!UJe$ z@M)LkBEA6aMcn>nXB#%5kN5g$swyjY+`F+IB0;RQy58xzmP_j@Jh$>&_drLrV^zbC zg;WJdp2|u+*g8*TRXGwdW48LTdx=^kV!_I*YFBvuswnyYn7E=6v8K4Hwn(**6T5ff zpGjh`smbgObq2elW;of$>RdLW&SO62Ma%3X4A|$>>+b5D>N@*4Q9@sH0QG} za{+tSyo{YSm$FaI8sk*$jAQ&TE*c! delta 3286 zcmY*b3s_ZE7T$ZUd(OG%-V1^tARrIrAwGy}f@v9=hKdqcxN!(Xn@rct6;>Njesm89kKF2r@t=7Q z&LE6iA)JT7O>MRu!}n{e!!P&% z{E`pG^L!Xy;3M!)d=&nfPsEFS5?XBd=>tUcVHHDVm9o?32-

(x8=F-KXvzo1$Xb)k6SV2 zUW@I;lUse+LJ{CmM350o8H>tSPsZe{M!X2u9~TkEDACiHAR>(-YI{yZQ9+{gWg<{t zC8G6LMMQCHC<`vgtgmRQFR3YY%}l6#wz$E?4t2cGc#bKdTiO-xiBGR)ENf#dt4l}i zQlO%B3s{-88_#{yD()SmR3AT)^{bh!Xty)nDtZ~+X*cvEZ72OWRX>LU&!C`AlIJP# zLJGW8*z`9=#69h7KrddZ-3aLAZUok?AhYqAvN~sVbwXudM@r)@KjiWwb00u~=<8MW z`(C4vg%o5~J4?$eowfCoso$*1(iBH0ve1IeSq=4NRX(i2)!-^^C`)O)i7e8OyXxy4 zwbTFG7EK@dn%hilOKS=XD9ChHmzVesY(k|&D-4QM-s_-RNRoCiaI3o|>q^>{j84V^ zzhlgMeNX#9rbp45=``rWNRK4_6s_HtbeD)RmI&GC6tccc#CZ0I*f9SVEe6>%1rkhC zp`U3QJYp(?;ihuPGF8BMQzev{s-Vi`fM(MSc+oTymYb?!rKuL$OpV~)VVVOUndZVL zrsv@s(>(amv;dgo21!~7fzl!fk(!~urO0U9N={49OZG;`tW_U;10`EyX;E=QvE=arJ7il+uya#OZUJLY) z--Z;qpfy=@1tlxBzSJC$w6}t`X)(dF+sHT}GZx1_Y@fsom2wa#toi_9F&-0f#(47c zMZ8{2>@ba_Qp9_zMQ?pJVRK35i+IWx=qt%yNA2w-9n|Ly>hnj!_K5hp)?8*T$aK-B zpuOs|n*5ffAhXQrtkcd0N5}Law4#1wS-qpNBCm8hmC?7Q*bv`TXUi{j-{zk9v?%Z% zw;%S^(0;h0{SVAgC~gSNwWsK##}f4X8% zA=``3-LW4_IhJj>TEZczNi;q3d@*!NM;la@{Vk*J#~%>lyf z386Ii7V(}m8sup-9melf9g@CL~(2l}go*$X?QS zihfo8ZT=3V%KIQg-Vej&1K=Jbe*n4iK`4_CL6xk7Oa2g=<>RnIJ_Q@()9|Kjz}xc2 za8N!2r{uG6M*alO%b$UyoCB-!1q3P=AXfPb5|yjaU%3XOloE99xexzV7)oZ2L1w@>Gh(7y!c?=2*=7ZE z&1RfxR?%s;;6k$%+ssZM8Mc|Vd12e!ix1CNGVTX5c1>9zW!#s)YA3QYjaY5H^DBv1I2G?%OiO3PMQt_Izn=Vga>!zMlHNLD-u@ zTI}1iIVxiro3zgG&F+k4VMMz>X0*gGmUjPI(BSrBrZf7+MB@a|ci|+yIV6xgL|6vt zOp;MF-URAbK-d)WD@fOno=v!$a1X^^?T;<#n+e}e_FE#+>#w5?H<$x(w>i*_ADO%1 zWpfbzVh+X#H3ZYtP)t{Q;7~OTN2(E+rS`F_^2yVu2cmMQS{jsJ*dN?SqwS z0y@-0tXGq9uG$wDsVTTv?T21<0IpC6;#xHoUs2O=qdEvTse^I5nvOfwA-GQ+itnqL zkD;zUj;GYIct)Lo->JEHL(RjV)QNakEkJH5M6^uBa7!s>Tc+WBOBrsrIB=Jx$yZ0T zXk8I+xT$o$8vaI98Jie8Ph{mk2^Ly)pfGv5izFkG4puxJ>OrI*6&BBvgyoQ(Pgn)% zTEdzLYax3b9mEZ!w@@~>(+J(9DB=C zcYi&ScEfwxd-MShCD1KuScrup>4uD@ApJ$EXS7Jx1qGT;>@!V;cpuKzb2FYaN+5* z57=(7$0E}7ZnVBoVL2I|ulk-eMyyCTl10YJf#loCPZ#O>aC+*DAbXS;a&j!;6UfdJ z>D^bky>vc;{Dj-+D6eon;Qk_s5mr|1@;wL2W>xyG`$G>fXSK7g{lP3G+tPyE+KN4_%Q3;a0*6^wW42YpQtKL=V{OBw)|c@m>w4U3-GpCS zJMp4*3tqOqj#sT)@dxWpylp*#%=RTJw(}TdyMW=gud%1?BKGNJyM#%$D>%^hEk0zs zis`oNm}|R%6}Fo=%l1!PX!}rG74t*P7DlX6H;p}A;c`|t)KfW!S)NTSFZPLrY3pN` L@+K`lZsvag#KSSO diff --git a/16/Project 16.bfproject b/16/Project 16.bfproject index af88c95d..90a63e85 100644 --- a/16/Project 16.bfproject +++ b/16/Project 16.bfproject @@ -1,14 +1,20 @@ c2e.convert_special: 0 e2c.convert_num: 0 -openfiles: /dos/z/16/16/dos_gfx.cpp:38508:37505:1: +openfiles: /dos/z/16/16/dos_gfx.cpp:8871:8213:0: openfiles: /dos/z/16/16/dos_gfx.h:607:0:0: openfiles: /dos/z/16/16/dos_kb.c:892:395:0: openfiles: /dos/z/16/16/dos_kb.h:60:0:0: openfiles: /dos/z/16/16/lib/lib_com.cpp:0:0:0: openfiles: /dos/z/16/16/lib/lib_com.h:2553:1575:0: -openfiles: /dos/z/16/16/scroll.txt:5307:5103:0: +openfiles: /dos/z/16/16/scroll.txt:5307:5080:0: openfiles: /dos/z/16/16/project16.txt:1675:950:0: openfiles: /dos/z/16/16/16.txt:0:0:0: +openfiles: /dos/z/16/16/lib/x/MODEX.DEF:4500:3857:0: +openfiles: /dos/z/16/16/lib/x/MODEX.H:2733:2279:0: +openfiles: /dos/z/16/16/lib/x/MXVS.ASM:272:0:0: +openfiles: /dos/z/16/16/lib/x/MXPN.ASM:257:0:0: +openfiles: /dos/z/16/16/x.bat:0:0:0: +openfiles: /dos/z/16/16/xx.bat:16:0:1: snr_recursion_level: 0 convertcolumn_horizontally: 0 adv_open_matchname: 0 @@ -20,10 +26,10 @@ view_left_panel: 0 default_mime_type: text/plain e2c.convert_xml: 1 c2e.convert_iso: 0 -opendir: file:///dos/z/16/16/lib/x +opendir: file:///dos/z/16/16 wrap_text_default: 0 bookmarks_filename_mode: 1 -ssearch_text: mxpan +ssearch_text: virtual snr_casesens: 0 view_blocks: 1 name: project 16 @@ -58,27 +64,28 @@ recent_files: file:///dos/z/4x4_16/tile.h recent_files: file:///dos/z/16/16/lib_com.cpp recent_files: file:///dos/z/16/16/lib_com.h recent_files: file:///dos/z/16/16/PCGPE10/SCROLL.TXT -recent_files: file:///dos/z/16/16/lib/x/MXPN.ASM -recent_files: file:///dos/z/16/16/lib/x/MODEX.H recent_files: file:///dos/z/16/16/lib/x/MXSM.ASM -recent_files: file:///dos/z/16/16/lib/x/MXVS.ASM 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/x.bat -recent_files: file:///dos/z/16/16/lib/x/MODEX.DEF recent_files: file:///dos/z/16/16/Project%2016.bfproject recent_files: file:///dos/z/16/16/dos_gfx.cpp recent_files: file:///dos/z/16/16/dos_gfx.h -recent_files: file:///dos/z/16/16/lib/lib_com.h -recent_files: file:///dos/z/16/16/lib/lib_com.cpp recent_files: file:///dos/z/16/16/dos_kb.c -recent_files: file:///dos/z/16/16/project16.txt recent_files: file:///dos/z/16/16/dos_kb.h -recent_files: file:///dos/z/16/16/16.txt +recent_files: file:///dos/z/16/16/lib/lib_com.cpp +recent_files: file:///dos/z/16/16/lib/lib_com.h 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/16.txt +recent_files: file:///dos/z/16/16/lib/x/MODEX.DEF +recent_files: file:///dos/z/16/16/lib/x/MODEX.H +recent_files: file:///dos/z/16/16/lib/x/MXVS.ASM +recent_files: file:///dos/z/16/16/lib/x/MXPN.ASM +recent_files: file:///dos/z/16/16/x.bat +recent_files: file:///dos/z/16/16/xx.bat snr_replacetype: 0 savedir: file:///dos/z/16/16 spell_check_default: 1 @@ -90,13 +97,6 @@ snr_escape_chars: 0 htmlbar_view: 0 spell_lang: en ssearch_dotmatchall: 0 -searchlist: // Waits for vertical retrace -searchlist: wait -searchlist: ding -searchlist: font -searchlist: wi -searchlist: waiyt -searchlist: ENDP searchlist: mss searchlist: mxset searchlist: mspai @@ -105,6 +105,13 @@ searchlist: mspab searchlist: mpab searchlist: mxpab searchlist: mxpan +searchlist: gets +searchlist: mxset +searchlist: getr +searchlist: getvers +searchlist: GetVers +searchlist: setvir +searchlist: virtual autocomplete: 1 outputb_show_all_output: 0 bookmarks_show_mode: 0 diff --git a/16/dos_gfx.cpp b/16/dos_gfx.cpp index b3bd3155..3fb7b683 100644 --- a/16/dos_gfx.cpp +++ b/16/dos_gfx.cpp @@ -6,20 +6,20 @@ * * Simple graphics library to accompany the article * - * INTRODUCTION TO MODE X. + * INTRODUCTION TO MODE X. * * This library provides the basic functions for initializing and using * unchained (planar) 256-color VGA modes. Currently supported are: * - * - 320x200 - * - 320x240 + * - 320x200 + * - 320x240 * * Functions are provided for: * - * - initializing one of the available modes - * - setting the start address of the VGA refresh data - * - setting active and visible display pages - * - writing and reading a single pixel to/from video memory + * - initializing one of the available modes + * - setting the start address of the VGA refresh data + * - setting active and visible display pages + * - writing and reading a single pixel to/from video memory * * The library is provided as a demonstration only, and is not claimed * to be particularly efficient or suited for any purpose. It has only @@ -76,18 +76,18 @@ byte coor; /* * Define the port addresses of some VGA registers. */ -#define CRTC_ADDR 0x3d4 /* Base port of the CRT Controller (color) */ +#define CRTC_ADDR 0x3d4 /* Base port of the CRT Controller (color) */ -#define SEQU_ADDR 0x3c4 /* Base port of the Sequencer */ -#define GRAC_ADDR 0x3ce /* Base port of the Graphics Controller */ +#define SEQU_ADDR 0x3c4 /* Base port of the Sequencer */ +#define GRAC_ADDR 0x3ce /* Base port of the Graphics Controller */ #define STATUS_ADDR 0x3DA unsigned char *RowsX[600]; unsigned char write_plane, read_plane; unsigned short text_mask[16] = { 0x0002, 0x0102, 0x0202, 0x0302, - 0x0402, 0x0502, 0x0602, 0x0702, - 0x0802, 0x0902, 0x0A02, 0x0B02, - 0x0C02, 0x0D02, 0x0E02, 0x0F02 }; + 0x0402, 0x0502, 0x0602, 0x0702, + 0x0802, 0x0902, 0x0A02, 0x0B02, + 0x0C02, 0x0D02, 0x0E02, 0x0F02 }; /* @@ -112,48 +112,48 @@ unsigned actStart, visStart; /* * set320x200x256_X() - * sets mode 13h, then turns it into an unchained (planar), 4-page - * 320x200x256 mode. + * sets mode 13h, then turns it into an unchained (planar), 4-page + * 320x200x256 mode. */ void set320x200x256_X(void) - { - union REGS r; + { + union REGS r; - /* Set VGA BIOS mode 13h: */ - r.x.ax = 0x0013; - int86(0x10, &r, &r); + /* Set VGA BIOS mode 13h: */ + r.x.ax = 0x0013; + int86(0x10, &r, &r); - /* Turn off the Chain-4 bit (bit 3 at index 4, port 0x3c4): */ - outpw(SEQU_ADDR, 0x0604); + /* Turn off the Chain-4 bit (bit 3 at index 4, port 0x3c4): */ + outpw(SEQU_ADDR, 0x0604); - /* Turn off word mode, by setting the Mode Control register - of the CRT Controller (index 0x17, port 0x3d4): */ - outpw(CRTC_ADDR, 0xE317); + /* Turn off word mode, by setting the Mode Control register + of the CRT Controller (index 0x17, port 0x3d4): */ + outpw(CRTC_ADDR, 0xE317); - /* Turn off doubleword mode, by setting the Underline Location - register (index 0x14, port 0x3d4): */ - outpw(CRTC_ADDR, 0x0014); + /* Turn off doubleword mode, by setting the Underline Location + register (index 0x14, port 0x3d4): */ + outpw(CRTC_ADDR, 0x0014); - /* Clear entire video memory, by selecting all four planes, then - writing 0 to entire segment. */ - outpw(SEQU_ADDR, 0x0F02); - memset(vga+1, 0, 0xffff); /* stupid size_t exactly 1 too small */ - vga[0] = 0; + /* Clear entire video memory, by selecting all four planes, then + writing 0 to entire segment. */ + outpw(SEQU_ADDR, 0x0F02); + memset(vga+1, 0, 0xffff); /* stupid size_t exactly 1 too small */ + vga[0] = 0; - /* Update the global variables to reflect dimensions of this - mode. This is needed by most future drawing operations. */ - width = 320; - height = 200; + /* Update the global variables to reflect dimensions of this + mode. This is needed by most future drawing operations. */ + width = 320; + height = 200; - /* Each byte addresses four pixels, so the width of a scan line - in *bytes* is one fourth of the number of pixels on a line. */ - widthBytes = width / 4; + /* Each byte addresses four pixels, so the width of a scan line + in *bytes* is one fourth of the number of pixels on a line. */ + widthBytes = width / 4; - /* By default we want screen refreshing and drawing operations - to be based at offset 0 in the video segment. */ - actStart = visStart = 0; + /* By default we want screen refreshing and drawing operations + to be based at offset 0 in the video segment. */ + actStart = visStart = 0; - /* + /* -------------------- HORIZONTAL SCROLLING -------------------- @@ -191,16 +191,16 @@ OUT value TO PORT 3C0H (where "value" is the ----------------------------------------------- */ - } + } /* * setActiveStart() tells our graphics operations which address in video * memory should be considered the top left corner. */ void setActiveStart(unsigned offset) - { - actStart = offset; - } + { + actStart = offset; + } /* * setVisibleStart() tells the VGA from which byte to fetch the first @@ -211,13 +211,13 @@ void setActiveStart(unsigned offset) * set, but before the low byte is set, which produces a bad flicker. */ void setVisibleStart(unsigned offset) - { - visStart = offset; - outpw(CRTC_ADDR, 0x0C); /* set high byte */ - outpw(CRTC_ADDR+1, visStart >> 8); - outpw(CRTC_ADDR, 0x0D); /* set low byte */ - outpw(CRTC_ADDR+1, visStart & 0xff); - } + { + visStart = offset; + outpw(CRTC_ADDR, 0x0C); /* set high byte */ + outpw(CRTC_ADDR+1, visStart >> 8); + outpw(CRTC_ADDR, 0x0D); /* set low byte */ + outpw(CRTC_ADDR+1, visStart & 0xff); + } /* * setXXXPage() sets the specified page by multiplying the page number @@ -226,78 +226,79 @@ void setVisibleStart(unsigned offset) * function. The first page is number 0. */ void setActivePage(int page) - { - setActiveStart(page * widthBytes * height); - } + { + setActiveStart(page * widthBytes * height); + } void setVisiblePage(int page) - { - setVisibleStart(page * widthBytes * height); - } + { + setVisibleStart(page * widthBytes * height); + } void putPixel_X(int x, int y, byte color) - { - /* Each address accesses four neighboring pixels, so set - Write Plane Enable according to which pixel we want - to modify. The plane is determined by the two least - significant bits of the x-coordinate: */ - outp(0x3c4, 0x02); - outp(0x3c5, 0x01 << (x & 3)); - - /* The offset of the pixel into the video segment is - offset = (width * y + x) / 4, and write the given - color to the plane we selected above. Heed the active - page start selection. */ - vga[(unsigned)(widthBytes * y) + (x / 4) + actStart] = color; - - } + { + /* Each address accesses four neighboring pixels, so set + Write Plane Enable according to which pixel we want + to modify. The plane is determined by the two least + significant bits of the x-coordinate: */ + outp(0x3c4, 0x02); + outp(0x3c5, 0x01 << (x & 3)); + + /* The offset of the pixel into the video segment is + offset = (width * y + x) / 4, and write the given + color to the plane we selected above. Heed the active + page start selection. */ + vga[(unsigned)(widthBytes * y) + (x / 4) + actStart] = color; + + } byte getPixel_X(int x, int y) - { - /* Select the plane from which we must read the pixel color: */ - outpw(GRAC_ADDR, 0x04); - outpw(GRAC_ADDR+1, x & 3); + { + /* Select the plane from which we must read the pixel color: */ + outpw(GRAC_ADDR, 0x04); + outpw(GRAC_ADDR+1, x & 3); - return vga[(unsigned)(widthBytes * y) + (x / 4) + actStart]; + return vga[(unsigned)(widthBytes * y) + (x / 4) + actStart]; - } + } void set320x240x256_X(void) - { - /* Set the unchained version of mode 13h: */ - set320x200x256_X(); - - /* Modify the vertical sync polarity bits in the Misc. Output - Register to achieve square aspect ratio: */ - outp(0x3C2, 0xE3); - - /* Modify the vertical timing registers to reflect the increased - vertical resolution, and to center the image as good as - possible: */ - outpw(0x3D4, 0x2C11); /* turn off write protect */ - outpw(0x3D4, 0x0D06); /* vertical total */ - outpw(0x3D4, 0x3E07); /* overflow register */ - outpw(0x3D4, 0xEA10); /* vertical retrace start */ - outpw(0x3D4, 0xAC11); /* vertical retrace end AND wr.prot */ - outpw(0x3D4, 0xDF12); /* vertical display enable end */ - outpw(0x3D4, 0xE715); /* start vertical blanking */ - outpw(0x3D4, 0x0616); /* end vertical blanking */ - - /* Update mode info, so future operations are aware of the - resolution */ - height = 240; - -//*$pragma aux mxSetVirtualScreen "MXSETVIRTUALSCREEN" -//mxSetVirtualScreen(480,360); - } + { + /* Set the unchained version of mode 13h: */ + set320x200x256_X(); + + /* Modify the vertical sync polarity bits in the Misc. Output + Register to achieve square aspect ratio: */ + outp(0x3C2, 0xE3); + + /* Modify the vertical timing registers to reflect the increased + vertical resolution, and to center the image as good as + possible: */ + outpw(0x3D4, 0x2C11); /* turn off write protect */ + outpw(0x3D4, 0x0D06); /* vertical total */ + outpw(0x3D4, 0x3E07); /* overflow register */ + outpw(0x3D4, 0xEA10); /* vertical retrace start */ + outpw(0x3D4, 0xAC11); /* vertical retrace end AND wr.prot */ + outpw(0x3D4, 0xDF12); /* vertical display enable end */ + outpw(0x3D4, 0xE715); /* start vertical blanking */ + outpw(0x3D4, 0x0616); /* end vertical blanking */ + + /* Update mode info, so future operations are aware of the + resolution */ + height = 240; + +//#pragma aux mxSetVirtualScreen "_" +//void mxSetVirtualScreen(unsigned short int width, unsigned short int height); +mxSetVirtualScreen(480,360); + } /*-----------XXXX-------------*/ ///////////////////////////////////////////////////////////////////////////// -// // -// WaitRetrace() - This waits until you are in a Verticle Retrace. // -// // +// // +// WaitRetrace() - This waits until you are in a Verticle Retrace. // +// // ///////////////////////////////////////////////////////////////////////////// void wait_for_retrace(void) { @@ -305,17 +306,17 @@ void wait_for_retrace(void) } ///////////////////////////////////////////////////////////////////////////// -// // -// MoveTo() - This moves to position X*4 on a chain 4 screen. // -// Note: As soon as I find documentation, this function // -// will be better documented. - Snowman // -// // +// // +// MoveTo() - This moves to position X*4 on a chain 4 screen. // +// Note: As soon as I find documentation, this function // +// will be better documented. - Snowman // +// // ///////////////////////////////////////////////////////////////////////////// /* void MoveTo (word X, word Y) { -// word O = Y*SIZE*2+X; - word O = Y*widthBytes*2+X; +// word O = Y*SIZE*2+X; + word O = Y*widthBytes*2+X; asm { mov bx, [O] @@ -331,69 +332,6 @@ void MoveTo (word X, word Y) { out dx, ax } -;----------------------------------------------------------- -; -; MXPN.ASM - Panning function -; Copyright (c) 1993,1994 by Alessandro Scotti -; -;----------------------------------------------------------- -;WARN PRO -#pragma aux mxPan = \ -"INCLUDE MODEX.DEF" \ - - - -"EXTRN mxWaitDisplay : FAR" \ -"EXTRN mxStartAddress : FAR" \ - -"MX_TEXT SEGMENT USE16 PARA PUBLIC 'CODE' - ASSUME cs:MX_TEXT, ds:NOTHING, es:NOTHING" \ - -"EXTRN mx_BytesPerLine : WORD" \ - -//;----------------------------------------------------------- -//; -//; Moves the screen. -//; -//; Input: -//; X, Y = new X, Y coordinates of view screen -//; Output: -//; none -//; -mxPan PROC FAR - ARG Y:WORD, \ - X:WORD = ARG_SIZE - ASSUME ds:NOTHING - .enter 0 - - mov ax, [Y] - mul [mx_BytesPerLine] - mov dx, [X] - shr dx, 1 - shr dx, 1 - add ax, dx - push ax ; Push the start address - call mxWaitDisplay - call mxStartAddress - - mov dx, 03DAh ; Set the pixel pan register - in al, dx - mov dx, 03C0h - mov al, 33h - out dx, al - mov al, BYTE PTR [X] - and al, 3 - shl al, 1 - out dx, al - - xor ax, ax - .leave ARG_SIZE -mxPan ENDP - -MX_TEXT ENDS -END - - } //Procedure Play; @@ -409,14 +347,14 @@ void Play() // for(loop1=0;loop1<=3;loop1++) // for(loop2=0;loop2<=5;loop2++) -// Putpic (loop1*160,loop2*66); // { This places the picture all over the - // chain-4 screen } +// Putpic (loop1*160,loop2*66); // { This places the picture all over the + // chain-4 screen } // getch(); // ch=0x0; // xpos=rand (78)+1; // ypos=rand (198)+1; // { Random start positions for the view } - xpos=0; - ypos=0; + xpos=0; + ypos=0; xdir=1; ydir=1; // while(1) @@ -427,61 +365,61 @@ void Play() ypos=ypos+ydir; if( (xpos>79) || (xpos<1))xdir=-xdir; if( (ypos>199) || (ypos<1))ydir=-ydir; // { Hit a boundry, change - // direction! } + // direction! } // if(_bios_keybrd(_KEYBRD_READY))ch=getch(); -// if(ch==0x71)break; // 'q' -// if(ch==0x1b)break; // 'ESC' +// if(ch==0x71)break; // 'q' +// if(ch==0x1b)break; // 'ESC' // } } */ /*tile*/ //king_crimson's code void putColorBox_X(int x, int y, int w, int h, byte color) { - outp(0x3c4, 0x02); - - int curx, cury; - unsigned drawptr; - for (curx=x; curx<(x+w); curx++) { - outp(0x3c5, 0x01 << (curx & 3)); - drawptr = (unsigned)(widthBytes * y) + (curx / 4) + actStart; - for (cury=0; cury0) - boingy=1; - - for(int ti=0;ti0) + boingy=1; + + for(int ti=0;ti> 2); - outp(0x3D4, Cols); - //setVisibleStart(visStart + (Cols * height)); - setVisibleStart(visStart + (Cols * width)); + wait_for_retrace(); + outp(0x3C0, 0x13); + outp(0x3C0, Cols & 3); + outp(0x3D4, 0x13); + outp(0x3D5, Cols >> 2); + outp(0x3D4, Cols); + //setVisibleStart(visStart + (Cols * height)); + setVisibleStart(visStart + (Cols * width)); } /*To implement smooth horizontal scrolling, you would do the following: @@ -525,29 +463,29 @@ so we can draw off the edge of the screen. Perhaps a little diagram will clarify it. The following picture is of a standard X-mode addressing scheme with the OFFSET register set to 80. - ROW OFFSET - 0 0 ======================== - 1 80 [ ] - 2 160 [ ] - .. .. [ VISIBLE ] - [ SCREEN ] - [ ] - [ ] - .. .. [ ] - 199 15920 ======================== + ROW OFFSET + 0 0 ======================== + 1 80 [ ] + 2 160 [ ] + .. .. [ VISIBLE ] + [ SCREEN ] + [ ] + [ ] + .. .. [ ] + 199 15920 ======================== and the next diagram is of a modified addressing scheme with the OFFSET register set to 82 (to give us 4 extra pixels on each side of the screen) ROW OFFSET -0 0 ------========================------ -1 82 | V [ ] V | -2 164 | I [ ] I | -.. .. | N S [ VISIBLE ] N S | - | O I [ SCREEN ] O I | - | T B [ ] T B | - | L [ ] L | -.. .. | E [ ] E | +0 0 ------========================------ +1 82 | V [ ] V | +2 164 | I [ ] I | +.. .. | N S [ VISIBLE ] N S | + | O I [ SCREEN ] O I | + | T B [ ] T B | + | L [ ] L | +.. .. | E [ ] E | 199 16318 ------========================------ Beautiful!!! @@ -581,297 +519,297 @@ I'm sorry about this being so confusing but it's a bit difficult to explain. */ int loadfontX(char *fname) { - FILE *fp; + FILE *fp; - fp = fopen(fname, "rb"); + fp = fopen(fname, "rb"); - if (fp == NULL) { - return 0; - } else { - fread(Xfont, 8, 256, fp); - fclose(fp); - return 1; - } + if (fp == NULL) { + return 0; + } else { + fread(Xfont, 8, 256, fp); + fclose(fp); + return 1; + } } void putchX(cord x, cord y, char c, byte color) { - int i; - byte *vga_ptr; - byte *font_ptr; - byte temp; - - // 8x8 font - vga_ptr = RowsX[y << 3] + (x << 1) + actStart; - write_plane = -1; - - font_ptr = Xfont + (c << 3); - - i=8; - while (i--) { - temp = *font_ptr++; - outpw(SEQU_ADDR, text_mask[temp & 0x0F]); - *vga_ptr++ = color; - - outpw(SEQU_ADDR, text_mask[temp >> 4]); - *vga_ptr-- = color; - vga_ptr += widthBytes; - } + int i; + byte *vga_ptr; + byte *font_ptr; + byte temp; + + // 8x8 font + vga_ptr = RowsX[y << 3] + (x << 1) + actStart; + write_plane = -1; + + font_ptr = Xfont + (c << 3); + + i=8; + while (i--) { + temp = *font_ptr++; + outpw(SEQU_ADDR, text_mask[temp & 0x0F]); + *vga_ptr++ = color; + + outpw(SEQU_ADDR, text_mask[temp >> 4]); + *vga_ptr-- = color; + vga_ptr += widthBytes; + } } void putstringX(cord x, cord y, char *str, byte color) { - int i, skip; - byte *vga_ptr; - byte *font_ptr; - byte c, temp; + int i, skip; + byte *vga_ptr; + byte *font_ptr; + byte c, temp; - // 8x8 font - vga_ptr = RowsX[y << 3] + (x << 1) + actStart; - write_plane = -1; + // 8x8 font + vga_ptr = RowsX[y << 3] + (x << 1) + actStart; + write_plane = -1; - skip = 2 - (widthBytes << 3); + skip = 2 - (widthBytes << 3); - while (c = *str++) { - font_ptr = Xfont + (c << 3); + while (c = *str++) { + font_ptr = Xfont + (c << 3); - i=8; - while (i--) { - temp = *font_ptr++; - outpw(SEQU_ADDR, text_mask[temp & 0x0F]); - *vga_ptr++ = color; + i=8; + while (i--) { + temp = *font_ptr++; + outpw(SEQU_ADDR, text_mask[temp & 0x0F]); + *vga_ptr++ = color; - outpw(SEQU_ADDR, text_mask[temp >> 4]); - *vga_ptr-- = color; - vga_ptr += widthBytes; - } + outpw(SEQU_ADDR, text_mask[temp >> 4]); + *vga_ptr-- = color; + vga_ptr += widthBytes; + } - vga_ptr += skip; - } + vga_ptr += skip; + } } ///////////////////////////////////////////////////////////////////////////// -// // -// setvideo() - This function Manages the video modes // -// // +// // +// setvideo() - This function Manages the video modes // +// // ///////////////////////////////////////////////////////////////////////////// void setvideo(/*byte mode, */int vq){ - union REGS in, out; - - if(!vq){ // deinit the video - // change to the video mode we were in before we switched to mode 13h - in.h.ah = 0x00; - in.h.al = old_mode; - int86(0x10, &in, &out); - - }else if(vq == 1){ // init the video - // get old video mode - in.h.ah = 0xf; - int86(0x10, &in, &out); - old_mode = out.h.al; - - // enter mode - set320x240x256_X(); - } + union REGS in, out; + + if(!vq){ // deinit the video + // change to the video mode we were in before we switched to mode 13h + in.h.ah = 0x00; + in.h.al = old_mode; + int86(0x10, &in, &out); + + }else if(vq == 1){ // init the video + // get old video mode + in.h.ah = 0xf; + int86(0x10, &in, &out); + old_mode = out.h.al; + + // enter mode + set320x240x256_X(); + } } ///////////////////////////////////////////////////////////////////////////// -// // +// // // cls() - This clears the screen to the specified color, on the VGA or on // -// the Virtual screen. // -// // +// the Virtual screen. // +// // ///////////////////////////////////////////////////////////////////////////// void cls(byte color, byte *Where){ - _fmemset(Where, color, width*(height*17)); + _fmemset(Where, color, width*(height*17)); } //color ‚Ä‚·‚Æ int colortest(){ - if(gq < NUM_COLORS){ - cls(gq, vga); - gq++; - }else gq = 0; - return gq; + if(gq < NUM_COLORS){ + cls(gq, vga); + gq++; + }else gq = 0; + return gq; } //color ‚Ä‚·‚Æ int colorz(){ - if(gq < HGQ){ -//---- cls(gq, vaddr); - cls(gq, vga); - gq++; - }else gq = LGQ; - return gq; + if(gq < HGQ){ +//---- cls(gq, vaddr); + cls(gq, vga); + gq++; + }else gq = LGQ; + return gq; } //slow spectrum down void ssd(int svq){ - if(sy < height+1){ - if(sx < width+1){ - //plotpixel(xx, yy, coor, vga); - //ppf(sx, sy, coor, vga); - putPixel_X(sx, sy, coor); - //printf("%d %d %d %d\n", sx, sy, svq, coor); - sx++; - }else sx = 0; - if(sx == width){ - sy++; - if(svq == 7) coor++; - if(sy == height && svq == 8) coor = rand()%NUM_COLORS; - } - }else sy = 0; + if(sy < height+1){ + if(sx < width+1){ + //plotpixel(xx, yy, coor, vga); + //ppf(sx, sy, coor, vga); + putPixel_X(sx, sy, coor); + //printf("%d %d %d %d\n", sx, sy, svq, coor); + sx++; + }else sx = 0; + if(sx == width){ + sy++; + if(svq == 7) coor++; + if(sy == height && svq == 8) coor = rand()%NUM_COLORS; + } + }else sy = 0; } /*-----------ding-------------*/ int ding(int q){ -// if(yy0){ - yy++; - d3y--; - } - } - if(bakax<0){ - xx--; - }else - if(bakax>0){ - xx++; - } - }else{ - if(q==16) - { - if(!bakax){ - xx--;//=TILEWH; - }else if(bakax>0){ - xx++;//=TILEWH; - } - if(!bakay){ - yy--;//=TILEWH; - }else if(bakay>0){ - yy++;//=TILEWH; - } - }else{ - if(!bakax){ -// xx-=TILEWH; - xx--; - }else if(bakax>1){ -// xx+=TILEWH; - xx++; - } - if(!bakay){ -// yy-=TILEWH; - yy--; - }else if(bakay>1){ -// yy+=TILEWH; - yy++; - } - } - } - // fixer -// if(q!=16){ + if((q == 2 + ||q==4 + ||q==16 + ) && gq == BONK){ + if(coor < HGQ && coor < LGQ) coor = LGQ; + if(coor < HGQ-1){ + coor++; + }else{ coor = LGQ; + bakax = rand()%3; bakay = rand()%3; + } + } + + if(q==8){ colorz(); return gq; }else + if(q==10){ ssd(q); /*printf("%d\n", coor);*/ }else + if(q==5){ colortest(); return gq; }else + if(q==11){ colorz(); delay(100); return gq; } + if(q==6){ + coor = rand()%NUM_COLORS; +//---- cls(coor, vaddr); + cls(coor, vga); + //updatevbuff(); + } + + if(q==7||q==9){ + if(gq < HGQ){ + if(q == 7) ssd(q); + if(q == 9){ ssd(q); coor++; } + gq++; + }else gq = LGQ; + } + if((q<5 && gq0){ + yy++; + d3y--; + } + } + if(bakax<0){ + xx--; + }else + if(bakax>0){ + xx++; + } + }else{ + if(q==16) + { + if(!bakax){ + xx--;//=TILEWH; + }else if(bakax>0){ + xx++;//=TILEWH; + } + if(!bakay){ + yy--;//=TILEWH; + }else if(bakay>0){ + yy++;//=TILEWH; + } + }else{ + if(!bakax){ +// xx-=TILEWH; + xx--; + }else if(bakax>1){ +// xx+=TILEWH; + xx++; + } + if(!bakay){ +// yy-=TILEWH; + yy--; + }else if(bakay>1){ +// yy+=TILEWH; + yy++; + } + } + } + // fixer +// if(q!=16){ //if(q!=16) -// if(xx<(0/*-(TILEWH/2)*/)) xx=(width/*+(TILEWH)*/); - if(yy<0) yy=(height*3); -// if(xx>(width/*+(TILEWH)*/)) xx=(0/*-(TILEWH/2)*/); - if(yy>(height*3)) yy=0; -// } +// if(xx<(0/*-(TILEWH/2)*/)) xx=(width/*+(TILEWH)*/); + if(yy<0) yy=(height*3); +// if(xx>(width/*+(TILEWH)*/)) xx=(0/*-(TILEWH/2)*/); + if(yy>(height*3)) yy=0; +// } //interesting effects - if(q==16) - { - int tx=0,ty=0; - tx+=xx+16; - ty+=yy+16; - putPixel_X(tx, ty, coor); - //drawrect(tx, ty, tx+TILEWH, ty+TILEWH, coor); - //printf("%d %d %d %d %d %d\n", xx, yy, tx, ty, TILEWH); - - // plot the pixel -//---- ppf(xx, yy, coor, vga); - }else /*if(xx>=0 && xx=0 && yy<(height*3))*/{ -// putColorBox_X(xx, yy, TILEWH, TILEWH, coor); + if(q==16) + { + int tx=0,ty=0; + tx+=xx+16; + ty+=yy+16; + putPixel_X(tx, ty, coor); + //drawrect(tx, ty, tx+TILEWH, ty+TILEWH, coor); + //printf("%d %d %d %d %d %d\n", xx, yy, tx, ty, TILEWH); + + // plot the pixel +//---- ppf(xx, yy, coor, vga); + }else /*if(xx>=0 && xx=0 && yy<(height*3))*/{ +// putColorBox_X(xx, yy, TILEWH, TILEWH, coor); //++++0000 - putPixel_X(xx, yy, coor); - } + putPixel_X(xx, yy, coor); + } -//---- if(q==2) ppf(rand()%, rand()%height, 0, vga); -// if(q==2) putColorBox_X(rand()%width, rand()%(height*3), TILEWH, TILEWH, 0); +//---- if(q==2) ppf(rand()%, rand()%height, 0, vga); +// if(q==2) putColorBox_X(rand()%width, rand()%(height*3), TILEWH, TILEWH, 0); //++++0000 - if(q==2) putPixel_X(rand()%width, rand()%(height*3), 0); - if(q==16) putPixel_X(rand()%width, rand()%(height*3), 0); - if(q==2||q==4||q==16){ bakax = rand()%3; bakay = rand()%3; } - gq++; + if(q==2) putPixel_X(rand()%width, rand()%(height*3), 0); + if(q==16) putPixel_X(rand()%width, rand()%(height*3), 0); + if(q==2||q==4||q==16){ bakax = rand()%3; bakay = rand()%3; } + gq++; //if(xx<0||xx>320||yy<0||yy>(height*3)) -// printf("%d %d %d %d %d %d\n", xx, yy, coor, bakax, bakay, getPixel_X(xx,yy)); -// printf("%d\n", getPixel_X(xx,yy)); +// printf("%d %d %d %d %d %d\n", xx, yy, coor, bakax, bakay, getPixel_X(xx,yy)); +// printf("%d\n", getPixel_X(xx,yy)); //0000 -// drawText(0, 0, 15, getPixel_X(xx,yy)); - }else gq = LGQ; - return gq; +// drawText(0, 0, 15, getPixel_X(xx,yy)); + }else gq = LGQ; + return gq; } @@ -886,125 +824,124 @@ int ding(int q){ #include void doTest(void) - { - int p, x, y, pages; - - /* This is the way to calculate the number of pages available. */ - pages = 65536L/(widthBytes*height); // apparently this takes the A000 address -// if(height==240) pages++; - -// printf("%d\n", pages); - - for (p = 0; p <= pages; ++p) - { - setActivePage(p); - - /* On each page draw a single colored border, and dump the palette - onto a small square about the middle of the page. */ - - //{ - for (x = 0; x <= width; ++x) - { - putPixel_X(x, 0, p+1); - if(p!=pages) putPixel_X(x, height-1, p+1); - else if(height==240) putPixel_X(x, 99-1, p+1); - } - - for (y = 0; y <= height; ++y) - { - putPixel_X(0, y, p+1); - if(p!=pages) putPixel_X(width-1, y, p+1); - else if(height==240) putPixel_X(width-1, y, p+1); - } - - for (x = 0; x < TILEWH; ++x) - for (y = 0; y < TILEWH; ++y) - putPixel_X(x+(p+2)*16, y+(p+2)*TILEWH, x + y*TILEWH); - //} - - } - - /* Each pages will now contain a different image. Let the user cycle - through all the pages by pressing a key. */ - for (p = 0; p < pages; ++p) - { - setVisiblePage(p); - getch(); - } - - } + { + int p, x, y, pages; + + /* This is the way to calculate the number of pages available. */ + pages = 65536L/(widthBytes*height); // apparently this takes the A000 address +// if(height==240) pages++; + +// printf("%d\n", pages); + + for (p = 0; p <= pages; ++p) + { + setActivePage(p); + + /* On each page draw a single colored border, and dump the palette + onto a small square about the middle of the page. */ + + //{ + for (x = 0; x <= width; ++x) + { + putPixel_X(x, 0, p+1); + if(p!=pages) putPixel_X(x, height-1, p+1); + else if(height==240) putPixel_X(x, 99-1, p+1); + } + + for (y = 0; y <= height; ++y) + { + putPixel_X(0, y, p+1); + if(p!=pages) putPixel_X(width-1, y, p+1); + else if(height==240) putPixel_X(width-1, y, p+1); + } + + for (x = 0; x < TILEWH; ++x) + for (y = 0; y < TILEWH; ++y) + putPixel_X(x+(p+2)*16, y+(p+2)*TILEWH, x + y*TILEWH); + //} + + } + + /* Each pages will now contain a different image. Let the user cycle + through all the pages by pressing a key. */ + for (p = 0; p < pages; ++p) + { + setVisiblePage(p); + getch(); + } + + } /* * Library test (program) entry point. */ int main(void) - { - int key,d; - //short int temp; - // main variables - d=1; // switch variable - key=4; // default screensaver number -// puts("First, have a look at the 320x200 mode. I will draw some rubbish"); -// puts("on all of the four pages, then let you cycle through them by"); -// puts("hitting a key on each page."); -// puts("Press a key when ready..."); -// getch(); - -// doTest(); - -// puts("Then, check out Mode X, 320x240 with 3 (and a half) pages."); -// puts("Press a key when ready..."); -// getch(); + { + int key,d; + //short int temp; + // main variables + d=1; // switch variable + key=4; // default screensaver number +// puts("First, have a look at the 320x200 mode. I will draw some rubbish"); +// puts("on all of the four pages, then let you cycle through them by"); +// puts("hitting a key on each page."); +// puts("Press a key when ready..."); +// getch(); + +// doTest(); + +// puts("Then, check out Mode X, 320x240 with 3 (and a half) pages."); +// puts("Press a key when ready..."); +// getch(); //++++0000 - setvideo(1); - /*temp = loadfontX("vga8x8.fnt"); + setvideo(1); + /*temp = loadfontX("vga8x8.fnt"); - if (temp) { - putstringX(0, 0, "bakapi!", 2); - } - getch();*/ + if (temp) { + putstringX(0, 0, "bakapi!", 2); + } + getch();*/ // screen savers /*while(d!=0){ // on! - if(!kbhit()){ // conditions of screen saver - ding(key); - }else{ - setvideo(0); - // user imput switch - printf("Enter 1, 2, 3, 4, or 6 to run a screensaver, or enter 5 to quit.\n", getch()); // prompt the user - scanf("%d", &key); - //if(key==3){xx=yy=0;} // crazy screen saver wwww - if(key==5) d=0; - setvideo(1); - } - }*/ // else off - while(!kbhit()){ // conditions of screen saver - ding(4); - } - //end of screen savers - doTest(); -// getch(); - - while(!kbhit()){ // conditions of screen saver - hScroll(1); -// scrolly(1); -// vScroll(1); -// delay(100); -// Play(); - } + if(!kbhit()){ // conditions of screen saver + ding(key); + }else{ + setvideo(0); + // user imput switch + printf("Enter 1, 2, 3, 4, or 6 to run a screensaver, or enter 5 to quit.\n", getch()); // prompt the user + scanf("%d", &key); + //if(key==3){xx=yy=0;} // crazy screen saver wwww + if(key==5) d=0; + setvideo(1); + } + }*/ // else off + while(!kbhit()){ // conditions of screen saver + ding(4); + } + //end of screen savers + doTest(); +// getch(); + + while(!kbhit()){ // conditions of screen saver + hScroll(1); +// scrolly(1); +// vScroll(1); +// delay(100); +// Play(); + } //++++0000 - setvideo(0); - printf("Resolution:\n[%d][%d]\n", width,height); -// setvideo(0); + setvideo(0); + printf("Resolution:\n[%d][%d]\n", width,height); +// setvideo(0); //mxTerm(); -//mxGetVersion(); - - printf("[%d]\n", mxGetVersion()); - puts("where to next? It's your move! wwww"); - printf("bakapi ver. 1.04.09.03\nis made by sparky4i†ƒÖ…j feel free to use it ^^\nLicence: GPL v2\n"); - return 0; - } + +// printf("[%d]\n", mxGetVersion()); + puts("where to next? It's your move! wwww"); + printf("bakapi ver. 1.04.09.03\nis made by sparky4i†ƒÖ…j feel free to use it ^^\nLicence: GPL v2\n"); + return 0; + } #endif diff --git a/16/error.png b/16/error.png new file mode 100644 index 0000000000000000000000000000000000000000..8e923f6a19ab704668a48fadbfd68119e106e662 GIT binary patch literal 74343 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 literal 0 HcmV?d00001 diff --git a/16/lib/x/MAKEFILE b/16/lib/x/MAKEFILE index a84d9a4b..19175b7a 100644 --- a/16/lib/x/MAKEFILE +++ b/16/lib/x/MAKEFILE @@ -27,7 +27,7 @@ LIBOBJS = MXBB.OBJ \ MXPI.OBJ \ MXPN.OBJ \ MXPP.OBJ \ - MXPT.OBJ \ + MXPT.OBJ \ MXRA.OBJ \ MXRP.OBJ \ MXSA.OBJ \ diff --git a/16/lib/x/MODEX.BAK b/16/lib/x/MODEX.BAK index 5916999f9f258f265688f80c028c4fe85d1dd82b..0069d2e6cabd41c7fdba764cdfe2a5f913c339f1 100644 GIT binary patch literal 3072 zcmeH}&1w`u6opSTF)fmOGv3$l>wQo-KLH#3LBsZ+P;`Y{HK0N3E3ccU2T9JSk9E!}y1 zVgC6xXusmKQM|Yq1ilV@|6us_6@3(0{Z6HiB1xZE{llP7BzwP+?3a?xi{kmAkVl#y#r-S`wcs!HQ}X*Iy;=Xx&rh|(`dggfJtE-C_SxkzP8%uCdriFA1J?0z*W3Yy>>YpxcnOB1j7D+Y ze6yU>7|gxEa@?i~40%>m!wtuYq6S7i_h|*U93Nz~j@ypYf;M3;Bi1L&sEIqCyR?OI z$Gw8KG2vLXX$O;@W7@@C&s}XQ_|I?4zc%X4?*R)$p(F2;NhU+Id#I}JwoY{SjXb^S+EGIO~ zS4P80MAH~{zb7fx?QPO(k`684rel@R6VyDXw1+9jd5coaI@T@fVa{_zIp#g5bchAd e9XiI6XH6$qcHGx=iWSFYht9BO`2X`K4g3NWB*Iz% literal 5632 zcmeI0ONbm*6o&tvbWbLUI>wHZOp?juBr{PQ5EI1UB4AH-x~8DI`%<^2D=cUwZkb@h=TFm^_%=E|q z-*e8by1(2E+y+dczAkLX%<$Ce>fJp%yl-;`c&+Vj@xo!C9gX`Zx4GNX`N>mxyWh)u zozw2;bU)6<>*o4PTd@XgnQC=6JGk)2xb=GVNvGYKeYuV4Kc_Y}+rY)vm8VPMVN-uG%=>Ub-GmvUYz@V-;?GRIpEyo~cQf%mnR zH}LgxtlB#vz7blk)sf%d_5J*dHwSXC;5?{lWU@m(cH)KfhS% z`9Kl)hB^Uq76|15uAveNUCy8o=N&#)g^ zUY}N~PxXFet?R#CAy3Qt&sw4X-qq%r`}GTX=6wBfY5mlBPQ1UJjlT)^H^56XZTz7r`JkH=rM8Jzj&%L^Vvx^BH9k1Yt6TmW_IbNOtb=;v3wR{An zj#8S#mh#T&j22Ly={P-Dr6qJ~ZD=kskH6UTi9Fch~C4#S|@Y~`)fUwHZOp?juBr{PQ5EI1UB4AH-x~8DI`%<^2D=cUwZkb@h=TFm^_%=E|q z-*e8by1(2E+y+dczAkLX%<$Ce>fJp%yl-;`c&+Vj@xo!C9gX`Zx4GNX`N>mxyWh)u zozw2;bU)6<>*o4PTd@XgnQC=6JGk)2xb=GVNvGYKeYuV4Kc_Y}+rY)vm8VPMVN-uG%=>Ub-GmvUYz@V-;?GRIpEyo~cQf%mnR zH}LgxtlB#vz7blk)sf%d_5J*dHwSXC;5?{lWU@m(cH)KfhS% z`9Kl)hB^Uq76|15uAveNUCy8o=N&#)g^ zUY}N~PxXFet?R#CAy3Qt&sw4X-qq%r`}GTX=6wBfY5mlBPQ1UJjlT)^H^56XZTz7r`JkH=rM8Jzj&%L^Vvx^BH9k1Yt6TmW_IbNOtb=;v3wR{An zj#8S#mh#T&j22Ly={P-Dr6qJ~ZD=kskH6UTi9Fch~C4#S|@Y~`)fUwUYA)|wZfngEj#V#Pb1OR_U2mt^9 literal 31 lcmZqRX5jSocX5r-a}4%Bvo(ZRyNu!!+u7m!^70BQXP0RR91 literal 98 zcmZqRV&L$NaB|Xf4E8mfrp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?lu_h+y( tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BQ&a0RR91 literal 98 zcmZqRV&L$NaCX*n4E8mdrp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?lucW1CO tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BRfu0RR91 literal 98 zcmZqRV&L$NaCX;o4E8mcrp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?luH)pUj tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BSV{0RR91 literal 98 zcmZqRV&L$NaQ4x24EEKYrp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?luS7xv? tcrY+9GcgKxurf6K^JiQN5n*Lv#>Bvo(ZRyNu!!+u7m!^70BTbQ0RR91 literal 98 zcmZqRV&L$Na1PRQ4E9x>rp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?lu=Vq`o tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BS)80RR91 literal 98 zcmZqRV&L$NaP`r14EEKWrp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?lumu9dt tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BRKn0RR91 literal 98 zcmZqRV&L$NaC6dg4E8merp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?luw`Z_3 tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BTzY0RR91 literal 98 zcmZqRV&L$Na0}3L4E9x-rp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?luXJ@c8 tcrY+9GcgKxurf6K^JiQN5n*Lvo4E8mc#>Bvo(ZRyNu!!+u7m!^70BRry0RR91 literal 98 zcmZqRV&L$NaCg>o4E8mcrp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?luH)pUj tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BSx50RR91 literal 98 zcmZqRV&L$NaQD=64EEKUrp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?lumuIju tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BTYP0RR91 literal 98 zcmZqRV&L$NaQD@74E9xBvo(ZRyNu!!+u7m!^70BT_e0RR91 literal 98 zcmZqRV&L$Na1YRP4E9x?rp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?luXJ)W7 tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BU~+0RR91 literal 98 zcmZqRV&L$Na1YaS4EB|srp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?lu$7ZlI tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BTbQ0RR91 literal 98 zcmZqRV&L$N@bJ-d4E9xBvo(ZRyNu!!+u7m!^70BV5;0RR91 literal 98 zcmZqRV&L$N@C?y&4EB|srp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?lu$7ZlI tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BUOo0RR91 literal 98 zcmZqRV&L$N@bS@e4E9x;rp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?lur)RJ; tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BUsy0RR91 literal 98 zcmZqRV&L$N@bS}g4E9x+rp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?luCuguT tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BWTN0RR91 literal 98 zcmZqRV&L$N@DI^*4E7bDrp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?lu2WGG{ tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BTVO0RR91 literal 98 zcmZqRV&L$N2yoJK4EEKSrp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?lu7iX|D tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BU6i0RR91 literal 98 zcmZqRV&L$N2yoML4E9x-rp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?luXJ@c8 tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BULn0RR91 literal 98 zcmZqRV&L$N2yoYP4E9x?rp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?luXJ)W7 tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BUpx0RR91 literal 98 zcmZqRV&L$N2=LT%4E9x=rp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?lur)ID- tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BVf~0RR91 literal 98 zcmZqRV&L$N2=LQ$4EB|orp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?luM`y4z tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BV;90RR91 literal 98 zcmZqRV&L$N2nf(~4EB|prp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?luhi9-e tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BWlT0RR91 literal 98 zcmZqRV&L$N2nf-04E7b9rp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?lu`)9B- tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BTqV0RR91 literal 98 zcmZqRV&L$N2y)bO4E9x@rp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?lu7iO?C tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BWNL0RR91 literal 98 zcmZqRV&L$N2nx`14EB|nrp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?lu2WPM| tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BT+b0RR91 literal 98 zcmZqRV&L$N2zJzS4E9xBvo(ZRyNu!!+u7m!^70BUFl0RR91 literal 98 zcmZqRV&L$N2zJ(U4E9x-rp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?luXJ@c8 tcrY+9GcgKxurf6K^JiQN5n*Lv%-4EB|q#>Bvo(ZRyNu!!+u7m!^70BVK@0RR91 literal 98 zcmZqRV&L$N2=>%-4EB|qrp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?lu$7irJ tcrY+9GcgKxurf6K^JiQN5n*Lvu)4EB|t#>Bvo(ZRyNu!!+u7m!^70BV&70RR91 literal 98 zcmZqRV&L$N2=>u)4EB|trp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?luM`o}y tcrY+9GcgKxurf6K^JiQN5n*Lv);4EB|p#>Bvo(ZRyNu!!+u7m!^70BV{C0RR91 literal 98 zcmZqRV&L$N2=>);4EB|prp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?luhi9-e tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BWfR0RR91 literal 98 zcmZqRV&L$N2oBJ54E7bDrp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?lu2WGG{ tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BX1g0RR91 literal 98 zcmZqRV&L$N2oBbB4E7b7rp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?luduOmS tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BV~D0RR91 literal 98 zcmZqRV&L$N2=UQ#4EB|prp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?luhi9-e tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BXty0RR91 literal 98 zcmZqRV&L$N2n*J84E7bArp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?luyJoO6 tcrY+9GcgKxurf6K^JiQN5n*Lv5>jhn{Az>v|w!oaYI@nRQ{T>=1vr3e84 literal 0 HcmV?d00001 diff --git a/16/lib/x/MXWD.OBJ b/16/lib/x/MXWD.OBJ index 7b5e65fd1b5bf53255cf346000c6c8801586f761..71c326922b4333977f938eb25e8f902e0f536da3 100644 GIT binary patch literal 30 kcmZqRV&L$N2zSwQ4EB|u#>Bvo(ZRyNu!!+u7m!^70BVH?0RR91 literal 98 zcmZqRV&L$N2zSwQ4EB|urp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?luCuXoS tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BW)a0RR91 literal 98 zcmZqRV&L$N2=~=<4E7b9rp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?lu`)9B- tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BXSp0RR91 literal 98 zcmZqRV&L$N2oKP64E7bCrp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?luduFgR tcrY+9GcgKxurf6K^JiQN5n*LvBvo(ZRyNu!!+u7m!^70BXwz0RR91 literal 98 zcmZqRV&L$N2oKV84E7bArp&;=;_UC@$_WyR4{?nMVR3N`ab%4Lk!&vRLH?luyJoO6 tcrY+9GcgKxurf6K^JiQN5n*LvwHZOp?juBr{PQ5EI1UB4AH-x~8DI`%<^2D=cUwZkb@h=TFm^_%=E|q z-*e8by1(2E+y+dczAkLX%<$Ce>fJp%yl-;`c&+Vj@xo!C9gX`Zx4GNX`N>mxyWh)u zozw2;bU)6<>*o4PTd@XgnQC=6JGk)2xb=GVNvGYKeYuV4Kc_Y}+rY)vm8VPMVN-uG%=>Ub-GmvUYz@V-;?GRIpEyo~cQf%mnR zH}LgxtlB#vz7blk)sf%d_5J*dHwSXC;5?{lWU@m(cH)KfhS% z`9Kl)hB^Uq76|15uAveNUCy8o=N&#)g^ zUY}N~PxXFet?R#CAy3Qt&sw4X-qq%r`}GTX=6wBfY5mlBPQ1UJjlT)^H^56XZTz7r`JkH=rM8Jzj&%L^Vvx^BH9k1Yt6TmW_IbNOtb=;v3wR{An zj#8S#mh#T&j22Ly={P-Dr6qJ~ZD=kskH6UTi9Fch~C4#S|@Y~`)fUfmOGv3$l>wQo-KLH#3LBsZ+P;`Y{HK0N3E3ccU2T9JSk9E!}y1 zVgC6xXusmKQM|Yq1ilV@|6us_6@3(0{Z6HiB1xZE{llP7BzwP+?3a?xi{kmAkVl#y#r-S`wcs!HQ}X*Iy;=Xx&rh|(`dggfJtE-C_SxkzP8%uCdriFA1J?0z*W3Yy>>YpxcnOB1j7D+Y ze6yU>7|gxEa@?i~40%>m!wtuYq6S7i_h|*U93Nz~j@ypYf;M3;Bi1L&sEIqCyR?OI z$Gw8KG2vLXX$O;@W7@@C&s}XQ_|I?4zc%X4?*R)$p(F2;NhU+Id#I}JwoY{SjXb^S+EGIO~ zS4P80MAH~{zb7fx?QPO(k`684rel@R6VyDXw1+9jd5coaI@T@fVa{_zIp#g5bchAd e9XiI6XH6$qcHGx=iWSFYht9BO`2X`K4g3NWB*Iz% literal 0 HcmV?d00001 diff --git a/16/lib/x/modex.lb1 b/16/lib/x/modex.lb1 new file mode 100644 index 00000000..0084fdfa --- /dev/null +++ b/16/lib/x/modex.lb1 @@ -0,0 +1,40 @@ ++'MXBB.obj' ++'MXCC.obj' ++'MXCG.obj' ++'MXCL.obj' ++'MXCR.obj' ++'MXEL.obj' ++'MXFB.obj' ++'MXFP.obj' ++'MXGC.obj' ++'MXGI.obj' ++'MXGM.obj' ++'MXGP.obj' ++'MXGV.obj' ++'MXHL.obj' ++'MXIT.obj' ++'MXLL.obj' ++'MXLN.obj' ++'MXOT.obj' ++'MXPB.obj' ++'MXPF.obj' ++'MXPG.obj' ++'MXPI.obj' ++'MXPN.obj' ++'MXPP.obj' ++'MXPT.obj' ++'MXRA.obj' ++'MXRP.obj' ++'MXSA.obj' ++'MXSC.obj' ++'MXSI.obj' ++'MXSL.obj' ++'MXSM.obj' ++'MXSP.obj' ++'MXSS.obj' ++'MXTL.obj' ++'MXVS.obj' ++'MXWD.obj' ++'MXWM.obj' ++'MXWP.obj' ++'MXWR.obj' diff --git a/16/lib/x/modex.lib b/16/lib/x/modex.lib index 5916999f9f258f265688f80c028c4fe85d1dd82b..ea682c00f819a68b43f5b8b5851b1735784589c2 100644 GIT binary patch literal 1536 ocmezHmyv;mfq@YSN5KdTfserW9|fZ!fHwq$@yd=$4&e|00GvPr_W%F@ literal 5632 zcmeI0ONbm*6o&tvbWbLUI>wHZOp?juBr{PQ5EI1UB4AH-x~8DI`%<^2D=cUwZkb@h=TFm^_%=E|q z-*e8by1(2E+y+dczAkLX%<$Ce>fJp%yl-;`c&+Vj@xo!C9gX`Zx4GNX`N>mxyWh)u zozw2;bU)6<>*o4PTd@XgnQC=6JGk)2xb=GVNvGYKeYuV4Kc_Y}+rY)vm8VPMVN-uG%=>Ub-GmvUYz@V-;?GRIpEyo~cQf%mnR zH}LgxtlB#vz7blk)sf%d_5J*dHwSXC;5?{lWU@m(cH)KfhS% z`9Kl)hB^Uq76|15uAveNUCy8o=N&#)g^ zUY}N~PxXFet?R#CAy3Qt&sw4X-qq%r`}GTX=6wBfY5mlBPQ1UJjlT)^H^56XZTz7r`JkH=rM8Jzj&%L^Vvx^BH9k1Yt6TmW_IbNOtb=;v3wR{An zj#8S#mh#T&j22Ly={P-Dr6qJ~ZD=kskH6UTi9Fch~C4#S|@Y~`)fU