From d1ce94441d5e0bffafeb959c505bf3d3975a0a35 Mon Sep 17 00:00:00 2001
From: sparky4 <sparky4@cock.li>
Date: Tue, 14 Jul 2015 07:35:06 -0500
Subject: [PATCH] OH OH OH MY GOD ON HO OH!! 	modified:   16.exe 
 modified:   fonttes0.exe 	modified:   maptest.exe 	modified:  
 palettec.exe 	modified:   pcxtest.exe 	modified:   src/fonttes0.c 
 modified:   src/lib/modex16.c 	modified:   src/lib/modex16.h 	modified:  
 test.exe 	modified:   test2.exe

---
 16.exe            |  Bin 53950 -> 54308 bytes
 fonttes0.exe      |  Bin 43028 -> 43370 bytes
 maptest.exe       |  Bin 53369 -> 53727 bytes
 palettec.exe      |  Bin 39666 -> 40024 bytes
 pcxtest.exe       |  Bin 69421 -> 69779 bytes
 src/fonttes0.c    |    3 +-
 src/lib/modex16.c | 1998 ++++++++++++++++++++++-----------------------
 src/lib/modex16.h |    2 +-
 test.exe          |  Bin 40119 -> 40477 bytes
 test2.exe         |  Bin 45281 -> 45639 bytes
 10 files changed, 999 insertions(+), 1004 deletions(-)

diff --git a/16.exe b/16.exe
index e48b8aef3ba9b7b5bdddacd2eabd1ecd6fdf9e08..9017de370c1a7e715118909fb882e28eb8ddb641 100644
GIT binary patch
delta 12846
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
LE40%4u;Tv!=o**J

delta 11979
zcmZvC30zc1wtn5)m)oEMEnu@WAiFGz;DS2>3ZijA)W($-1O&r2O(W_v3S*q{+St#e
zGFgm95wjUhR5T%yC<;-NJQt!ds7ch9%-9AKjZTbF2i{lJ-C+Fx;di>LzH{o-sZ*y;
zRo%Y3-ccQSQ?+*5{Flf`@&Xw^1_@nVWoqI~h{d0fAY%LbpT&es%OPYQh~yG-8#H?f
zAxlAj1zAA5LEnRfJVKH{^FVt*_dyf#2?>Y3fB-_?1#J!_<Ss}EA|yJ9tR*!lyaGB5
ziVP-XFvuK+PQnQ}7eUBBLGuO>QVNnI32_CbMiX)t6c<CtXwYQPZBYC`LPiZD<QdRx
zP(G*>bT5t&bvz+MK@&jF3?bw%LkU?qbS)t@C~O6J4<n>?I3ZypF=CMGC_+wyLPryl
z0-6R29ZN_XX!AHiJ^~pM32_+@g`h>Cm7txVBcR_w`XoY1KvzJ&gN7s%G6}R9v<39x
zT6`o<fQu%=BG5sQ6(pn*q5};DC4pvwia~z^y#aa)bR6{dBtjm7+@}zdGl!7tpb$Mg
zl|{%PP$j4i^bzPV=pyJAXwY0jMuPG;;iD0B9ppWakO80s&|J`J&{oiXP{4e60km4y
z%Uki?2pYElUID!ZIt026dIajbkdT3(bkJfDr8(mG$gg$lS|#gCUP_D7W;J*<4kWc-
zS;zIWZt16O96>UyhdAG=qo>4yLJj>*oG19v8LE`E+Q9W+RZ8odO*(Vh!_V}ORTD+)
zCxMo14|9Mj+sm>@+@S8rYI=p3)B2e8ZnbUJe+Jka`1Uj~vj$3PuZ}@C?}{Bmo8IUV
z|Ii`s(IdXlChpuQ5UP=ehW?G$of`WPWsYcFVdF}hmVc|vksEihkrXu)NK_OC(ucBN
z_#vH=_E6E^fgPdin=AWUp9xi3ESI}RXd4fb3~l2nDZ`pZN2vpX=YXN4-Cf`OT&UG8
zR5<~mVY49MkaDI~>L8iP{}4jAseQ(N7lsBWm5WfF1l40Lmp7{8euT~kjwWx1tZVIM
zr6G<U1;O5<h5o7z7SgDv^SJPoux<;FK+R#Rd$+ugL%tWSbPgKaDr?Qt?_?-<6S@*+
zOUi?;<+o0zJrIa>-@}`mJFVBklvBz>>!mQIUAb$$5Z=)0eBUYV(;(&6qInBiX3fmh
zXU$Rmx$c%vLS3Guq&-fkE08v=u_|euwdW4Esw~Zx_9KN7{mJb`7smfL<2S5#za{vt
zM)jwJx;6N^l~7kLDc>t;za-TCRchGS_Yalt^T1L48@}!&)NPQIGhBS5)UdT*ydYkX
z=~=CJ-wX2CwaYIjocQ|%nRI;H2=sUD^uXtPvnYfM`(f;TwT-bthSgt<_-yRzvL?|b
z-cf=x-Q?|^Uenhu=nKJqSzXH?Ya6FS_+xopt8-&#m-RbuOLnJutl1=5F5REhOH=6%
zKYU^R-Di^J`wgjG9XEOPJ$lPKNbseuKHei|I+|8`cP;Pyn5dcr#3J1K*sOnOjYZ6&
z&}n@}3lAEyTOQBKg#Vb~3w?apsFwSrdA#9dxn#zYs0{p=$osmEUT~pjeD-KBxI`UO
zP6_QWDWhwcw($j6dPAa{eXBfoqPR>#V1U;p-TbZ7noRxts#%lc%DF!`IjN%i{HFS_
zCY7r0CP7`=#>0Sesh4iN{{<Iq?d1$}nl--5dXtP<bF0cjdDQkp!a8P4nQoC_p{I4h
zLNUFq3yGU79zLatYyKtv%Hhvd)<o}LCe%Et7M|<HYH_G_+_6T8HIInO1_jV${{a(E
z2pLT(VwFWK-1x7|((m^$KZxXSgbZ`Gm-QFHlC1@<h7e=PVEqf`T@+B(HvWd<mjd16
z|L?VGF~izMFkkChR5!I<P`6G}-Tb|i3$ZQ^lBc@RiM)%gz@P3S8p@uBGITKtQkb#j
zs7cBx>n3+TVaGM(F%S7U=39+P!tVuxBy+aZ*3s6XYFA~GMzX`wym7izeO=Wk3Sa$*
zC2)IVntQ|s^&&pobZcO$(}z;#VLkm<;O}eovgKG)P2Y7b?$tlsiBJLq<%rrqA6fOS
z4Y9PDe*hXJo6ooXWc!b(PV|>a<v6pONNSs7PK{|Z_C|y?3IVlWSew0So6VQoez5&l
zs+u~x&|E8<FRR)k>U?BNb4>feDW`*LuUbwXtsxuf!XVce*l;|;oQSTK#F6M<9xa<x
z$@g|eH}Bp@cF#B%cRDy?r=J|LAwoxA3d)~5R<4y3W%IY@&vr)0K@mx^g0>&m^gY@t
z$DG|q?(JTe7zqn~8vh8akCbcOqUHL5_==V5<M1^^9{O|RgTVS>C@08`UBnvTWj*Yf
z0f)>C_R;+4U;D);g2$|k%-XY-tA{=5%HTkM?|_d*axm$1@Z5|>>~rqK>hCr8;MCK>
z8IAgehF~|rO)qcsj=OJZRxU=|e|{7_8=~v2m(9yNF)~*FEo5pYhS`pFI7Z$qEzdK%
zS)}!!n~ECsvhqdz6-&EvM*(C_@29k2+09VyV#ag5QT*;OM5aHqT#D~Pb~C5;vK&{Y
zcSbNZl!k^n)k^g!HH8k+Lax1|0U9ms>k?}vQt6^-YbDwlsuLlh3k!+6=5B406Y8w)
z=IqA_G4hY@Sgc9PBq^cpCwJ8U<&KJ+P@VXLyR*qh+n7#E!X{}h-i4Hs>a5J^1=e+U
z+8Q=J;Ewx*4HA-%J%!A)<zTHoBeSVOq=UnK#pNQM5<Xh}vdA|FY7T#21ZPYH=jbDT
zbB3MG5o5IJbk=}lYG!mzVxI<GWToK8Jr$UzF>4Dn$e}~lU#X16u#OaJ=<cYp2#nLq
z(q3odTP`VTB})VwNeym%prE1RR-mEdqo41+SOf31H0I)~;Y{=hQP5L)kb=+6gBB0h
z%ch9<E7qFc++}0nev>EMeC1>4n$*j3jQhCC1-p#3+83XeOU%>Zu^aoqf;+XBEmyj<
z#Twcan*acF%PdYr$N!0aJeC26yGWPTO>Wc>>!(h<4_;-gF0BTWb#u_Knac71htn`T
zZjEZ8UdH6RHhQoxIlg&541i=)$#hHm$0w5OJY=)hOSXFZIE{*1_Z6x4kQLOGbJaht
z?Kp4KiiR$>_Tqfj*3ur|tY|&tdN1letX9aRTZff-+blO}%x=pybt^O{<*70WvhJlJ
z!{<aDkejy1O6P`CHIEL+724|YVx`l%7P;fj=t+X{zViLXNkYf%n$80<-7$PrRIA){
zfJs|x9<@F#UDYGqDpN6G@NB)D(Rjff>j&T8@^5%0VYF-x94njM66LOhk#gNCjWw1u
z!Ne=|r5Z(BuBrRh-K@RnUjMy&{R#k=-Rmy6E869n`gZqvlZLKO$Q1Mq?FoAX9UE6&
zIYOvZ!yJe(f)kW;W+-XcJ~CD05w|XJI_(%8!phANbyKO=n2!Tdz6=}*M0K-<jJwuV
z^}xxWjDcS&R1oPHvs1%#V;3DGr^(C5nG+_`ZDWT_O_R+DDRRe`@y+bJK27du<~}!1
z?WH74lt=wxbXV>v$CU@xLywf>uxT)7k8w+rtNPd^O;Sf~hqL0A)}R}AO5hfrl+)=?
ziEsC^b@}fxat3{U{2{h>E}OM4%5-j0|0j7hNpG-bSFn_5L~^|o7EPXpo=F~uM9&vZ
zAw057!xjy?#Ja(X2`t2VS*GDj*?ywpE;k1*LsS%Mu=-rqe_rX7%|cN5(gIj%uf1#@
zVV)sE(7Lw6az#n7De3rZ)=c|(Oy*;%gAT^irai`x!`9!g464oUY}zFur_?;^LwBTj
z!<}ZyJX^#hGr?sVdNO6k09aSa+^o&h)D>tf*^d=3Wg=VVwa2;hm4rM^Jr>)z3E7d%
zIY)L$)e+~V2g<Q(xAT%@xwLL|FH))HM#MKmb3GKdOc)#v#nYZtjMT=|D*c$+P9@Q%
z)_Y=t+i?-e!}{8tj+aiRb?WJYi8@ccT+;&E+m-CcEIF|yPnC(I#7?Q9b>e6?WtD@>
zfhp7}?HVf&X60LHsYp0OCZ*uBa?((i-7cFGjGFcLO^KsUR5_cyguA1TSIx%;G$`GB
zb`m;;K$Qf3pC|Z{HXNbEoM^A4pkjJ;)QRPNYycwYmyYC{x#Wq4L%3q!sXc1n2Y0uv
z+vPjaP`PLA_bd050=vebiwYO>#9l1Et30#kFKDqTx7m5Nqq;t=;l=c?*`{Z?692h5
z!S0C4DXBab>q6v{a!5n#l-|g<4d<rL><!7<OM1)IuC#x5X<w4*;JHRPW9Qr?FQ~v~
zwMIisH#cTm<GMEfy+%Xt&ppSZxH@qPJv}dICKIaD%1#;*c4xn&96$fl`maoG{2XHH
z-AFW}&Q%4o;Izm-a{QHN_yMCm29>B5r5(pU&GPR$+M~|#QS6t@S}jeSAIkjEUN;?S
zbGkggCBC_3mOe{4fq-U?xDwxmsgu`VF}aTV-spk}ziKu}9k*>xS}iIIrS)B=6b0AD
zE0xKOdb)T1m}sp2CYwN&*l}nUFV;axvk7-nv%$lx7TTReq!KOlSTF|nT=YMc&RP&Y
z!fpyAUDhRP<<81p$kc3Wh3_}vBJ-8CrVGqlP-)J_E~mngYD}P(ey|`i2yHLpvST;b
zwwJA2i`_pB)-Qr-zb^=evwata;&a@>{x~MsB3;6f<DS*26PLXc5Hl`(Hj(K<ijj>@
z*l@7eTg=*3a@!A<z}2#F-mC^RYbMVPTu8<8L5tbVAwqSFlKEP!PV|#i#<=Q78I{rj
zw+?mnqY$I-0Z&-J;k>1tP4XI<KEG%s+k7s!T{A;H>!{`tmW*8UFq3*^4_uppnOUu|
ze$@*5&SQYc;Ovfmn!DBPmLVU>l-sUbj%T&qy!WQ(=l6CQI`-Rm(;u4?GvpYE#5K2F
zZ@XbRu3FQXwecDR--F<81J-%{Dj69ZJ;?PLa>s^D-m=bS$2gebycTxIjy+?wY}KCS
zBK51~y4BbvSIL>I<$O3quh=%%x(s<#i&3K-8z+!8BXF@7P9<4ycJgLp0yE@_0m`Me
z>xf+3WUW;!|61BVOIRffXR6O6A-lC_!=LfZ9jBVQx;lQ<+E^VoX3bQNDd*Nb>@vC3
z{Gq3_4XcFwhO>rGRW4Y#aOcLqd(eL@sr0_Xv(>lf*d*C4+PEEyDL8MtJ0ve!uA0}}
zSM&!q{=<Ww&AY}{>J=OVH*WW!ALlPv%%(ymYh|lQ*q|Kek}=vK*_f`J-!I`paJ~c4
zu4*D0ZoBOspuuUW_MGJsTW&%NKjO3Xr)x&Kx5;7UDp+!+f@qxdmE)ExZU6gOAclSZ
z{v;vEq=LQGGlV2-!F|l`U7J_Hrk@v#fPBr#YE9I!eM0gi%rvIXFt251W)@cR$AS>w
zY`J{2T2sG9Q~#<=W0oefgw%dgUZWAnNg2?prDNGn$su}VX(~%9mm%BGtMF|>baA1_
ziu$Qt{!%_JJkNz*D~if;!Cz$bs;JRH;d#ACyscVfuU0+v*NX%PGYOZR1>tc+@)p?|
z4Y4(H=-}0cpO^I&50sn{R6_?1rER4}s!SPcvCKPmV$Q@If~RpMcs@u*{)nf8B<L)j
z<B_0c96!zxzZ4)|KQEwvEi;P$Or`hBLY!*wP;NF2C=V6Co<dW~Bb);85KT=>%0q=P
z`a<~tr;T`ED$|-`PkOFg<FpwyA6|Qa+B>Kjc`fKKzacsZSyEiK<k`F`qEaO_gc&P^
zr@)MccPd6m(M+<abcqpSv!w|lRBEQewDW?XLOc<&tin)H0cNY*;Id+l+U+|JLPQb`
zK~cWuL5tVknZv|PCFSKg#gMxo-$iqcc%w&&K=gQksZ!-heFZ{#3wc###ys*q7aItq
zyRROL7fTKMtABCj7UVFkE)DNmip8}9(7TX@HcqNucuZQBm%pOCXhnW;m62d^0vBJ9
zcj~U_h`2fUl(1q2q@Rs|t*3;QD^V`Bl{0dd=BMOT<O3<TArs1q%Z#X&uxddBdU;#-
zjgF8F!hbt@RG~-u;|m(;TV02aK6qhZKpt2H7JOXQ-P9FqLg9w)1{$H&RS%l{VtD8+
zo!Xz7Qt&;PcXX0}!Fd!O>K^Jy0du6}FHz;iVdAe6J^JDeRg(WE`YsJnJ>&m8{hY=L
zlN%mVNpxlYEzHl!gCDNB)7~%ZaJ(W<Oz#efCcHdUS{!^TxS{0bIf83p@bTaRQNrV1
z6zJJkVpOMs4fH>+42e1yJTIhRB{*&&i6I3mP#7CBHUz`igkn+%n7Cw;tdJ}^_tk-_
z#UanqzrQ+WTyaQVXo2X2hwdS-gph(hC|wP?iqbHYehwKNTF@Vb&X7((Q7EZH)uE(d
zC`!?x(X{K;?W*F?Tw3><Ub`Z6QCPtUSYIDn50PY)hJ+2Fu3P*CHI3eq9HN&EhSJL7
z;v8c>=AHejfH=fM^CcCg9HYrVR7>clEdibu_HzJd81h#XF?=umbW5PuogREr>g<WL
zi0VNgy}iX-{3DP$zaHcJu$x~|l2cr4Sb_*b<A;HC>g$7ZFSv89%!VA}(&a>I?*Z({
zw>=0%mJsRt9)O7e*@8h4ws;IsQ(9I!Yy^=G*fILu>!Big6Soc!M$zc4;o`mibmrFZ
zc?*IZ11eyKl`Vl)-IxQB*yQka3DpG%iE<)Yo`y2ZmggIZwAqf+vs-<fcR0Ggy)|TQ
zZkVGhLs@x#siB}aXK4kxD-7p$!`X(sGR`5YSrHD|f(kqIkpn8Q1I++1ULKJZ`G$g`
zV&>9K1MDpejQKV}QVuzh(9PT21(EL9<|nw&rfmVfi#3ix<r|HqWkkxg1N7HzL2GwC
zF}|X*Tq5<sSnNJ1U<rUodEE*Oh8Y;qEE9sKq=HC=PcSAFmsRBFb+g`rmM14EA)ZK$
zPh&&yJH+NUyaf$?=ZyivIC}1lNNrejw@1*6eWt>w+x95&r)WBAdxU2MepRx?W&y^|
zd=Wv7+rzbm-8lS<R0m%XRbRSyyT4x~euUyp3hcO4?C`-4+ao=V4t7zgX=K6*G;^VW
zJHm8B@jDgwJYO=lm0&cLf<Kfl+Tou(41BKEzD9B!b^D@`+<JUzfbJnfIfF<VJ5CSp
zh>88L?pADWiw(Jz1qJy=bdnP5=$<hE1IwqLbrG1}(RJZbx8v;H8*@tYz#EL8(YQGk
zHbC;QJDhH)3(#hQ%Ll^)sJzm|mcTOFR2ShNgNd+t)Mj{9k*Uy7Qn3^QvGhN6BZYLD
zuro?1qKkKG=hi^j7LJ%5q=teVX6vpV6={=8i%glOQtWE)^q@VU3LCe*x3sjP(juFv
znx5GiwN~5XuqBnoT;sDu3haSq%}$>1%+wiKL<)KeoIN9hNFhDolH8RhL~hs<NMTWN
z9+4t?kkYb|$Q;9Z07Kf^j8sD*oLS6PxK9tKyaJg34@jBaEblDMHyO&77aNc?m%zk<
zJse|xg{jP#|0FlAhii*I){;#Ekw*5grj}1A$umqXDg`|DNjPI^$@H8Opng4Q8M5m#
zY^aj%PgqeY!|<rtVJGDH3J$PCboQ=b=Ojnvxm`i{G2o3|19R9}%04A*o(##z&Y0BC
zyI~BNWo%%3@RO`<P0T9C^k?K4OIUJar!L2&VovQEq*5$1Nb70Ln_<o)RW`$D)|+AC
zkHhJ6Z^nvuhSR-odW(k>=!rL@1aErh&4EZ;0dEZwcF<?u8aS<fltXW6ca~1+8K9w*
zW$E1fr9_(e1Ud~Sq=RA4)oG3qx4t!8Fwuu^`T2i3+A$0RrVP{Bz3Q%xrg3i%2o4$R
z=-9y6OUg=^D-A?ScPLx&c35`opQU($g*TG^45v<<F%4+OQ)p)L^hv3}7e9qho~}=x
z3cP|od^=8fj>fzb5oU&r&Fu!qMp1$vy1C2k`$Rphd?!LYmq@q06WQ+%2NN3^l4L<S
z^qJ`8cVfhb@l^e8jCeMQ4tqC7c!Mr}x1Y9Oid~g0KeC;hsQjq;-B=-n9)34UNTNT!
z8|`(`A%^5ow2GzIizzf@ccgeDg-+caC@iGU?vC!gXQIP%1vF>3CvDgr==WVWR%*-H
zlF^ZXJ9fv4U#C*tdl7;wO?hvCFqSSuc`1DXpDStOd(l3x;oxo$u7cvqib9)x|DHr2
zzBfSpV-gMB6E1kt$$KJ)E=zX|#FpR)%itmzi%m`vi-wgD)sV^Ex+V{shC1D~Cv@(V
z9<<zOVu|+LGj@j~^vjJ%-WBEfOIW0@nPz9?FV87<?CobAAj^goCSx)7eWLn#8tuQ=
zuV2=5dy9e+)3CyPw!eHfolf7Y^KPGE=gi7C&CfTMW#q6tuBO#{{e?=pZSTNf2`>iN
zhn`w$$~R`|Cr?bBfiRrn2*aQD4$ztG&SXa-zVwK+!r|Y6?}s|$0X5U2r&;fZrn2)B
zt3Y@bKlII=Y&$^N!BlJ}PeC@hd5~*$XgUhDs~mm&^#0I+k=>TECArjCR)wMTfc!XR
zN2BQE4`TXn`%{Db(wtm&u#xZ>*=8&KAX<2z9{FI9xIc^j{DGf$0^WzP`(kQNg(=Op
z`7fe@`+S8D=*WGs;wSTH;l5Du#yq-dU$}UG9zD1(3U4fYzfU`JJYJ5lH-@t(&zQzm
zb7`5)A}OQCCx+>1$jvz2WIll*pO_4`T)N6(U+Vr4A(s~JA0VuuoA-Oguj}q1udKqD
zZ;HeCH+Ew@i`eo5*kJuQpMJeR$axLa@eKJNR9<xG4nGj#{Y!US)?f)vL+l)`p}7a*
zba8m4!#)~5f}%28c2eQSyZ3<ah=_&V{GQPgX*DK{b%v?uBXSJ&NVgFOf`z}){tc1B
z+cdo)QhdCS8XH1G$s&ikiDi?g&(4G$69Dmqlvh?{V&{@ZG+IfoH-vlaTx^%FG?nE*
zv}-Z-IT(gaGVWlMFp(}j7!dT5eV{C0Q`06H_zEi^(#sA9>^eBW8IL&GAocY8!7%SR
zISvzwDoSz@DtxIdqi%=%gRAX=Oxv`S39}|w%x1wvq&<#tJ##47v&^9Z*B_f<v+3GH
zVIGHa9p>8MFnZ`vXx~g+__>QKa16mHa_G%N5#kq1Xx|S9iWisA@gMpK9(3-9(cb;@
z9H#M!vY$L-=xZOwI(s<wyt5yM=|(}2`;6@<dAUd@CR@;}=1{kfbpBP{iVP*We1eGd
zs>36xAJz6*DY9&q=tjsl?hW64lrDPMFX!yuo{N-MLH?UgIUFGLr-g_63)ytT;dDH~
zDJMyio_=#U09W1DNrt4CWzverDMC|x(Kqg~f?oC$76TnfF5nR>ae<Zi^8$&ae=t79
zB!9eC#8E;bIG!EC@WqU)N*DF=O0okQBytUpL8|SNXao)QcsooI)%5iy-=Z&h*~V7m
zi(NqR78QoY{`7JX|Hi9MvK=C}*Wc_gzT!Y4xgW)J;!Z@4Vk`_H<QOk`!TRHJAG-e&
zPuG>WOGvm5f=R|R#JQd$qx#d$$9!DB<du8<8M~0qJmJ~@Hb)i&F~mtAggvR*A~Q#@
zg>#htrL~{B7S{|(%%xv`;ycF=7Y9icF(};lK|6To*leEo8;!C^EL@V!{}y=}G;2|^
zneL2|&GcQowKF$82pg9qYPjY>9GSwAaU8ipuOIbvE$0ZkFcETs%k1OGPaGM`k;@!m
zS0=nGMr)cq`}M`GLK4|!iI85fWDo0=3P<{>pXVGS4LIWKeT0|!1&E|W@(d)m$P(AN
zcreqzt}TT8omn!Xfg>V5@w@_(J%6@fxx)GEzJgmU=&K%W>L8$!m`U4?_^KE2at!?y
z<-NR|PWvA9Re!_FMKu1Xud5OF7)iXyHAFLedf&z^LlRjGY~kbZ#j#Zqi|GqTeZ5n7
znLjHeRgie!HbcDKDb8d5SLoHF{ao+yI)9=_cmO#^;;<{RGpc{Hk82^Xc#mX*xXT^!
z5=UHcM8%^UhNzEoWC#7PX5W5yc$pnw@q!{q<OU*yhMRC$mP8Ya4D$Z}$6aSRpPfJn
z=>u}^9-3DIYZ*)3kNK+WdHFdy80FKvY^F1g`8xL-!DMg_EI;PsJf2tnNMr%;yoOhB
z0Ni)X$9p%goK0e#oCWPfCv)XkKCnxi_eL_~J<pM07`7yaq%b6qBMUi_#F3XdvVkM)
zkcjsUInu(B8yxwJ$E+LNA&KmWh*v{-JWk~ZJ0KGB0Cd0+kFGCr&ey4oGm`83gd?tL
z3>i$5o4xvQU@Qk>cn5vpRY_cm6C)uWyipuSR&peWBl9`JPL+5Wk|SF=@&`x!IMTuq
zPZs+mizBx<!cLfY-br)N`54v}J5aI*#hCu#6F9;SlX&IDm3=z?Z0jHeQ!0t<Oow+`
zLA^wK%=X^MIS2XJ5hA@$@_L_c{(QXIDv5_3zES^!*CXlaR^NWV@G?72!S5ivWn^0k
zuETK)ki_>nN5u!Rgd_Vo(whc1d%9ld$S3ny>liMh##^!y4p9to=SU1k?sFuJ&6;->
zNBrh98RiiU>(drJ>i^}uTzdU8UvHNrrfUtCD~DVnm-Av;d;f#;G9A`BxA6Ke^Xb$R
zKK*+k_#}~?bFeR9jj;4;OOu~;JK;4h^EbNvgs-}pm*1vGPxv}_@G{OW*G~AT`=&5O
zgm!^3pO;rIW=li;S6<mk$Dj07f5^)r)Ns-__<LUFKQeH4o)g)^2tog|QF0`~2@{yw
zBg__AWSd8D8AsSTg%CfGKggEio4J(0<MRfWVrLOT(m2u|p)ZN-6hg>0?(W$fVFwUG
zR&Ye&$QK;3?QMrRa*-pGxy&Puu)_%Y=g4?09Z9^)?T_G#t%M`|9722rjEjw^;kQ$Z
zMRBW04WGx-^<Ul!iFK}0Niiyww@NkGOC{-|(p9R^ncE_g!@|a9%pM+~8r?wuCtYxo
d`m6lEr1wtiaX*}LX11`nVf&dHCn*{x{2v4gWRU;>

diff --git a/fonttes0.exe b/fonttes0.exe
index 4cc28256a65059b63811f6a3c999605618e1d378..6a0d03e696caea4a8e6ad9b998bf43fe86b1b458 100644
GIT binary patch
delta 13696
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

delta 12750
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

diff --git a/maptest.exe b/maptest.exe
index e86cd95d52cd62dd795180ffd56f916f66adbf09..f267d6cd1aee7894b9c4d8b0f49a027f532ac0c9 100644
GIT binary patch
delta 11276
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
RiL}1{`o$emX?hw${{wI~N2&k-

delta 10211
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
Zu77ZK79-}oMV?pdr+vGN;~uLK`XAzTFTwx-

diff --git a/palettec.exe b/palettec.exe
index 925e1a651501622da4c6d0655018692a7f5f899e..81fd61aacb62244e4aa3511f62562a5067a2fcad 100644
GIT binary patch
delta 10990
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

delta 10846
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
TJYE|2e%HJw$B6P%aR2`gl)969

diff --git a/pcxtest.exe b/pcxtest.exe
index 3be4c9071cdb28fe6ba6ed3d05222058b3468d7f..61cc8d882923db3fb5b4ec54a8e7ab468c11006b 100644
GIT binary patch
delta 18378
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

delta 17367
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
O*+AwumTS&J=>GuMWq<ep

diff --git a/src/fonttes0.c b/src/fonttes0.c
index a59dfc10..4365b812 100644
--- a/src/fonttes0.c
+++ b/src/fonttes0.c
@@ -171,7 +171,8 @@ void main(int argc, char near *argv[])
 			//printf("%02x\n", l[i] & j);
 				//modexPutPixel(xp, i, l[i] & j ? 15:0);
 				//modexpixelwr(xp, i, 0, l[i] & j ? 15:0);
-				modexClearRegion(&page, xp*4, i*4, 4, 4, l[i] & j ? 15:0);
+				modexputPixel(xp, i, l[i] & j ? 15:0);
+				//modexClearRegion(&page, xp*4, i*4, 4, 4, l[i] & j ? 15:0);
 //while(!getch());
 			xp++;
 			j>>=1;
diff --git a/src/lib/modex16.c b/src/lib/modex16.c
index 2b2818fe..e61df5a1 100644
--- a/src/lib/modex16.c
+++ b/src/lib/modex16.c
@@ -1,1004 +1,998 @@
-/* Project 16 Source Code~
- * Copyright (C) 2012-2015 sparky4 & pngwen & andrius4669
- *
- * This file is part of Project 16.
- *
- * Project 16 is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * Project 16 is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>, or
- * write to the Free Software Foundation, Inc., 51 Franklin Street,
- * Fifth Floor, Boston, MA 02110-1301 USA.
- *
- */
-
-#include <dos.h>
-#include <string.h>
-#include <mem.h>
-#include <conio.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include "src/lib/modex16.h"
-
-byte far* VGA=(byte far*) 0xA0000000; 	/* this points to video memory. */
-
-static void fadePalette(sbyte fade, sbyte start, word iter, byte *palette);
-static byte tmppal[PAL_SIZE];
-
-static void
-vgaSetMode(byte mode)
-{
-  union REGS regs;
-
-  regs.h.ah = SET_MODE;
-  regs.h.al = mode;
-  int86(VIDEO_INT, &regs, &regs);
-}
-
-
-/* -========================= Entry  Points ==========================- */
-void
-modexEnter() {
-    word i;
-    dword far*ptr=(dword far*)VGA;      /* used for faster screen clearing */
-    word CRTParms[] = {
-	0x0d06,		/* vertical total */
-	0x3e07,		/* overflow (bit 8 of vertical counts) */
-	0x4109,		/* cell height (2 to double-scan */
-	0xea10,		/* v sync start */
-	0xac11,		/* v sync end and protect cr0-cr7 */
-	0xdf12,		/* vertical displayed */
-	0x0014,		/* turn off dword mode */
-	0xe715,		/* v blank start */
-	0x0616,		/* v blank end */
-	0xe317		/* turn on byte mode */
-    };
-    int CRTParmCount = sizeof(CRTParms) / sizeof(CRTParms[0]);
-
-    /* TODO save current video mode and palette */
-    vgaSetMode(VGA_256_COLOR_MODE);
-
-    /* disable chain4 mode */
-    outpw(SC_INDEX, 0x0604);
-
-    /* synchronous reset while setting Misc Output */
-    outpw(SC_INDEX, 0x0100);
-
-    /* select 25 MHz dot clock & 60 Hz scanning rate */
-    outp(MISC_OUTPUT, 0xe3);
-
-    /* undo reset (restart sequencer) */
-    outpw(SC_INDEX, 0x0300);
-
-    /* reprogram the CRT controller */
-    outp(CRTC_INDEX, 0x11); /* VSync End reg contains register write prot */
-    outp(CRTC_DATA, 0x7f);  /* get current write protect on varios regs */
-
-    /* send the CRTParms */
-    for(i=0; i<CRTParmCount; i++) {
-	outpw(CRTC_INDEX, CRTParms[i]);
-    }
-
-    /* clear video memory */
-    outpw(SC_INDEX, 0x0f02);
-    for(i=0; i<0x8000; i++) {
-	ptr[i] = 0x0000;
-    }
-}
-
-
-void
-modexLeave() {
-    /* TODO restore original mode and palette */
-    vgaSetMode(TEXT_MODE);
-}
-
-
-page_t
-modexDefaultPage() {
-    page_t page;
-
-    /* default page values */
-    page.data = VGA;
-    page.dx = 0;
-    page.dy = 0;
-    page.width = SCREEN_WIDTH;
-    page.height = SCREEN_HEIGHT;
-	page.id = 0;
-
-    return page;
-}
-
-/* returns the next page in contiguous memory
- * the next page will be the same size as p, by default
- */
-page_t
-modexNextPage(page_t *p) {
-    page_t result;
-
-    result.data = p->data + (p->width/4)*p->height;  /* compute the offset */
-    result.dx = 0;
-    result.dy = 0;
-    result.width = p->width;
-    result.height = p->height;
-	result.id = p->id+1;
-
-    return result;
-}
-
-//next page with defined dimentions~
-page_t
-modexNextPage0(page_t *p, word x, word y)
-{
-	page_t result;
-
-	result.data = p->data + (p->width/4)*p->height;  /* compute the offset */
-	result.dx = 0;
-	result.dy = 0;
-	result.width = x;
-	result.height = y;
-	result.id = p->id+1;
-
-    return result;
-}
-
-
-void
-modexShowPage(page_t *page) {
-    word high_address;
-    word low_address;
-    word offset;
-    byte crtcOffset;
-
-    /* calculate offset */
-    offset = (word) page->data;
-    offset += page->dy * (page->width >> 2 );
-    offset += page->dx >> 2;
-
-    /* calculate crtcOffset according to virtual width */
-    crtcOffset = page->width >> 3;
-
-    high_address = HIGH_ADDRESS | (offset & 0xff00);
-    low_address  = LOW_ADDRESS  | (offset << 8);
-
-    /* wait for appropriate timing and then program CRTC */
-    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 */
-    while (!(inp(INPUT_STATUS_1) & VRETRACE));
-
-    /* do PEL panning here */
-    outp(AC_INDEX, 0x33);
-    outp(AC_INDEX, (page->dx & 0x03) << 1);
-}
-
-
-void
-modexPanPage(page_t *page, int dx, int dy) {
-    page->dx = dx;
-    page->dy = dy;
-}
-
-
-void
-modexSelectPlane(byte plane) {
-    outp(SC_INDEX, MAP_MASK);          /* select plane */
-    outp(SC_DATA,  plane);
-}
-
-
-void
-modexClearRegion(page_t *page, int x, int y, int w, int h, byte  color) {
-    word pageOff = (word) page->data;
-    word xoff=x/4;       /* xoffset that begins each row */
-    word scanCount=w/4;  /* number of iterations per row (excluding right clip)*/
-    word poffset = pageOff + y*(page->width/4) + xoff; /* starting offset */
-    word nextRow = page->width/4-scanCount-1;  /* loc of next row */
-    byte lclip[] = {0x0f, 0x0e, 0x0c, 0x08};  /* clips for rectangles not on 4s */
-    byte rclip[] = {0x00, 0x01, 0x03, 0x07};
-    byte left = lclip[x&0x03];
-    byte right = rclip[(x+w)&0x03];
-
-    /* handle the case which requires an extra group */
-    if((x & 0x03) && !((x+w) & 0x03)) {
-      right=0x0f;
-    }
-
-    __asm {
-		MOV AX, SCREEN_SEG      ; go to the VGA memory
-		MOV ES, AX
-		MOV DI, poffset		; go to the first pixel
-		MOV DX, SC_INDEX	; point to the map mask
-		MOV AL, MAP_MASK
-		OUT DX, AL
-		INC DX
-		MOV AL, color		; get ready to write colors
-	SCAN_START:
-		MOV CX, scanCount	; count the line
-		MOV BL, AL		; remember color
-		MOV AL, left		; do the left clip
-		OUT DX, AL		; set the left clip
-		MOV AL, BL		; restore color
-		STOSB			; write the color
-		DEC CX
-		JZ SCAN_DONE		; handle 1 group stuff
-
-		;-- write the main body of the scanline
-		MOV BL, AL	  	; remember color
-		MOV AL, 0x0f		; write to all pixels
-		OUT DX, AL
-		MOV AL, BL		; restore color
-		REP STOSB		; write the color
-	SCAN_DONE:
-		MOV BL, AL		; remeber color
-		MOV AL, right
-		OUT DX, AL		; do the right clip
-		MOV AL, BL		; restore color
-		STOSB			; write pixel
-		ADD DI, nextRow		; go to the next row
-		DEC h
-		JNZ SCAN_START
-    }
-}
-
-
-void
-oldDrawBmp(byte far* page, int x, int y, bitmap_t *bmp, byte sprite)
-{
-	byte plane;
-	word px, py;
-	word offset;
-
-	/* TODO Make this fast.  It's SLOOOOOOW */
-	for(plane=0; plane < 4; plane++) {
-		modexSelectPlane(PLANE(plane+x));
-		for(px = plane; px < bmp->width; px+=4) {
-			offset=px;
-			for(py=0; py<bmp->height; py++) {
-			if(!sprite || bmp->data[offset])
-				page[PAGE_OFFSET(x+px, y+py)] = bmp->data[offset];
-			offset+=bmp->width;
-			}
-		}
-	}
-}
-
-
-void
-modexDrawBmp(page_t *page, int x, int y, bitmap_t *bmp) {
-    /* draw the region (the entire freakin bitmap) */
-    modexDrawBmpRegion(page, x, y, 0, 0, bmp->width, bmp->height, bmp);
-}
-
-
-void
-modexDrawBmpRegion(page_t *page, int x, int y,
-                   int rx, int ry, int rw, int rh, bitmap_t *bmp) {
-    word poffset = (word) page->data  + y*(page->width/4) + x/4;
-    byte *data = bmp->data;//+bmp->offset;
-    word bmpOffset = (word) data + ry * bmp->width + rx;
-    word width = rw;
-    word height = rh;
-    byte plane = 1 << ((byte) x & 0x03);
-    word scanCount = width/4 + (width%4 ? 1 :0);
-    word nextPageRow = page->width/4 - scanCount;
-    word nextBmpRow = (word) bmp->width - width;
-    word rowCounter;
-    byte planeCounter = 4;
-
-	//code is a bit slow here
-    __asm {
-		MOV AX, SCREEN_SEG      ; go to the VGA memory
-		MOV ES, AX
-
-		MOV DX, SC_INDEX	; point at the map mask register
-		MOV AL, MAP_MASK	;
-		OUT DX, AL		;
-
-	PLANE_LOOP:
-		MOV DX, SC_DATA		; select the current plane
-		MOV AL, plane		;
-		OUT DX, AL		;
-
-		;-- begin plane painting
-		MOV AX, height		; start the row counter
-		MOV rowCounter, AX	;
-		MOV DI, poffset		; go to the first pixel
-		MOV SI, bmpOffset	; go to the bmp pixel
-	ROW_LOOP:
-		MOV CX, width		; count the columns
-	SCAN_LOOP:
-		MOVSB			; copy the pixel
-		SUB CX, 3		; we skip the next 3
-		ADD SI, 3		; skip the bmp pixels
-		LOOP SCAN_LOOP		; finish the scan
-
-		MOV AX, nextPageRow
-		ADD DI, AX		; go to the next row on screen
-		MOV AX, nextBmpRow
-		ADD SI, AX		; go to the next row on bmp
-
-		DEC rowCounter
-		JNZ ROW_LOOP		; do all the rows
-		;-- end plane painting
-
-		MOV AL, plane		; advance to the next plane
-		SHL AL, 1		;
-		AND AL, 0x0f		; mask the plane properly
-		MOV plane, AL		; store the plane
-
-		INC bmpOffset		; start bmp at the right spot
-
-		DEC planeCounter
-		JNZ PLANE_LOOP		; do all 4 planes
-    }
-}
-
-
-void
-modexDrawPlanarBuf(page_t *page, int x, int y, planar_buf_t *bmp) {
-    /* TODO - adapt from test code */
-	int plane;
-	for(plane=0; plane < 4; plane++)
-	{
-		//fack
-	}
-}
-
-
-void
-modexDrawSprite(page_t *page, int x, int y, bitmap_t *bmp) {
-    /* draw the whole sprite */
-    modexDrawSpriteRegion(page, x, y, 0, 0, bmp->width, bmp->height, bmp);
-}
-
-void
-modexDrawSpriteRegion(page_t *page, int x, int y,
-		      int rx, int ry, int rw, int rh, bitmap_t *bmp) {
-    word poffset = (word)page->data + y*(page->width/4) + x/4;
-    byte *data = bmp->data;//+bmp->offset;
-    word bmpOffset = (word) data + ry * bmp->width + rx;
-    word width = rw;
-    word height = rh;
-    byte plane = 1 << ((byte) x & 0x03);
-    word scanCount = width/4 + (width%4 ? 1 :0);
-    word nextPageRow = page->width/4 - scanCount;
-    word nextBmpRow = (word) bmp->width - width;
-    word rowCounter;
-    byte planeCounter = 4;
-
-    __asm {
-		MOV AX, SCREEN_SEG      ; go to the VGA memory
-		MOV ES, AX
-
-		MOV DX, SC_INDEX	; point at the map mask register
-		MOV AL, MAP_MASK	;
-		OUT DX, AL		;
-
-	PLANE_LOOP:
-		MOV DX, SC_DATA		; select the current plane
-		MOV AL, plane		;
-		OUT DX, AL		;
-
-		;-- begin plane painting
-		MOV AX, height		; start the row counter
-		MOV rowCounter, AX	;
-		MOV DI, poffset		; go to the first pixel
-		MOV SI, bmpOffset	; go to the bmp pixel
-	ROW_LOOP:
-		MOV CX, width		; count the columns
-	SCAN_LOOP:
-		LODSB
-		DEC SI
-		CMP AL, 0
-		JNE DRAW_PIXEL		; draw non-zero pixels
-
-		INC DI			; skip the transparent pixel
-		ADD SI, 1
-		JMP NEXT_PIXEL
-	DRAW_PIXEL:
-		MOVSB			; copy the pixel
-	NEXT_PIXEL:
-		SUB CX, 3		; we skip the next 3
-		ADD SI, 3		; skip the bmp pixels
-		LOOP SCAN_LOOP		; finish the scan
-
-		MOV AX, nextPageRow
-		ADD DI, AX		; go to the next row on screen
-		MOV AX, nextBmpRow
-		ADD SI, AX		; go to the next row on bmp
-
-		DEC rowCounter
-		JNZ ROW_LOOP		; do all the rows
-		;-- end plane painting
-
-		MOV AL, plane		; advance to the next plane
-		SHL AL, 1		;
-		AND AL, 0x0f		; mask the plane properly
-		MOV plane, AL		; store the plane
-
-		INC bmpOffset		; start bmp at the right spot
-
-		DEC planeCounter
-		JNZ PLANE_LOOP		; do all 4 planes
-    }
-}
-
-
-/* copy a region of video memory from one page to another.
- * It assumes that the left edge of the tile is the same on both
- * regions and the memory areas do not overlap.
- */
-void
-modexCopyPageRegion(page_t *dest, page_t *src,
-		    word sx, word sy,
-		    word dx, word dy,
-		    word width, word height)
-{
-    word doffset = (word)dest->data + dy*(dest->width/4) + dx/4;
-    word soffset = (word)src->data + sy*(src->width/4) + sx/4;
-    word scans   = width/4;
-    word nextSrcRow = src->width/4 - scans - 1;
-    word nextDestRow = dest->width/4 - scans - 1;
-    byte lclip[] = {0x0f, 0x0e, 0x0c, 0x08};  /* clips for rectangles not on 4s */
-    byte rclip[] = {0x0f, 0x01, 0x03, 0x07};
-    byte left = lclip[sx&0x03];
-    byte right = rclip[(sx+width)&0x03];
-
-    __asm {
-		MOV AX, SCREEN_SEG	; work in the vga space
-		MOV ES, AX		;
-		MOV DI, doffset		;
-		MOV SI, soffset		;
-
-		MOV DX, GC_INDEX	; turn off cpu bits
-		MOV AX, 0008h		;
-		OUT DX, AX
-
-		MOV AX, SC_INDEX	; point to the mask register
-		MOV DX, AX		;
-		MOV AL, MAP_MASK	;
-		OUT DX, AL		;
-		INC DX			;
-
-	ROW_START:
-		PUSH DS
-		MOV AX, ES
-		MOV DS, AX
-		MOV CX, scans		; the number of latches
-
-		MOV AL, left		; do the left column
-		OUT DX, AL		;
-		MOVSB			;
-		DEC CX			;
-
-		MOV AL, 0fh		; do the inner columns
-		OUT DX, AL
-		REP MOVSB		; copy the pixels
-
-		MOV AL, right		; do the right column
-		OUT DX, AL
-		MOVSB
-		POP DS
-
-		MOV AX, SI		; go the start of the next row
-		ADD AX, nextSrcRow	;
-		MOV SI, AX		;
-		MOV AX, DI		;
-		ADD AX, nextDestRow	;
-		MOV DI, AX		;
-
-		DEC height		; do the rest of the actions
-		JNZ ROW_START		;
-
-		MOV DX, GC_INDEX+1	; go back to CPU data
-		MOV AL, 0ffh		; none from latches
-		OUT DX, AL		;
-    }
-}
-
-
-/* fade and flash */
-void
-modexFadeOn(word fade, byte *palette) {
-    fadePalette(-fade, 64, 64/fade+1, palette);
-}
-
-
-void
-modexFadeOff(word fade, byte *palette) {
-    fadePalette(fade, 0, 64/fade+1, palette);
-}
-
-
-void
-modexFlashOn(word fade, byte *palette) {
-    fadePalette(fade, -64, 64/fade+1, palette);
-}
-
-
-void
-modexFlashOff(word fade, byte *palette) {
-    fadePalette(-fade, 0, 64/fade+1, palette);
-}
-
-
-static void
-fadePalette(sbyte fade, sbyte start, word iter, byte *palette) {
-    word i;
-    byte dim = start;
-
-    /* handle the case where we just update */
-    if(iter == 0) {
-	modexPalUpdate1(palette);
-	return;
-    }
-
-    while(iter > 0) {  /* FadeLoop */
-	for(i=0; i<PAL_SIZE; i++) { /* loadpal_loop */
-	    tmppal[i] = palette[i] - dim;
-	    if(tmppal[i] > 127) {
-		tmppal[i] = 0;
-	    } else if(tmppal[i] > 63) {
-		tmppal[i] = 63;
-	    }
-	}
-        modexPalUpdate1(tmppal);
-	iter--;
-	dim += fade;
-    }
-}
-
-
-/* save and load */
-void
-modexPalSave(byte *palette) {
-    int  i;
-
-    outp(PAL_READ_REG, 0);	/* start at palette entry 0 */
-    for(i=0; i<PAL_SIZE; i++) {
-	palette[i] = inp(PAL_DATA_REG); /* read the palette data */
-    }
-}
-
-
-byte *
-modexNewPal() {
-    byte *ptr;
-    ptr = malloc(PAL_SIZE);
-
-    /* handle errors */
-    if(!ptr) {
-	printf("Could not allocate palette.\n");
-	exit(-1);
-    }
-
-    return ptr;
-}
-
-
-void
-modexLoadPalFile(byte *filename, byte **palette) {
-    FILE *file;
-    byte *ptr;
-
-    /* free the palette if it exists */
-    if(*palette) {
-	free(*palette);
-    }
-
-    /* allocate the new palette */
-    *palette = modexNewPal();
-
-    /* open the file */
-    file = fopen(filename, "rb");
-    if(!file) {
-	printf("Could not open palette file: %s\n", filename);
-	exit(-2);
-    }
-
-    /* read the file */
-    ptr = *palette;
-    while(!feof(file)) {
-	*ptr++ = fgetc(file);
-    }
-
-    fclose(file);
-}
-
-
-void
-modexSavePalFile(char *filename, byte *pal) {
-    unsigned int i;
-    FILE *file;
-
-    /* open the file for writing */
-    file = fopen(filename, "wb");
-    if(!file) {
-	printf("Could not open %s for writing\n", filename);
-	exit(-2);
-    }
-
-    /* write the data to the file */
-    fwrite(pal, 1, PAL_SIZE, file);
-    fclose(file);
-}
-
-
-/* blanking */
-void
-modexPalBlack() {
-    fadePalette(-1, 64, 1, tmppal);
-}
-
-
-void
-modexPalWhite() {
-    fadePalette(-1, -64, 1, tmppal);
-}
-
-
-/* utility */
-void
-modexPalUpdate(bitmap_t *bmp, word *i, word qp, word aqoffset)
-{
-	byte *p = bmp->palette;
-	word w=0;
-	word q=0;
-	word qq=0;
-	static word a[PAL_SIZE];	//palette array of change values!
-	word z=0, aq=0, aa=0, pp=0;
-
-	modexWaitBorder();
-	if((*i)==0)
-	{
-		memset(a, -1, sizeof(a));
-		outp(PAL_WRITE_REG, 0);  /* start at the beginning of palette */
-	}
-	else if(qp==0)
-	{
-		q=(*i);
-	}
-	else
-	{
-		q=(*i);
-		qq=(*i)/3;
-//		printf("q: %02d\n", (q));
-//		printf("qq: %02d\n", (qq));
-		//printf("	(*i)-q=%02d\n", (*i)-q);
-		outp(PAL_WRITE_REG, qq);  /* start at the beginning of palette */
-	}
-	if((*i)<PAL_SIZE/2 && w==0)
-	{
-		for(; (*i)<PAL_SIZE/2; (*i)++)
-		{
-			//if(i%3==0 && (p[i+5]==p[i+4] && p[i+4]==p[i+3] && p[i+3]==p[i+2] && p[i+2]==p[i+1] && p[i+1]==p[i] && p[i+5]==p[i]))
-//____			if((qp>0)&&((*i)-q)%3==0 && (p[((*i)-q)]==p[((*i)-q)+3] && p[((*i)-q)+1]==p[((*i)-q)+4] && p[((*i)-q)+2]==p[((*i)-q)+5])) outp(PAL_DATA_REG, p[(*i)-q]); else
-			if(((((*i)-q)%3==0)) && (p[((*i)-q)]==p[((*i)-q)+3] && p[((*i)-q)+1]==p[((*i)-q)+4] && p[((*i)-q)+2]==p[((*i)-q)+5]))
-			{
-				w++;
-				break;
-			}
-			else if(qp>0 && (*i)>=(qp) && (*i)<((qp)+3))
-			{
-				//printf("qp=%d\n", qp);
-				//printf("		(*i)=%d	a[%d]=%d\n", (*i), qp, a[qp]);
-				printf("		%d's color=%d\n", (*i), (a[qp])-(bmp->offset*3)+qp);
-				//outp(PAL_DATA_REG, p[((a[qp])-(bmp->offset*3)+qp)]);// fix this shit!
-				if((*i)+1==(qp)+3){ w++; /*(*i)++;*/ break; }
-			}
-			else
-			{
-				if(bmp->offset==0 && (*i)<3 && q==0) outp(PAL_DATA_REG, 0);
-				else
-				if(qp==0) outp(PAL_DATA_REG, p[(*i)-q]);
-				else{ //outp(PAL_DATA_REG, p[((*i)-(bmp->offset*3)+qp)]);
-				printf("p[]=%d	qp=%d	p[]-qp=%d\n", ((*i)-(bmp->offset*3)), qp, ((*i)-(bmp->offset*3))+qp); }
-			}
-		}
-		//if(qp>0) printf("qp=%d\n", qp);
-		//if(qp>0) printf("						(*i)=%d\n", (*i)/3);
-	}
-	modexWaitBorder();	    /* waits one retrace -- less flicker */
-	if((*i)>=PAL_SIZE/2 && w==0)
-	{
-		for(; (*i)<PAL_SIZE; (*i)++)
-		{
-//____			if((qp>0)&&((*i)-q)%3==0 && (p[((*i)-q)]==p[((*i)-q)+3] && p[((*i)-q)+1]==p[((*i)-q)+4] && p[((*i)-q)+2]==p[((*i)-q)+5])) outp(PAL_DATA_REG, p[(*i)-q]); else
-			if(((((*i)-q)%3==0)) && (p[((*i)-q)]==p[((*i)-q)+3] && p[((*i)-q)+1]==p[((*i)-q)+4] && p[((*i)-q)+2]==p[((*i)-q)+5]))
-			{
-				w++;
-				break;
-			}
-			else if(qp>0 && (*i)>=(qp) && (*i)<((qp)+3))
-			{
-				//printf("qp=%d\n", qp);
-				//printf("		(*i)=%d	a[%d]=%d\n", (*i), qp, a[qp]);
-				printf("		%d's color=%d\n", (*i), (a[qp]-(bmp->offset*3)+qp));
-				//outp(PAL_DATA_REG, p[((a[qp])-(bmp->offset*3)+qp)]);// fix this shit!
-				if((*i)+1==(qp)+3){ w++; /*(*i)++;*/ break; }
-			}
-			else
-			{
-				if(qp==0) outp(PAL_DATA_REG, p[(*i)-q]);
-				else{ //outp(PAL_DATA_REG, p[((*i)-(bmp->offset*3)+qp)]);
-				printf("p[]=%d	qp=%d	p[]-qp=%d\n", ((*i)-(bmp->offset*3)), qp, ((*i)-(bmp->offset*3))+qp); }
-			}
-		}
-		//printf("						(*i)=%d\n", (*i)/3);
-	}
-
-printf("\nqqqqqqqq\n\n");
-
-	//palette checker~
-	if(q>0 && qp==0)
-	{
-		long lq;
-		long bufSize = (bmp->width * bmp->height);
-		pp = q;
-		//printf("1(*i)=%02d\n", (*i)/3);
-		//printf("1z=%02d\n", z/3);
-		chkcolor(bmp, &q, &a, &aa, &z, i);
-		//printf("2(*i)=%02d\n", (*i)/3);
-		//printf("2z=%02d\n", z/3);
-		aq=0;
-aqpee:
-		while(aq<=aa)
-		{
-//			printf("a[%02d]=(%d)\n", aq, a[aq]);
-			if(a[aq]==-1) aq++;
-			else { aqoffset++; break; }
-		}
-//update the image data here!
-	for(lq=0; lq<bufSize; lq++)
-	{
-				/*
-									note to self
-									use a[qp] instead of bmp->offset for this spot!
-									NO! wwww
-				*/
-
-				/*
-				Facking bloody point the values of the changed palette to correct values.... major confusion! wwww
-				*/
-
-		//(offset/bmp->offset)*bmp->offset
-
-
-		//printf("%02d ",bmp->data[lq]+bmp->offset);
-		//if(lq > 0 && lq%bmp->width==0) printf("\n");
-		//printf("%02d_", bmp->data[lq]+bmp->offset);
-		/*if(bmp->data[lq]+bmp->offset==aq)
-		{
-			//printf("%02d", bmp->data[lq]);
-			//printf("\n%02d\n", bmp->offset);
-			printf("aq=%02d	", aq);
-			printf("a[aq]=%02d	", a[aq]);
-			printf("a[aq]+aqpp=%02d	", a[aq]+aqpp);
-			printf("a[aq]-aqpp=%02d\n", a[aq]-aqpp);
-			//bmp->data[lq]=((bmp->data[lq]+bmp->offset)-a[aq]);
-//++++			bmp->data[lq]=a[aq]-aqpp;
-//			printf("_%d ", bmp->data[lq]);
-			//if(lq > 0 && lq%bmp->width==0) printf("\n");
-		}
-		else if(bmp->data[lq]+bmp->offset < ((*i)/3)-aqpp)
-		{
-			if(bmp->data[lq]+bmp->offset >= aq)
-			{
-				bmp->data[lq]=(bmp->data[lq]+bmp->offset)-aqpp;//-((z-(*i))/3);
-				//printf("_%d ", bmp->data[lq]+bmp->offset)-aqpp-((z-(*i))/3);
-			}
-			else bmp->data[lq]+=(bmp->offset-aqpp);
-		}*/
-
-		//printf("%02d`", bmp->data[lq]);
-		//if(lq > 0 && lq%bmp->width==0) printf("\n");
-	}
-
-//printf("		aq=%02d\n", aq);
-//printf("		aa=%02d\n", aa);
-
-	//update the palette~
-	modexPalUpdate(bmp, &pp, aq, aqoffset);
-	(*i)=pp;
-
-	if(aq<aa){ pp=q; aq++; goto aqpee; }
-	}
-}
-
-void
-modexPalUpdate1(byte *p)
-{
-	int i;
-	modexWaitBorder();
-	outp(PAL_WRITE_REG, 0);  /* start at the beginning of palette */
-	for(i=0; i<PAL_SIZE/2; i++)
-	{
-		outp(PAL_DATA_REG, p[i]);
-	}
-	modexWaitBorder();	    /* waits one retrace -- less flicker */
-	for(; i<PAL_SIZE; i++)
-	{
-		outp(PAL_DATA_REG, p[(i)]);
-	}
-}
-
-void
-modexPalUpdate0(byte *p)
-{
-	int i;
-	modexWaitBorder();
-	outp(PAL_WRITE_REG, 0);  /* start at the beginning of palette */
-	for(i=0; i<PAL_SIZE/2; i++)
-	{
-		outp(PAL_DATA_REG, rand());
-	}
-	modexWaitBorder();	    /* waits one retrace -- less flicker */
-	for(; i<PAL_SIZE; i++)
-	{
-		outp(PAL_DATA_REG, rand());
-	}
-}
-
-//color checker~
-//i want to make another vesion that checks the palette when the palette is being appened~
-void chkcolor(bitmap_t *bmp, word *q, word *a, word *aa, word *z, word *i/*, word *offset*/)
-{
-		byte *pal;
-		word zz=0;
-		pal = modexNewPal();
-		modexPalSave(pal);
-		//printf("q: %02d\n", (*q));
-		printf("chkcolor start~\n");
-		printf("1				(*z): %d\n", (*z)/3);
-		printf("1				(*i): %d\n", (*i)/3);
-//		printf("1 offset of color in palette	(*q): %d\n", (*q)/3);
-		printf("wwwwwwwwwwwwwwww\n");
-		//check palette for dups
-		for(; (*z)<PAL_SIZE; (*z)+=3)
-		{
-			//printf("\n		z: %d\n", (*z));
-			//printf("		q: %d\n", (*q));
-			//printf("		z+q: %d\n\n", ((*z)+(*q)));
-			//if((*z)%3==0)
-			//{
-//----				if(pal[(*z)]==pal[(*z)+3] && pal[(*z)+1]==pal[(*z)+4] && pal[(*z)+2]==pal[(*z)+5])
-				if((*z)==(*i))
-				{
-//					printf("\n%d	[%02d][%02d][%02d]\n", (*z), pal[(*z)], pal[(*z)+1], pal[(*z)+2]);
-//					printf("%d	[%02d][%02d][%02d]\n\n", (*z)+3, pal[(*z)+3], pal[(*z)+4], pal[(*z)+5]);
-//0000					(*z)-=3;
-					break;
-				}
-				else for(zz=0; zz<(*q); zz+=3)
-				{
-					//printf("zz: %02d\n", zz/3);
-					if(zz%3==0)
-					{
-						if(pal[((*z)+(*q))]==pal[((*z)+(*q))+3] && pal[((*z)+(*q))+1]==pal[((*z)+(*q))+4] && pal[((*z)+(*q))+2]==pal[((*z)+(*q))+5])	//break if duplicate colors found in palette because it have reached the end of the current data of the palette
-						{
-//							(*z)-=3;
-//							(*i)-=3;
-//							printf("\nzq1:%d[%02d][%02d][%02d]\n", (zz+q), pal[(zz+q)], pal[(zz+q)+1], pal[(zz+q)+2]);
-//							printf("zq2:%d[%02d][%02d][%02d]\n\n", (zz+q)+3, pal[(zz+q)+3], pal[(zz+q)+4], pal[(zz+q)+5]);
-							break;
-						}
-						else if(pal[zz]==pal[((*z)+(*q))] && pal[zz+1]==pal[((*z)+(*q))+1] && pal[zz+2]==pal[((*z)+(*q))+2])
-						{
-//							printf("\n\nwwwwwwwwwwwwwwww\n");
-//							printf("	zq: %d	[%02d][%02d][%02d] value that is needing to be changed~\n", ((*z)+(*q))/3, pal[((*z)+(*q))], pal[((*z)+(*q))+1], pal[((*z)+(*q))+2]);
-//							printf("	zz: %d	[%02d][%02d][%02d] value that the previous value is going to change to~\n", (zz)/3, pal[zz], pal[zz+1], pal[zz+2]);
-//							//printf("	zv: %d	[%02d][%02d][%02d] wwww\n", (zz-z+q)/3, pal[(zz-z+q)], pal[(zz-z+q)+1], pal[(zz-z+q)+2]);
-//							printf("	z : %d	[%02d][%02d][%02d] offset value~\n", (*z)/3, pal[(*z)], pal[(*z)+1], pal[(*z)+2]);
-//++++							(*i)--;
-//							(*z)--;
-							//expand dong here
-/*
-planned features that i plan to implement~
-image that has values on the pallete list!
-wwww
-no... wait.... no wwww
-*/
-							//for(zzii=0; zzii<3; zzii++)
-							//{
-								//printf("z+q: %d\n\n", ((*z)+(*q)));
-								a[(((*z)+(*q)))]=zz;
-							//}
-							(*aa)=(((*z)+(*q)));
-							printf("!!					a[%02d]: %d\n", (((*z)+(*q))/3), zz/3);
-//							printf("\n		aa: %d\n\n", (*aa));
-//							printf("	a[%02d]=(%02d) offset array i think the palette should be updated again~\n", ((*z)+(*q))/3, a[((*z)+(*q))/3]);
-//							printf("wwwwwwwwwwwwwwww\n\n");
-						}
-						/*else
-						{
-							printf("================\n");
-							printf("zq: %d	[%02d][%02d][%02d]\n", ((*z)+(*q))/3, pal[((*z)+(*q))], pal[((*z)+(*q))+1], pal[((*z)+(*q))+2]);
-							printf("zz: %d	[%02d][%02d][%02d]\n", (zz)/3, pal[zz], pal[zz+1], pal[zz+2]);
-							printf("z : %d	[%02d][%02d][%02d]\n", (*z)/3, pal[(*z)], pal[(*z)+1], pal[(*z)+2]);
-							printf("================\n");
-						}*/
-						//printf("[%d]", (zz+q));
-					}
-				}
-		}
-		printf("wwwwwwwwwwwwwwww\n");
-		printf("2				(*z): %d\n", (*z)/3);
-		printf("2				(*i): %d\n", (*i)/3);
-//		printf("2 offset of color in palette	(*q): %d\n", (*q)/3);
-		printf("chkcolor end~\n");
-		free(pal);
-}
-
-void modexpixelwr(word xx, word yy, word PageBase, word Color)
-{
-	word x=xx;
-	word y=yy;
-	__asm
-	{
-		push    bp                      //preserve caller’s stack frame
-		mov     bp,sp                   //point to local stack frame
-
-		mov     ax,SCREEN_WIDTH
-		mul     [bp+4/*y*/]                  //offset of pixel’s scan line in page
-		mov     bx,[bp+4/*x*/]
-		shr     bx,1
-		shr     bx,1                    //X/4 = offset of pixel in scan line
-		add     bx,ax                   //offset of pixel in page
-		add     bx,[bp+0/*PageBase*/]        //offset of pixel in display memory
-		mov     ax,SCREEN_SEG
-		mov     es,ax                   //point ES:BX to the pixel’s address
-
-		mov     cl,byte ptr [bp+4/*x*/]
-		and	cl,011b                 //CL = pixel’s plane
-		mov	ax,0100h + MAP_MASK     //AL = index in SC of Map Mask reg
-		shl		ah,cl                   //set only the bit for the pixel’s plane to 1
-		mov	dx,SC_INDEX             //set the Map Mask to enable only the
-		out	dx,ax                   // pixel’s plane
-
-		mov	al,byte ptr [bp+15/*Color*/]
-		mov	es:[bx],al              //draw the pixel in the desired color
-
-		pop     bp                      //restore caller’s stack frame
-	}
-}
-
+/* Project 16 Source Code~
+ * Copyright (C) 2012-2015 sparky4 & pngwen & andrius4669
+ *
+ * This file is part of Project 16.
+ *
+ * Project 16 is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Project 16 is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>, or
+ * write to the Free Software Foundation, Inc., 51 Franklin Street,
+ * Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+#include <dos.h>
+#include <string.h>
+#include <mem.h>
+#include <conio.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include "src/lib/modex16.h"
+
+byte far* VGA=(byte far*) 0xA0000000;   /* this points to video memory. */
+
+static void fadePalette(sbyte fade, sbyte start, word iter, byte *palette);
+static byte tmppal[PAL_SIZE];
+
+static void
+vgaSetMode(byte mode)
+{
+  union REGS regs;
+
+  regs.h.ah = SET_MODE;
+  regs.h.al = mode;
+  int86(VIDEO_INT, &regs, &regs);
+}
+
+
+/* -========================= Entry  Points ==========================- */
+void
+modexEnter() {
+    word i;
+    dword far*ptr=(dword far*)VGA;      /* used for faster screen clearing */
+    word CRTParms[] = {
+        0x0d06,         /* vertical total */
+        0x3e07,         /* overflow (bit 8 of vertical counts) */
+        0x4109,         /* cell height (2 to double-scan */
+        0xea10,         /* v sync start */
+        0xac11,         /* v sync end and protect cr0-cr7 */
+        0xdf12,         /* vertical displayed */
+        0x0014,         /* turn off dword mode */
+        0xe715,         /* v blank start */
+        0x0616,         /* v blank end */
+        0xe317          /* turn on byte mode */
+    };
+    int CRTParmCount = sizeof(CRTParms) / sizeof(CRTParms[0]);
+
+    /* TODO save current video mode and palette */
+    vgaSetMode(VGA_256_COLOR_MODE);
+
+    /* disable chain4 mode */
+    outpw(SC_INDEX, 0x0604);
+
+    /* synchronous reset while setting Misc Output */
+    outpw(SC_INDEX, 0x0100);
+
+    /* select 25 MHz dot clock & 60 Hz scanning rate */
+    outp(MISC_OUTPUT, 0xe3);
+
+    /* undo reset (restart sequencer) */
+    outpw(SC_INDEX, 0x0300);
+
+    /* reprogram the CRT controller */
+    outp(CRTC_INDEX, 0x11); /* VSync End reg contains register write prot */
+    outp(CRTC_DATA, 0x7f);  /* get current write protect on varios regs */
+
+    /* send the CRTParms */
+    for(i=0; i<CRTParmCount; i++) {
+        outpw(CRTC_INDEX, CRTParms[i]);
+    }
+
+    /* clear video memory */
+    outpw(SC_INDEX, 0x0f02);
+    for(i=0; i<0x8000; i++) {
+        ptr[i] = 0x0000;
+    }
+}
+
+
+void
+modexLeave() {
+    /* TODO restore original mode and palette */
+    vgaSetMode(TEXT_MODE);
+}
+
+
+page_t
+modexDefaultPage() {
+    page_t page;
+
+    /* default page values */
+    page.data = VGA;
+    page.dx = 0;
+    page.dy = 0;
+    page.width = SCREEN_WIDTH;
+    page.height = SCREEN_HEIGHT;
+        page.id = 0;
+
+    return page;
+}
+
+/* returns the next page in contiguous memory
+ * the next page will be the same size as p, by default
+ */
+page_t
+modexNextPage(page_t *p) {
+    page_t result;
+
+    result.data = p->data + (p->width/4)*p->height;  /* compute the offset */
+    result.dx = 0;
+    result.dy = 0;
+    result.width = p->width;
+    result.height = p->height;
+        result.id = p->id+1;
+
+    return result;
+}
+
+//next page with defined dimentions~
+page_t
+modexNextPage0(page_t *p, word x, word y)
+{
+        page_t result;
+
+        result.data = p->data + (p->width/4)*p->height;  /* compute the offset */
+        result.dx = 0;
+        result.dy = 0;
+        result.width = x;
+        result.height = y;
+        result.id = p->id+1;
+
+    return result;
+}
+
+
+void
+modexShowPage(page_t *page) {
+    word high_address;
+    word low_address;
+    word offset;
+    byte crtcOffset;
+
+    /* calculate offset */
+    offset = (word) page->data;
+    offset += page->dy * (page->width >> 2 );
+    offset += page->dx >> 2;
+
+    /* calculate crtcOffset according to virtual width */
+    crtcOffset = page->width >> 3;
+
+    high_address = HIGH_ADDRESS | (offset & 0xff00);
+    low_address  = LOW_ADDRESS  | (offset << 8);
+
+    /* wait for appropriate timing and then program CRTC */
+    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 */
+    while (!(inp(INPUT_STATUS_1) & VRETRACE));
+
+    /* do PEL panning here */
+    outp(AC_INDEX, 0x33);
+    outp(AC_INDEX, (page->dx & 0x03) << 1);
+}
+
+
+void
+modexPanPage(page_t *page, int dx, int dy) {
+    page->dx = dx;
+    page->dy = dy;
+}
+
+
+void
+modexSelectPlane(byte plane) {
+    outp(SC_INDEX, MAP_MASK);          /* select plane */
+    outp(SC_DATA,  plane);
+}
+
+
+void
+modexClearRegion(page_t *page, int x, int y, int w, int h, byte  color) {
+    word pageOff = (word) page->data;
+    word xoff=x/4;       /* xoffset that begins each row */
+    word scanCount=w/4;  /* number of iterations per row (excluding right clip)*/
+    word poffset = pageOff + y*(page->width/4) + xoff; /* starting offset */
+    word nextRow = page->width/4-scanCount-1;  /* loc of next row */
+    byte lclip[] = {0x0f, 0x0e, 0x0c, 0x08};  /* clips for rectangles not on 4s */
+    byte rclip[] = {0x00, 0x01, 0x03, 0x07};
+    byte left = lclip[x&0x03];
+    byte right = rclip[(x+w)&0x03];
+
+    /* handle the case which requires an extra group */
+    if((x & 0x03) && !((x+w) & 0x03)) {
+      right=0x0f;
+    }
+
+    __asm {
+                MOV AX, SCREEN_SEG      ; go to the VGA memory
+                MOV ES, AX
+                MOV DI, poffset         ; go to the first pixel
+                MOV DX, SC_INDEX        ; point to the map mask
+                MOV AL, MAP_MASK
+                OUT DX, AL
+                INC DX
+                MOV AL, color           ; get ready to write colors
+        SCAN_START:
+                MOV CX, scanCount       ; count the line
+                MOV BL, AL              ; remember color
+                MOV AL, left            ; do the left clip
+                OUT DX, AL              ; set the left clip
+                MOV AL, BL              ; restore color
+                STOSB                   ; write the color
+                DEC CX
+                JZ SCAN_DONE            ; handle 1 group stuff
+
+                ;-- write the main body of the scanline
+                MOV BL, AL              ; remember color
+                MOV AL, 0x0f            ; write to all pixels
+                OUT DX, AL
+                MOV AL, BL              ; restore color
+                REP STOSB               ; write the color
+        SCAN_DONE:
+                MOV BL, AL              ; remeber color
+                MOV AL, right
+                OUT DX, AL              ; do the right clip
+                MOV AL, BL              ; restore color
+                STOSB                   ; write pixel
+                ADD DI, nextRow         ; go to the next row
+                DEC h
+                JNZ SCAN_START
+    }
+}
+
+
+void
+oldDrawBmp(byte far* page, int x, int y, bitmap_t *bmp, byte sprite)
+{
+        byte plane;
+        word px, py;
+        word offset;
+
+        /* TODO Make this fast.  It's SLOOOOOOW */
+        for(plane=0; plane < 4; plane++) {
+                modexSelectPlane(PLANE(plane+x));
+                for(px = plane; px < bmp->width; px+=4) {
+                        offset=px;
+                        for(py=0; py<bmp->height; py++) {
+                        if(!sprite || bmp->data[offset])
+                                page[PAGE_OFFSET(x+px, y+py)] = bmp->data[offset];
+                        offset+=bmp->width;
+                        }
+                }
+        }
+}
+
+
+void
+modexDrawBmp(page_t *page, int x, int y, bitmap_t *bmp) {
+    /* draw the region (the entire freakin bitmap) */
+    modexDrawBmpRegion(page, x, y, 0, 0, bmp->width, bmp->height, bmp);
+}
+
+
+void
+modexDrawBmpRegion(page_t *page, int x, int y,
+                   int rx, int ry, int rw, int rh, bitmap_t *bmp) {
+    word poffset = (word) page->data  + y*(page->width/4) + x/4;
+    byte *data = bmp->data;//+bmp->offset;
+    word bmpOffset = (word) data + ry * bmp->width + rx;
+    word width = rw;
+    word height = rh;
+    byte plane = 1 << ((byte) x & 0x03);
+    word scanCount = width/4 + (width%4 ? 1 :0);
+    word nextPageRow = page->width/4 - scanCount;
+    word nextBmpRow = (word) bmp->width - width;
+    word rowCounter;
+    byte planeCounter = 4;
+
+        //code is a bit slow here
+    __asm {
+                MOV AX, SCREEN_SEG      ; go to the VGA memory
+                MOV ES, AX
+
+                MOV DX, SC_INDEX        ; point at the map mask register
+                MOV AL, MAP_MASK        ;
+                OUT DX, AL              ;
+
+        PLANE_LOOP:
+                MOV DX, SC_DATA         ; select the current plane
+                MOV AL, plane           ;
+                OUT DX, AL              ;
+
+                ;-- begin plane painting
+                MOV AX, height          ; start the row counter
+                MOV rowCounter, AX      ;
+                MOV DI, poffset         ; go to the first pixel
+                MOV SI, bmpOffset       ; go to the bmp pixel
+        ROW_LOOP:
+                MOV CX, width           ; count the columns
+        SCAN_LOOP:
+                MOVSB                   ; copy the pixel
+                SUB CX, 3               ; we skip the next 3
+                ADD SI, 3               ; skip the bmp pixels
+                LOOP SCAN_LOOP          ; finish the scan
+
+                MOV AX, nextPageRow
+                ADD DI, AX              ; go to the next row on screen
+                MOV AX, nextBmpRow
+                ADD SI, AX              ; go to the next row on bmp
+
+                DEC rowCounter
+                JNZ ROW_LOOP            ; do all the rows
+                ;-- end plane painting
+
+                MOV AL, plane           ; advance to the next plane
+                SHL AL, 1               ;
+                AND AL, 0x0f            ; mask the plane properly
+                MOV plane, AL           ; store the plane
+
+                INC bmpOffset           ; start bmp at the right spot
+
+                DEC planeCounter
+                JNZ PLANE_LOOP          ; do all 4 planes
+    }
+}
+
+
+void
+modexDrawPlanarBuf(page_t *page, int x, int y, planar_buf_t *bmp) {
+    /* TODO - adapt from test code */
+        int plane;
+        for(plane=0; plane < 4; plane++)
+        {
+                //fack
+        }
+}
+
+
+void
+modexDrawSprite(page_t *page, int x, int y, bitmap_t *bmp) {
+    /* draw the whole sprite */
+    modexDrawSpriteRegion(page, x, y, 0, 0, bmp->width, bmp->height, bmp);
+}
+
+void
+modexDrawSpriteRegion(page_t *page, int x, int y,
+                      int rx, int ry, int rw, int rh, bitmap_t *bmp) {
+    word poffset = (word)page->data + y*(page->width/4) + x/4;
+    byte *data = bmp->data;//+bmp->offset;
+    word bmpOffset = (word) data + ry * bmp->width + rx;
+    word width = rw;
+    word height = rh;
+    byte plane = 1 << ((byte) x & 0x03);
+    word scanCount = width/4 + (width%4 ? 1 :0);
+    word nextPageRow = page->width/4 - scanCount;
+    word nextBmpRow = (word) bmp->width - width;
+    word rowCounter;
+    byte planeCounter = 4;
+
+    __asm {
+                MOV AX, SCREEN_SEG      ; go to the VGA memory
+                MOV ES, AX
+
+                MOV DX, SC_INDEX        ; point at the map mask register
+                MOV AL, MAP_MASK        ;
+                OUT DX, AL              ;
+
+        PLANE_LOOP:
+                MOV DX, SC_DATA         ; select the current plane
+                MOV AL, plane           ;
+                OUT DX, AL              ;
+
+                ;-- begin plane painting
+                MOV AX, height          ; start the row counter
+                MOV rowCounter, AX      ;
+                MOV DI, poffset         ; go to the first pixel
+                MOV SI, bmpOffset       ; go to the bmp pixel
+        ROW_LOOP:
+                MOV CX, width           ; count the columns
+        SCAN_LOOP:
+                LODSB
+                DEC SI
+                CMP AL, 0
+                JNE DRAW_PIXEL          ; draw non-zero pixels
+
+                INC DI                  ; skip the transparent pixel
+                ADD SI, 1
+                JMP NEXT_PIXEL
+        DRAW_PIXEL:
+                MOVSB                   ; copy the pixel
+        NEXT_PIXEL:
+                SUB CX, 3               ; we skip the next 3
+                ADD SI, 3               ; skip the bmp pixels
+                LOOP SCAN_LOOP          ; finish the scan
+
+                MOV AX, nextPageRow
+                ADD DI, AX              ; go to the next row on screen
+                MOV AX, nextBmpRow
+                ADD SI, AX              ; go to the next row on bmp
+
+                DEC rowCounter
+                JNZ ROW_LOOP            ; do all the rows
+                ;-- end plane painting
+
+                MOV AL, plane           ; advance to the next plane
+                SHL AL, 1               ;
+                AND AL, 0x0f            ; mask the plane properly
+                MOV plane, AL           ; store the plane
+
+                INC bmpOffset           ; start bmp at the right spot
+
+                DEC planeCounter
+                JNZ PLANE_LOOP          ; do all 4 planes
+    }
+}
+
+
+/* copy a region of video memory from one page to another.
+ * It assumes that the left edge of the tile is the same on both
+ * regions and the memory areas do not overlap.
+ */
+void
+modexCopyPageRegion(page_t *dest, page_t *src,
+                    word sx, word sy,
+                    word dx, word dy,
+                    word width, word height)
+{
+    word doffset = (word)dest->data + dy*(dest->width/4) + dx/4;
+    word soffset = (word)src->data + sy*(src->width/4) + sx/4;
+    word scans   = width/4;
+    word nextSrcRow = src->width/4 - scans - 1;
+    word nextDestRow = dest->width/4 - scans - 1;
+    byte lclip[] = {0x0f, 0x0e, 0x0c, 0x08};  /* clips for rectangles not on 4s */
+    byte rclip[] = {0x0f, 0x01, 0x03, 0x07};
+    byte left = lclip[sx&0x03];
+    byte right = rclip[(sx+width)&0x03];
+
+    __asm {
+                MOV AX, SCREEN_SEG      ; work in the vga space
+                MOV ES, AX              ;
+                MOV DI, doffset         ;
+                MOV SI, soffset         ;
+
+                MOV DX, GC_INDEX        ; turn off cpu bits
+                MOV AX, 0008h           ;
+                OUT DX, AX
+
+                MOV AX, SC_INDEX        ; point to the mask register
+                MOV DX, AX              ;
+                MOV AL, MAP_MASK        ;
+                OUT DX, AL              ;
+                INC DX                  ;
+
+        ROW_START:
+                PUSH DS
+                MOV AX, ES
+                MOV DS, AX
+                MOV CX, scans           ; the number of latches
+
+                MOV AL, left            ; do the left column
+                OUT DX, AL              ;
+                MOVSB                   ;
+                DEC CX                  ;
+
+                MOV AL, 0fh             ; do the inner columns
+                OUT DX, AL
+                REP MOVSB               ; copy the pixels
+
+                MOV AL, right           ; do the right column
+                OUT DX, AL
+                MOVSB
+                POP DS
+
+                MOV AX, SI              ; go the start of the next row
+                ADD AX, nextSrcRow      ;
+                MOV SI, AX              ;
+                MOV AX, DI              ;
+                ADD AX, nextDestRow     ;
+                MOV DI, AX              ;
+
+                DEC height              ; do the rest of the actions
+                JNZ ROW_START           ;
+
+                MOV DX, GC_INDEX+1      ; go back to CPU data
+                MOV AL, 0ffh            ; none from latches
+                OUT DX, AL              ;
+    }
+}
+
+
+/* fade and flash */
+void
+modexFadeOn(word fade, byte *palette) {
+    fadePalette(-fade, 64, 64/fade+1, palette);
+}
+
+
+void
+modexFadeOff(word fade, byte *palette) {
+    fadePalette(fade, 0, 64/fade+1, palette);
+}
+
+
+void
+modexFlashOn(word fade, byte *palette) {
+    fadePalette(fade, -64, 64/fade+1, palette);
+}
+
+
+void
+modexFlashOff(word fade, byte *palette) {
+    fadePalette(-fade, 0, 64/fade+1, palette);
+}
+
+
+static void
+fadePalette(sbyte fade, sbyte start, word iter, byte *palette) {
+    word i;
+    byte dim = start;
+
+    /* handle the case where we just update */
+    if(iter == 0) {
+        modexPalUpdate1(palette);
+        return;
+    }
+
+    while(iter > 0) {  /* FadeLoop */
+        for(i=0; i<PAL_SIZE; i++) { /* loadpal_loop */
+            tmppal[i] = palette[i] - dim;
+            if(tmppal[i] > 127) {
+                tmppal[i] = 0;
+            } else if(tmppal[i] > 63) {
+                tmppal[i] = 63;
+            }
+        }
+        modexPalUpdate1(tmppal);
+        iter--;
+        dim += fade;
+    }
+}
+
+
+/* save and load */
+void
+modexPalSave(byte *palette) {
+    int  i;
+
+    outp(PAL_READ_REG, 0);      /* start at palette entry 0 */
+    for(i=0; i<PAL_SIZE; i++) {
+        palette[i] = inp(PAL_DATA_REG); /* read the palette data */
+    }
+}
+
+
+byte *
+modexNewPal() {
+    byte *ptr;
+    ptr = malloc(PAL_SIZE);
+
+    /* handle errors */
+    if(!ptr) {
+        printf("Could not allocate palette.\n");
+        exit(-1);
+    }
+
+    return ptr;
+}
+
+
+void
+modexLoadPalFile(byte *filename, byte **palette) {
+    FILE *file;
+    byte *ptr;
+
+    /* free the palette if it exists */
+    if(*palette) {
+        free(*palette);
+    }
+
+    /* allocate the new palette */
+    *palette = modexNewPal();
+
+    /* open the file */
+    file = fopen(filename, "rb");
+    if(!file) {
+        printf("Could not open palette file: %s\n", filename);
+        exit(-2);
+    }
+
+    /* read the file */
+    ptr = *palette;
+    while(!feof(file)) {
+        *ptr++ = fgetc(file);
+    }
+
+    fclose(file);
+}
+
+
+void
+modexSavePalFile(char *filename, byte *pal) {
+    unsigned int i;
+    FILE *file;
+
+    /* open the file for writing */
+    file = fopen(filename, "wb");
+    if(!file) {
+        printf("Could not open %s for writing\n", filename);
+        exit(-2);
+    }
+
+    /* write the data to the file */
+    fwrite(pal, 1, PAL_SIZE, file);
+    fclose(file);
+}
+
+
+/* blanking */
+void
+modexPalBlack() {
+    fadePalette(-1, 64, 1, tmppal);
+}
+
+
+void
+modexPalWhite() {
+    fadePalette(-1, -64, 1, tmppal);
+}
+
+
+/* utility */
+void
+modexPalUpdate(bitmap_t *bmp, word *i, word qp, word aqoffset)
+{
+        byte *p = bmp->palette;
+        word w=0;
+        word q=0;
+        word qq=0;
+        static word a[PAL_SIZE];        //palette array of change values!
+        word z=0, aq=0, aa=0, pp=0;
+
+        modexWaitBorder();
+        if((*i)==0)
+        {
+                memset(a, -1, sizeof(a));
+                outp(PAL_WRITE_REG, 0);  /* start at the beginning of palette */
+        }
+        else if(qp==0)
+        {
+                q=(*i);
+        }
+        else
+        {
+                q=(*i);
+                qq=(*i)/3;
+//              printf("q: %02d\n", (q));
+//              printf("qq: %02d\n", (qq));
+                //printf("      (*i)-q=%02d\n", (*i)-q);
+                outp(PAL_WRITE_REG, qq);  /* start at the beginning of palette */
+        }
+        if((*i)<PAL_SIZE/2 && w==0)
+        {
+                for(; (*i)<PAL_SIZE/2; (*i)++)
+                {
+                        //if(i%3==0 && (p[i+5]==p[i+4] && p[i+4]==p[i+3] && p[i+3]==p[i+2] && p[i+2]==p[i+1] && p[i+1]==p[i] && p[i+5]==p[i]))
+//____                  if((qp>0)&&((*i)-q)%3==0 && (p[((*i)-q)]==p[((*i)-q)+3] && p[((*i)-q)+1]==p[((*i)-q)+4] && p[((*i)-q)+2]==p[((*i)-q)+5])) outp(PAL_DATA_REG, p[(*i)-q]); else
+                        if(((((*i)-q)%3==0)) && (p[((*i)-q)]==p[((*i)-q)+3] && p[((*i)-q)+1]==p[((*i)-q)+4] && p[((*i)-q)+2]==p[((*i)-q)+5]))
+                        {
+                                w++;
+                                break;
+                        }
+                        else if(qp>0 && (*i)>=(qp) && (*i)<((qp)+3))
+                        {
+                                //printf("qp=%d\n", qp);
+                                //printf("              (*i)=%d a[%d]=%d\n", (*i), qp, a[qp]);
+                                printf("                %d's color=%d\n", (*i), (a[qp])-(bmp->offset*3)+qp);
+                                //outp(PAL_DATA_REG, p[((a[qp])-(bmp->offset*3)+qp)]);// fix this shit!
+                                if((*i)+1==(qp)+3){ w++; /*(*i)++;*/ break; }
+                        }
+                        else
+                        {
+                                if(bmp->offset==0 && (*i)<3 && q==0) outp(PAL_DATA_REG, 0);
+                                else
+                                if(qp==0) outp(PAL_DATA_REG, p[(*i)-q]);
+                                else{ //outp(PAL_DATA_REG, p[((*i)-(bmp->offset*3)+qp)]);
+                                printf("p[]=%d  qp=%d   p[]-qp=%d\n", ((*i)-(bmp->offset*3)), qp, ((*i)-(bmp->offset*3))+qp); }
+                        }
+                }
+                //if(qp>0) printf("qp=%d\n", qp);
+                //if(qp>0) printf("                                             (*i)=%d\n", (*i)/3);
+        }
+        modexWaitBorder();          /* waits one retrace -- less flicker */
+        if((*i)>=PAL_SIZE/2 && w==0)
+        {
+                for(; (*i)<PAL_SIZE; (*i)++)
+                {
+//____                  if((qp>0)&&((*i)-q)%3==0 && (p[((*i)-q)]==p[((*i)-q)+3] && p[((*i)-q)+1]==p[((*i)-q)+4] && p[((*i)-q)+2]==p[((*i)-q)+5])) outp(PAL_DATA_REG, p[(*i)-q]); else
+                        if(((((*i)-q)%3==0)) && (p[((*i)-q)]==p[((*i)-q)+3] && p[((*i)-q)+1]==p[((*i)-q)+4] && p[((*i)-q)+2]==p[((*i)-q)+5]))
+                        {
+                                w++;
+                                break;
+                        }
+                        else if(qp>0 && (*i)>=(qp) && (*i)<((qp)+3))
+                        {
+                                //printf("qp=%d\n", qp);
+                                //printf("              (*i)=%d a[%d]=%d\n", (*i), qp, a[qp]);
+                                printf("                %d's color=%d\n", (*i), (a[qp]-(bmp->offset*3)+qp));
+                                //outp(PAL_DATA_REG, p[((a[qp])-(bmp->offset*3)+qp)]);// fix this shit!
+                                if((*i)+1==(qp)+3){ w++; /*(*i)++;*/ break; }
+                        }
+                        else
+                        {
+                                if(qp==0) outp(PAL_DATA_REG, p[(*i)-q]);
+                                else{ //outp(PAL_DATA_REG, p[((*i)-(bmp->offset*3)+qp)]);
+                                printf("p[]=%d  qp=%d   p[]-qp=%d\n", ((*i)-(bmp->offset*3)), qp, ((*i)-(bmp->offset*3))+qp); }
+                        }
+                }
+                //printf("                                              (*i)=%d\n", (*i)/3);
+        }
+
+printf("\nqqqqqqqq\n\n");
+
+        //palette checker~
+        if(q>0 && qp==0)
+        {
+                long lq;
+                long bufSize = (bmp->width * bmp->height);
+                pp = q;
+                //printf("1(*i)=%02d\n", (*i)/3);
+                //printf("1z=%02d\n", z/3);
+                chkcolor(bmp, &q, &a, &aa, &z, i);
+                //printf("2(*i)=%02d\n", (*i)/3);
+                //printf("2z=%02d\n", z/3);
+                aq=0;
+aqpee:
+                while(aq<=aa)
+                {
+//                      printf("a[%02d]=(%d)\n", aq, a[aq]);
+                        if(a[aq]==-1) aq++;
+                        else { aqoffset++; break; }
+                }
+//update the image data here!
+        for(lq=0; lq<bufSize; lq++)
+        {
+                                /*
+                                                                        note to self
+                                                                        use a[qp] instead of bmp->offset for this spot!
+                                                                        NO! wwww
+                                */
+
+                                /*
+                                Facking bloody point the values of the changed palette to correct values.... major confusion! wwww
+                                */
+
+                //(offset/bmp->offset)*bmp->offset
+
+
+                //printf("%02d ",bmp->data[lq]+bmp->offset);
+                //if(lq > 0 && lq%bmp->width==0) printf("\n");
+                //printf("%02d_", bmp->data[lq]+bmp->offset);
+                /*if(bmp->data[lq]+bmp->offset==aq)
+                {
+                        //printf("%02d", bmp->data[lq]);
+                        //printf("\n%02d\n", bmp->offset);
+                        printf("aq=%02d ", aq);
+                        printf("a[aq]=%02d      ", a[aq]);
+                        printf("a[aq]+aqpp=%02d ", a[aq]+aqpp);
+                        printf("a[aq]-aqpp=%02d\n", a[aq]-aqpp);
+                        //bmp->data[lq]=((bmp->data[lq]+bmp->offset)-a[aq]);
+//++++                  bmp->data[lq]=a[aq]-aqpp;
+//                      printf("_%d ", bmp->data[lq]);
+                        //if(lq > 0 && lq%bmp->width==0) printf("\n");
+                }
+                else if(bmp->data[lq]+bmp->offset < ((*i)/3)-aqpp)
+                {
+                        if(bmp->data[lq]+bmp->offset >= aq)
+                        {
+                                bmp->data[lq]=(bmp->data[lq]+bmp->offset)-aqpp;//-((z-(*i))/3);
+                                //printf("_%d ", bmp->data[lq]+bmp->offset)-aqpp-((z-(*i))/3);
+                        }
+                        else bmp->data[lq]+=(bmp->offset-aqpp);
+                }*/
+
+                //printf("%02d`", bmp->data[lq]);
+                //if(lq > 0 && lq%bmp->width==0) printf("\n");
+        }
+
+//printf("              aq=%02d\n", aq);
+//printf("              aa=%02d\n", aa);
+
+        //update the palette~
+        modexPalUpdate(bmp, &pp, aq, aqoffset);
+        (*i)=pp;
+
+        if(aq<aa){ pp=q; aq++; goto aqpee; }
+        }
+}
+
+void
+modexPalUpdate1(byte *p)
+{
+        int i;
+        modexWaitBorder();
+        outp(PAL_WRITE_REG, 0);  /* start at the beginning of palette */
+        for(i=0; i<PAL_SIZE/2; i++)
+        {
+                outp(PAL_DATA_REG, p[i]);
+        }
+        modexWaitBorder();          /* waits one retrace -- less flicker */
+        for(; i<PAL_SIZE; i++)
+        {
+                outp(PAL_DATA_REG, p[(i)]);
+        }
+}
+
+void
+modexPalUpdate0(byte *p)
+{
+        int i;
+        modexWaitBorder();
+        outp(PAL_WRITE_REG, 0);  /* start at the beginning of palette */
+        for(i=0; i<PAL_SIZE/2; i++)
+        {
+                outp(PAL_DATA_REG, rand());
+        }
+        modexWaitBorder();          /* waits one retrace -- less flicker */
+        for(; i<PAL_SIZE; i++)
+        {
+                outp(PAL_DATA_REG, rand());
+        }
+}
+
+//color checker~
+//i want to make another vesion that checks the palette when the palette is being appened~
+void chkcolor(bitmap_t *bmp, word *q, word *a, word *aa, word *z, word *i/*, word *offset*/)
+{
+                byte *pal;
+                word zz=0;
+                pal = modexNewPal();
+                modexPalSave(pal);
+                //printf("q: %02d\n", (*q));
+                printf("chkcolor start~\n");
+                printf("1                               (*z): %d\n", (*z)/3);
+                printf("1                               (*i): %d\n", (*i)/3);
+//              printf("1 offset of color in palette    (*q): %d\n", (*q)/3);
+                printf("wwwwwwwwwwwwwwww\n");
+                //check palette for dups
+                for(; (*z)<PAL_SIZE; (*z)+=3)
+                {
+                        //printf("\n            z: %d\n", (*z));
+                        //printf("              q: %d\n", (*q));
+                        //printf("              z+q: %d\n\n", ((*z)+(*q)));
+                        //if((*z)%3==0)
+                        //{
+//----                          if(pal[(*z)]==pal[(*z)+3] && pal[(*z)+1]==pal[(*z)+4] && pal[(*z)+2]==pal[(*z)+5])
+                                if((*z)==(*i))
+                                {
+//                                      printf("\n%d    [%02d][%02d][%02d]\n", (*z), pal[(*z)], pal[(*z)+1], pal[(*z)+2]);
+//                                      printf("%d      [%02d][%02d][%02d]\n\n", (*z)+3, pal[(*z)+3], pal[(*z)+4], pal[(*z)+5]);
+//0000                                  (*z)-=3;
+                                        break;
+                                }
+                                else for(zz=0; zz<(*q); zz+=3)
+                                {
+                                        //printf("zz: %02d\n", zz/3);
+                                        if(zz%3==0)
+                                        {
+                                                if(pal[((*z)+(*q))]==pal[((*z)+(*q))+3] && pal[((*z)+(*q))+1]==pal[((*z)+(*q))+4] && pal[((*z)+(*q))+2]==pal[((*z)+(*q))+5])    //break if duplicate colors found in palette because it have reached the end of the current data of the palette
+                                                {
+//                                                      (*z)-=3;
+//                                                      (*i)-=3;
+//                                                      printf("\nzq1:%d[%02d][%02d][%02d]\n", (zz+q), pal[(zz+q)], pal[(zz+q)+1], pal[(zz+q)+2]);
+//                                                      printf("zq2:%d[%02d][%02d][%02d]\n\n", (zz+q)+3, pal[(zz+q)+3], pal[(zz+q)+4], pal[(zz+q)+5]);
+                                                        break;
+                                                }
+                                                else if(pal[zz]==pal[((*z)+(*q))] && pal[zz+1]==pal[((*z)+(*q))+1] && pal[zz+2]==pal[((*z)+(*q))+2])
+                                                {
+//                                                      printf("\n\nwwwwwwwwwwwwwwww\n");
+//                                                      printf("        zq: %d  [%02d][%02d][%02d] value that is needing to be changed~\n", ((*z)+(*q))/3, pal[((*z)+(*q))], pal[((*z)+(*q))+1], pal[((*z)+(*q))+2]);
+//                                                      printf("        zz: %d  [%02d][%02d][%02d] value that the previous value is going to change to~\n", (zz)/3, pal[zz], pal[zz+1], pal[zz+2]);
+//                                                      //printf("      zv: %d  [%02d][%02d][%02d] wwww\n", (zz-z+q)/3, pal[(zz-z+q)], pal[(zz-z+q)+1], pal[(zz-z+q)+2]);
+//                                                      printf("        z : %d  [%02d][%02d][%02d] offset value~\n", (*z)/3, pal[(*z)], pal[(*z)+1], pal[(*z)+2]);
+//++++                                                  (*i)--;
+//                                                      (*z)--;
+                                                        //expand dong here
+/*
+planned features that i plan to implement~
+image that has values on the pallete list!
+wwww
+no... wait.... no wwww
+*/
+                                                        //for(zzii=0; zzii<3; zzii++)
+                                                        //{
+                                                                //printf("z+q: %d\n\n", ((*z)+(*q)));
+                                                                a[(((*z)+(*q)))]=zz;
+                                                        //}
+                                                        (*aa)=(((*z)+(*q)));
+                                                        printf("!!                                      a[%02d]: %d\n", (((*z)+(*q))/3), zz/3);
+//                                                      printf("\n              aa: %d\n\n", (*aa));
+//                                                      printf("        a[%02d]=(%02d) offset array i think the palette should be updated again~\n", ((*z)+(*q))/3, a[((*z)+(*q))/3]);
+//                                                      printf("wwwwwwwwwwwwwwww\n\n");
+                                                }
+                                                /*else
+                                                {
+                                                        printf("================\n");
+                                                        printf("zq: %d  [%02d][%02d][%02d]\n", ((*z)+(*q))/3, pal[((*z)+(*q))], pal[((*z)+(*q))+1], pal[((*z)+(*q))+2]);
+                                                        printf("zz: %d  [%02d][%02d][%02d]\n", (zz)/3, pal[zz], pal[zz+1], pal[zz+2]);
+                                                        printf("z : %d  [%02d][%02d][%02d]\n", (*z)/3, pal[(*z)], pal[(*z)+1], pal[(*z)+2]);
+                                                        printf("================\n");
+                                                }*/
+                                                //printf("[%d]", (zz+q));
+                                        }
+                                }
+                }
+                printf("wwwwwwwwwwwwwwww\n");
+                printf("2                               (*z): %d\n", (*z)/3);
+                printf("2                               (*i): %d\n", (*i)/3);
+//              printf("2 offset of color in palette    (*q): %d\n", (*q)/3);
+                printf("chkcolor end~\n");
+                free(pal);
+}
+
+void modexputPixel(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(SC_INDEX, 0x02);
+	outp(SC_DATA, 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)((SCREEN_WIDTH/4) * y) + (x / 4) + 0] = color;
+
+}
+
+byte modexgetPixel(int x, int y)
+{
+	/* Select the plane from which we must read the pixel color: */
+	outpw(GC_INDEX, 0x04);
+	outpw(GC_INDEX+1, x & 3);
+
+	return VGA[(unsigned)((SCREEN_WIDTH/4) * y) + (x / 4) + 0];
+
+}
+
 void bputs(/*bmp_t *bmp, */unsigned x, unsigned y, const char *s)
 {
-	byte far *font;
-	//bmp_t src;
-
-	//font = bios_8x8_font();
-	//src.wd = 8;
-	//src.ht = 8;
-	//src.ops = &g_ops1;
-	for(; *s != '\0'; s++)
-	{
-		//src.raster = font + 8 * (*s);
-		//blit1(&src, bmp, x, y);
-		x += 8;
-	}
-}
-
-void
-modexWaitBorder() {
-    while(inp(INPUT_STATUS_1)  & 8)  {
-	/* spin */
-    }
-
-    while(!(inp(INPUT_STATUS_1)  & 8))  {
-	/* spin */
-    }
-}
+        byte far *font;
+        //bmp_t src;
+
+        //font = bios_8x8_font();
+        //src.wd = 8;
+        //src.ht = 8;
+        //src.ops = &g_ops1;
+        for(; *s != '\0'; s++)
+        {
+                //src.raster = font + 8 * (*s);
+                //blit1(&src, bmp, x, y);
+                x += 8;
+        }
+}
+
+void
+modexWaitBorder() {
+    while(inp(INPUT_STATUS_1)  & 8)  {
+        /* spin */
+    }
+
+    while(!(inp(INPUT_STATUS_1)  & 8))  {
+        /* spin */
+    }
+}
diff --git a/src/lib/modex16.h b/src/lib/modex16.h
index d748e4be..159f72ba 100644
--- a/src/lib/modex16.h
+++ b/src/lib/modex16.h
@@ -92,7 +92,7 @@ void modexPalUpdate(bitmap_t *bmp, word *i, word qp, word aqoffset);
 void modexPalUpdate1(byte *p);
 void modexPalUpdate0(byte *p);
 void chkcolor(bitmap_t *bmp, word *q, word *a, word *aa, word *z, word *i/*, word *offset*/);
-void modexpixelwr(word xx, word yy, word PageBase, word Color);
+void modexputPixel(int x, int y, byte color);
 void bputs(/*bmp_t *bmp, */unsigned x, unsigned y, const char *s);
 void modexWaitBorder();
 
diff --git a/test.exe b/test.exe
index bd8ed8e35f7deeab195909f7909196735549a988..8b9d9f96648a7ce07002119109966473c0e49039 100644
GIT binary patch
delta 10779
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
UTIZvZnws8u&0CcIoI=R|0&4-g1ONa4

delta 10966
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

diff --git a/test2.exe b/test2.exe
index d54bbbd57c281a6b7cd9b8d1c85ea846493513db..b9df462399a2c272364647c674ae78732fff6a06 100644
GIT binary patch
delta 10975
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
YPm;z-Qn0kiRg&xKLO(bl$tGC-e~UDC;{X5v

delta 10062
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
E2cB&WbpQYW

-- 
2.39.5