From 612d5839256f613c28b8e20fa7b23ada32bc3071 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Thu, 16 Nov 2017 17:46:18 +0100 Subject: [PATCH] Kernel 0.9.1 : GUI, API & Driver......RECT & BitBLT --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes DRV/DHGR.DRV.S.BLT.txt | 86 +++++++++++++++++++++---- DRV/DHGR.DRV.S.LBUF.txt | 131 +++++++++++++++++++++++++++++++++++++ DRV/DHGR.DRV.S.LINE.txt | 13 ++-- DRV/DHGR.DRV.S.RECT.txt | 12 ++-- DRV/DHGR.DRV.S.txt | 136 ++++++++++++++------------------------- DRV/DHGR.DRV.T.txt | 7 +- INC/LIBGUI.I.txt | 18 +++--- SBIN/GUI.S.txt | 60 +++++++++++++++-- 10 files changed, 335 insertions(+), 128 deletions(-) create mode 100644 DRV/DHGR.DRV.S.LBUF.txt diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 8f1df6953be17bc269796cf716d1b3f9811a742d..2bc9e118fd582042e52c28a1b78c51818b2f5f04 100644 GIT binary patch delta 3192 zcmbVOe@q+q75|Y-@7v` zY5v#`th;;f^WNvZci-v;%`?(4HH~)+-Ur9%_8EL~QEqx2pJqs5tn|5i}-GV1APg>lMSv;Q9 zI(QXZtVxMsQUnQ~CRGBHQb-)qAj2`iVtKL%W_Xj)nHqTd>@j$sg3IH7PfFmnX-!H5 z4WCaTBEyoxXg)rL$PBXx3Wak2C=sts#RwmW*CF=n27GF^b~VIbxe%UIA4+qh`W5}LHMRE?5laE2R| zsh=hrR`OTr%bB|#RPuH){1$Uf%@6B@DAl30RP!Txq3}Fg{M7%xl6RwDS?2$817^f9 zt%vlIIt?LxQ=P7c^dHq}6Qq~b>9B4_1m%ZTR_Kr5R44rjymUi*7A&L@@Gg7X{>?)?B^%iDr58+VKFG$Qi}%+s#EaIi60IE3ldQ=u*sP_Y z0V){UH40uCzxNeO->T)pJWDY}gkbi0$@;{r!XBS?L9UMi^>Z;78wXG&YusLkbKJlsL}c@7rdEgZX_`%zz^+T% zOeT|gA;%PR^}piHMvR4nF?%T79UhA9_P!V#^2P@HeSxqq@J+C(bS+o&b~{%m6X4vh zdH!5eta)&7-~L#OFWl8X81wgszWr2ynzFS3Hpe!HlV+<$5%Lf_6nfe3U8Va%G1db} z8)aR-X9qdPP+Qfb4oRcB9S8MO?^5i)RA$%0%9cI%#9&6F!zY z>WxI#jSbN%E;5_v1XD>3kgVshUUPy0YJr5{fIbeOfJBw`u&^FhP)ue$IKXTIGBtH!3z4Xnd=nQAO1ATR*9 zpsNN_h+w|ebPEtyb6{`w4aG)I?_+fe zh@au~9ntIyN=zKk&g$s>a?MO(78Yd-L$4>O;R=)00$Y#M=r%SxosJ!BN)srl%Yxn8 zdR*BuN~kQhqq)P)Vzr>GK8rb9T^&1jwe}uoUYi1C*2nSIJ{GnDMZ*(tZ{Hh?J1S7n z$Q7gbI;xQ=r#%?%4x%RReVy?z0mZY4!%K2(Q(|JtfIXLZf2qXK#JQegGg3gXnF}Fq zMtDn?v5kFs#B51?xg@W!Wl>{GOSgrsUWQ6{_X>n_#hty)TLr{5;(e#IY=B? zdi3hjBkbL!M?7mU_Lm8f6W`I+sH!6=a*lLr{;d8z9M+BKBDxWMRDV!^N((?LL?nj@ zxrhGr(j+(s=EKBUJ)A#4oUMje7zMJ52~H%PxFxz`m^Ga#VCD*uA!x85_Z)nYXw2k` zC1`qH8qs^^M|5(Z=28?%5hQh7I;i)&c?%xD4e2{@5}Y2DpvmLE4W|bDcVN+NXuJcr z-+~wJEk0yMIXYkL&d$HRDrWw9Rm}X0s+jpVs!B)K24H(98bb2@Ycu1({0;3CGcs0I zm?MPXqNT4*d(z^$XqhR3i+K%AjADo?Sn&Uz`kMcIfVyjW$BmaK%r`5r)N&%T;)nFg$A7&fO z3M#uNDg(F@dw!xZfLAs+S6$kDd%d=oheE-jBkTuI3zV)^n`+sEF$An=Jzed{06d>tVGKGd1KrwHUkp&yT2K0Q3p=JLHc>=5(Tm~ZSFjk17>_qr+q%-nfB&#t_4j`Gy z#NbLKD}jPj+(>a}2>|RuPP^tXo)^pKgM3hceo}O>|0t3Cl^d<()v*XZ7Reclx1 X#v=T&h+r&|KNb;=MGD@D6bk+Yq@Vzm delta 2607 zcmcgteQX=$8GrB2NnH~fC;o_?INAC9k-I{TeNBTCR@%gInzTu5Y$r`nC0s^eLBxi{ zZB0k(R9#J1dc)LPO@#s_g4RKHNEAyvv{ zlt|u#@g$OX`YnA<*6@*@JIiq0ne*)C!}|NrGAG#VrF$9AJOelvy~D(}b7z?8JNi+ONkiaW#;fv@x3r5{ z8uoH#fu3APO7tsQJiSMM%EJg6!NfntnVc;B5)X}oqcc!jcPivzM*aoO zHVd#f#rHnN_dbCa5}solJd9ezjKgNm5X_}W){80;h&~bX8hZ)ilQ+GMxwX#XkQNTQFQCmXcfZ-{1W<_jhsT(BYR~ed|I#y6exE zr}oUeLY&-7d=k61m++iCh#8`W+0R0i<-l#SHJcnxle?+M{%e!{u|tN;8nXq|$W|Da z-PzG(v%iAKVzb2zs^lwdQ&&p_F-4Fu1C3&Za=4lbl!&Jwr(EHB9j=H;%cp~cB_lEe zSp_0H9W8djjRhuEbnwasOdWmWN|mY-tQTtKd6Uh`EhioOD_+beez+=n<;te=2F+?1 zla1X}e>|%Bgbr0B)aK}LxL)O5H-fSng!NjYJWvP9eu98L1k{5vvS7gq7FJNMEm$A` zc0xfRq@{m2&?^MCut1?(1^WarWT^v6Jwn|>KXV3#kZnCs8Va_|J(u`{VZBgE{ zF9!ODg}N<3+KOP*QuqkAAsw}}4pg=wy|c-^!{lgfb=y6^M2(QOBc`RvgFYlH5N}6? zR_=(s?IYCX9iXGVd0Th8$@ZLoxE~6~&VPDQE1fI`KAlnumy>gl-))EImR_D)!akf^ z!mYhnMXc0C>}cy2Ixj%JBA3p^$f5_+gZ6-d?_WATDSnqju;yOKB z-0%#qFd?-7CPP2Ef&PyRNZ4ri?kz9BQ!it)^>CLb=7n{B#zRzAqbIBATz+mXL%a70 zZIF%bdGEVB0e^>>qOahY#_N@LSV3m)W*~r}`0nSm5e_=CRmTKYSfs zv0Z*bjk#lQufd;)O7VZ6e4a28Qc4|To+oA~Ih6zyr=XG;#VM&IPH`2~IN-{taf~bH z|75X>7laSbQuRp?bqUeuh>B#pu?aa%hkCW&-XPN@b&&?Z7GLK``C z*^^XIUxLW&B21yAE@yJ4~#NzvFKn*CzPlMH8iCBy|!39u? z9mGn+81^`%jzgW7pMtUuL$VLb58+7GKv`3;@j%%FE=*zg7*;BP0K-S+u)f zb$4}jRdsb$^&C7HI(RVjr3t%ztY}Tu06ep}Md;~&4r)1hQ#P**;^Qdq45{z&gwQA+yb|IEyCm>3Ud z2To=Olt4jjSq`=6T1Qj&mSb9LlTlQn&nyZa-ZMIA1ZNx?EzhNv5ITCA65Xjm{qUMb zOkyZy=FwDqq9ds5l$AdVumb={K>`vC250O#WiE+BcIbdObjn#8hv>nXRQ<4~Y0*)m zmVC>YyrlJKRGs{VOjHuhGmG>fd6vgf0KtiBrRdsNaT={Y)UCBNYrVR$*61D|Ks_{K z^bbY%gvToPgeP{B&lw-nXN~F8$>)j#dqdX55c%A3V4nr-3(>0dIIuM`5$(lbu7^g# z(V@}Uh|z15O$>}jA|tD4RYvm2zBwaDjK0}{MVaw|Ab4AJ93#g@heo22aRWT*)|xx0 zJS#q=bs~E9knlATqj}%X*iK9#HJet?l&+x?FEwxKX>RYit+BneugL&cTAErmww0R< zl1q`_M^la6J?OqFkKl$T4IE`|rgMp@FZRTYzz4Rx4^ zhK=S9ttEWrz^({jDl}p+GD$AzLI2pWq3Ps+0+1InXBmejrX=UU%cK_m5Kx8LGQrW0mFo~gb0UVYG~vDxr;%=z<{BJ z49YDP&rI3987%LWGW8LusNBJ ziW;&eS8=!BSq{cj^V}Mqn`0}eW4Kooo>CU&)??v`VNx5cdaYzs;5>2RDaG$UKhB|T z;o(R$8ey^Jt`ozjlpJ@X#mgY&Tp;c^r36YY#44U9W`CSTSh^WNXA4U{t>XDp zO8H@qBN$41QcZjv<2k;CSBa@b$4moT!W?3k=BDnpb|_}nKwMDG;R#bpoqbNDz)w5C+9#w>NW z`27oXNz7-j(r$ac#U|-Yg?9aAep7XNfCb7UYY%2i-}ddua97K=|`oS2Yt58 zO&?1v?z?sY5qM(EP__kHb-8|+90!3Q-IybVLjdI-mO{7=?X2sWS8Qn#LO3#y#pJnR zo)B)FH-d@13CR36vk<&1Gmes0B}`Mm0?4?9v}$13gtFnQE#_| za))Ryw&kq4)8ak^am->sh#YtE$h$4>{~O&vD~^j>i*3slAs#KZm8ShWx<+n0+xJ2C?&Q6<&$D*iLEsCQ$Vxy9t zb>@9@IZ*OB@m`6oSeX`urM8^ZFJNNue$iNJt4#Z%G(jsK5O=!W%TpgjSHVLGQ9Nw>6QkWG0xt@Xo1&{Mxpgzq) zfbp6EQvWl@SJ`~dZ^p^e#nYSA3zoICcgdB#-&WkK@FY&4`^QwzqiLV->q8~|S{CEyCeuA-?Kb_Bv{{+s{lDc;darfJa zZs^5dfjsMPats@A3&r29F>GtH-bw0~DBewUhYHB?58mSGq;=R_V5QaX@p-{jUT*Vw z-^U>JpYrZ?{0kr284`agw^j6$V)`h(yo2i|*ahn~&^GEwwJD~Ppr$BO!xQ6_ZnuV- zw??)DP~5}#(3+dJZox(4NtFYNTi`H*0>>g{iYisHzrv;k(yYnmJ*7Goc`drdMRz(L zMQreG@#ZmmL0PxP*D$HSm0V8$9kq6C*IK%@wymwC{;z}<{hq|@$L!0Ue~{nBe$Rj_lk^7aF(T;f;K;QqG@A{3>Yk+g>B_{PSy2?kALXgaRHMke z+wO0HhDsR*pq=KRZq1ym^=KQ`_mayMpG)a(*(?q=us6L}E>@K;9t+t*N{0B<-S&LN zbG*uyuVjjFc}jW8s~b1nrP%&;Jl}EVM77OzT4~4UUyoO&xP+4L_}htK%5NWDqLUK` zm6r~Z6Q@9)94QxhaN7-fPXMF&_#`LkS_ zx2SmQ-IUrGFr~{WAv7}*O}9rjYpQ`X(?VJYq*;tKTLKWW%|l8)Z*rHllYlQ7h=bOq zu{-DTD>1pX266@DkSb7-lW4kgWwQogcb;tPwV)!OsVI@^yys1PCvENNYP?9hOHjuT#UE}lRd{gap=gvSdly9p|{2O~E~aL(#kaLefM==c!{_mZWPzdfRk8`4c2~ck@F%Vq-(^*Y(aa*eX3GwUy~+E^>U>E!7Fdrf{#em24X zi{~PA&f}hbmm=PK)^^#+&|&*Kj_MlA<;Q)naZ^`Y_u-E4?uaq5Z#-fER3Gf_>FjDV z!UNGEcm`pkIE0%*G~8sb6nk#6KO0NCk5(I-wyq`j=g{ag)*0=c8Kf}!AIw~I1Yt3^bjCO##j&+ zVnEYv&wGT#^LN;D3gNf2SHeiNAZKylz_Z`xcnnTY!Iw$gTWQOS!Hws1&EhAl6hm>S znzG@@C#HsKYI!oed2=!xdMfxzg1XRA4$DA8omQiVcp!Xx6X93m2&)??8(w_^p*0S! zJrKr7{f69f+Ed^I^UwD*8hsVawUK>$bfZkKT}4?l7MB1D8D;gW$oUK)COduKOiU=l zyj2GHN$R>HmwO*VM6ZINEz`B6`4(aYg!f*l(OPHtdMuq9o6Er5kBpn;a)1R3P7T zOfynu!Rxys6F|W7%=$ippvmwN3j(P+5H*ksVM0IhLRu9$p2xTI1rBn@c7=(91xz3n z!Gf6we?(Jb!(s9uYT&F{f)b7!JU`{|7r7$|CJ(}f@lorG$wdS~ zo>w`Xg>!0c(S_Kde_(=hbuI)B9OG+n1`scpzWXmFcUIbdWjc^c)4H{7n|i72zvZVB zW|;lNvj0hZn|J8SU(0V7@`&v{RQ4NOzrr(M_Xe8f!JTITT1*Sj*lKm^zmEMW@%!!NYK0m+RX*lc37QQV5>D1_qVfCwqaMc$(HFeTx5-4 zx} zj$L8(0ri!#Szk@guxtW#e*)+pkWCY{On{ODIZ^T>Av!cNkepg&ohU)JVM!?~&TO(c zDPg43vXwLy<3kyD>5)o8vukvJ^JFvvGf~D`wF>Dx=#+JY$gvtgPMMmzU190=8mZe} zO)77au_kY&JX*;xH7J!`)uH{2$d5ECYkkrnY{6f3)>PhDHB(R{S6)^tC(hjhd)Zp& z`fl>p&0?^w2uiCr7dL2m15K^vRTrMj1gt%4Iumdn2*^F3vn9S-ol4e$1kNYdUB5qK z?Bb{q0m;O!p`B4|;t+W^%#s(+^Sd_ksYiCaiu{`w(hFxhn+Y~GmwP*AamKmh-8zdi4s&%{IIGFA z4fOjjnni4lVYYOkYf(2R(a6z5Q{u9JICD>)w5P6C+*(zwR@J0cwNc^s#8`IfGUYj0 zeP6tkg|8pT>WAV@{(4?kFNh$Id{I^}$q6ruJA44XA|A7+J~4gVZc`%GDcdQJ$J|qP zl{{s;tUd%4L$ZmZb+v3Ygvh;HHrY71h7(}dh-|W_H!6KB*BFB??&#sV;dxINacF_F}$~!iM$SS8?Dl`O@c%HzQHP!(n_J2bV}c_&jrm zF__d$>n^}k6hANdvZ+0rUtkiHh5DLknO73#OU8hU#BUK60AXc0&{FI11wqGkE&95a zP=#^Ts4+0Qr+)}n4}$X+*tlG15}X)LOy}{2@-0H;TcEk2f;sD08(Km!xuX!`F1e$n zbH~XYEt5OKdy@6Km0%TRt&r!`dUs@|zC>OItB#KD z?N|L6uH<{i>+BAZdM4#`H4PfpBP-*DVV%V*DJB)x)Vz3CNoEIEi>GdZ>v(;mYkABE z18TjF$=rXrejTZrC6-DnPaxm3H29)NDHkS`ZMQ}Hbx1zxc+!Ons54(-PuX=zB&6`1 zW*JkNkeZ|{n9=x<#jur}qk>VTCAH=gMeNXqNR&mk7ABO<@3Z{&Tu13Jw7eHq7J@8oGW~nL*3GF$kJUVYN-)svf=Ny3q(=g#q&)MyxP6IugO-H(oYi)5&K($Hh5q zW(TnvtouYXh8V(34?-F+^YJm3FktYh78ZU!)0iRQ;bEhnFKMGc65WrtX-EoWl!6Sr z?fP*CFyrTNfK>B3z}j2lJMFcQ(#(&dAbu{X8I9( z;cn<@Vyzu>)Teg==FL~1K5W%_32F7hJklSs4(g?I4=U12IH;Ei?N)nE@N(wt71Aut z%@kjm%vqd5es%Qsn{QMx??BSN*sVc;EzkP@}9H~FbwyQ ze7$g8%{mNE0b<_`jOws7P-%P2-5etC2xUw3mf=BulyXPqcE)%+dl%Zy_`K~*@OGl+ zcD8u;EwG(ycsu)Pil0K~Z0Ep&+xf8E&h$(6pOu@#p~C7%tUZ0yI+xhf$AC8NT60f_ zNR6FTs@*?PrXO(ZI_`Bj#I_q9IkCd~5xs2WWURK(9~FL4_J``Vh5o4U0omVFuPyXP zg%5t<{1_EJbPfa$e;@)XeB>PSAN`>Dv3e@}(m4=3Ci`oG+CqO+_+{DO8q^m0qr%5O zV15iKwZbRPf#AsxK)~})oMZmU515ZVQQ=oU7y;55^0zl%6%S^m7As$quIksNkNOQ+ zJtckAr)4!GUDan~^-Ve9Te5mqPQVind%E9|6TZup_lQ6Bh=0)$zk0%-*10=tF+J<2 z(IPu%Fweh?e>-+V*ho7WHk=oBh;L2VvmAXo3Kag)V0g;`U6qQk?(BPiP$Y2@L@7q%444pRoe~FG>RBTMT*NQN;oLrjh}7 z%KFBy)lRNl?YhPlyW(nMj|CUtF|!XZXGLbwQF94dr3y8dYOBu+a7a-Pw7^c%i90Fpq0BMK| z5Ss;fLtKEZRTEzv3%>txVT!7dtKw8BG zh|L1TRa}7AEWlgUKeZw2g^r&|k80w<8rPD(G1-;5S9S$&V+#oxd&eaJ*}Gd9 z#8UK5NElLt30NQsnt6(z{EtfZiRHDfV&xjKo~!+0H&+M59b8R{C%O8t_&HY}5ob{4 z!4>;LCK~H7?piUxRZQH-)j{zvSB7|nt3%=)t`3WWdQ{hmCRBOXON=ua zp{nG66gVPc^)CPUH^}}_4XHO;T)0U-P$sw#xLE=$E*!!hL%}Kv92GAEgK~@5yVm7B z`DBCZ8;Y%Dioc4LkIU*4vihW~KE+j$EpQLlUO%}$ZLtl(=4ULEbFaAPJXi6`&&r;K nt|;7FRCu54H}ABv!q1&!^yiaC7ZpyQWAqp3NTX}I(cS$2DL57+ delta 10500 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 K%!^Hymj49<0Gwg~ diff --git a/DRV/DHGR.DRV.S.BLT.txt b/DRV/DHGR.DRV.S.BLT.txt index a225f5ec..1eccb9fe 100644 --- a/DRV/DHGR.DRV.S.BLT.txt +++ b/DRV/DHGR.DRV.S.BLT.txt @@ -6,18 +6,82 @@ AUTO 6 .LIST OFF *-------------------------------------- * BitBlt -* In : YA = Ptr to CtrlBlk : -* 1 : OP -* 4 : SrcX1 -* 6 : SrcY1 -* 8 : SrcX2 -* 10 : SrcY2 -* 12 : DestX -* 14 : DestY -* 16 : SrcPtr -* 18 : DstPtr +* S.CB.X1 : SrcX1 in bitmap/mask +* S.CB.Y1 : SrcY1 +* S.CB.X2 : SrcX2 +* S.CB.Y2 : SrcY2 + +* S.CB.DestX : Destination X (screen) +* S.CB.DestY : Destination Y (screen) + +* S.CB.SrcPtr : pointer to S.BM +* S.CB.DstPtr : pointer to Save Buffer *-------------------------------------- -BITBLT +BITBLT >LDYA CB.CACHE+S.CB.SrcPtr + >STYA ZPBMDataPtr + + ldy #S.BM-1 + +.1 lda (ZPBMDataPtr),y + sta BM.Cache,y + dey + bpl .1 + + lda ZPBMDataPtr + clc + adc #S.BM + sta ZPBMDataPtr + bcc .2 + + inc ZPBMDataPtr+1 + +.2 >LDYA CB.Cache+S.CB.Y1 + ldx BM.Cache+S.BM.RowBytes + + jsr YAMultX + + pha + tya + clc + adc ZPBMDataPtr + sta ZPBMDataPtr + pla + pha + adc ZPBMDataPtr+1 + sta ZPBMDataPtr+1 + + tya + adc BM.Cache+S.BM.MASK.OFS + sta ZPBMMaskPtr + pla + adc BM.Cache+S.BM.MASK.OFS+1 + sta ZPBMMaskPtr+1 + + lda CB.Cache+S.CB.X1 + and #7 we have to shift right!!! + tax + + lda CB.Cache+S.CB.X1+1 + lsr + lsr + lsr + pha + clc + adc ZPBMDataPtr + sta ZPBMDataPtr + bcc .3 + + inc ZPBMDataPtr+1 + +.3 pla + adc ZPBMMaskPtr + sta ZPBMMaskPtr + bcc .4 + + inc ZPBMMaskPtr+1 + +.4 + clc rts *-------------------------------------- diff --git a/DRV/DHGR.DRV.S.LBUF.txt b/DRV/DHGR.DRV.S.LBUF.txt new file mode 100644 index 00000000..bd7ef686 --- /dev/null +++ b/DRV/DHGR.DRV.S.LBUF.txt @@ -0,0 +1,131 @@ +PR#3 +PREFIX /A2OSX.BUILD +LOMEM $A00 +INC 1 +AUTO 6 + .LIST OFF +*-------------------------------------- +LBUF.SetBounds1YA + jsr DIVMOD7YA A=DIV, X=MOD + sta LBUF.C1 + tay + + lda C1.MASK,x + sta LBUF.C1.MASK + lda C1.DATA,x + sta LBUF.C1.DATA + rts +*-------------------------------------- +LBUF.SetBounds2YA + jsr DIVMOD7YA A=DIV, X=MOD + sta LBUF.C2 + tay + + cmp LBUF.C1 C1=C2, go combine in C1 + beq .1 + + lda C2.MASK,x + sta LBUF.C2.MASK + lda C2.DATA,x + sta LBUF.C2.DATA + rts + +.1 lda C1.MASK,x + and C2.MASK,x + sta LBUF.C1.MASK + + lda C1.DATA,x + and C2.DATA,x + sta LBUF.C2.DATA + rts +*-------------------------------------- +LBUF.DrawAtY lda BASEL,y setup line Base Ptr + sta ZPBasePtr + lda BASEH,y + sta ZPBasePtr+1 +*-------------------------------------- +LBUF.DrawAtY.SET + ldx LBUF.C1 x C1->C2 + + ldy COL.BANK,x + sta $C000,y + ldy COL.OFS,x + + lda (ZPBasePtr),y Get C1 + and LBUF.C1.MASK clear ONLY bits starting at X1 mod 7 + sta GBYTE + lda LBUF.DATA,x get DATA bits + and LBUF.C1.DATA set ONLY bits starting at X1 mod 7 + ora GBYTE + sta (ZPBasePtr),y update screen + + inx + cpx LBUF.C2 + beq .2 C1=C2, go setup C2 + bcs .8 C1+1 > C2, we are done... + +.1 ldy COL.BANK,x + sta $C000,y + ldy COL.OFS,x + + lda LBUF.DATA,x set all bytes between C1+1 & C2-1 + sta (ZPBasePtr),y + + inx + cpx LBUF.C2 + bne .1 + +.2 ldy COL.BANK,x + sta $C000,y + ldy COL.OFS,x + + lda (ZPBasePtr),y Get C2 + and LBUF.C2.MASK clear ONLY bits ending at X2 mod 7 + sta GBYTE + lda LBUF.DATA,x get DATA bits + and LBUF.C2.DATA set ONLY bits ending at X2 mod 7 + ora GBYTE + sta (ZPBasePtr),y update screen + +.8 rts +*-------------------------------------- +LBUF.DrawAtY.ORA + ldy LBUF.C1 y C1->C2 + +.1 ldx COL.BANK,y + sta $C000,x + + lda (ZPBasePtr),y + and LBUF.MASK,y + + ora LBUF.DATA,y + sta (ZPBasePtr),y + + cpy LBUF.C2 + iny + bcc .1 + + rts +*-------------------------------------- +LBUF.DrawAtY.XOR + ldy LBUF.C1 y C1->C2 + +.1 ldx COL.BANK,y + sta $C000,x + + lda (ZPBasePtr),y + and LBUF.MASK,y + + eor LBUF.DATA,y + sta (ZPBasePtr),y + + cpy LBUF.C2 + iny + bcs .1 + + rts +*-------------------------------------- +MAN +SAVE /A2OSX.SRC/DRV/DHGR.DRV.S.LBUF +LOAD /A2OSX.SRC/DRV/DHGR.DRV.S +ASM diff --git a/DRV/DHGR.DRV.S.LINE.txt b/DRV/DHGR.DRV.S.LINE.txt index 61fe1c6c..4d7df4ef 100644 --- a/DRV/DHGR.DRV.S.LINE.txt +++ b/DRV/DHGR.DRV.S.LINE.txt @@ -30,17 +30,15 @@ HLINE.MONO >LDYA CB.Cache+S.CB.X1 .1 ldx LBUF.C1 .2 tya - and LBUF.MASK,x sta LBUF.DATA,x - inx cpx LBUF.C2 - bcs .2 + inx + bcc .2 ldy CB.Cache+S.CB.Y1 jmp LBUF.DrawAtY -HLINE.C16 >DEBUG - lda CB.Cache+S.CB.X1 +HLINE.C16 lda CB.Cache+S.CB.X1 and #%11111100 tay lda CB.Cache+S.CB.X1+1 @@ -48,7 +46,7 @@ HLINE.C16 >DEBUG jsr LBUF.SetBounds1YA lda CB.Cache+S.CB.X2 - and #%11111100 + ora #%00000011 tay lda CB.Cache+S.CB.X2+1 @@ -64,7 +62,7 @@ HLINE.C16 >DEBUG adc #0 sta ZPPalettePtr+1 - ldx LBUF.C1 + ldx LBUF.C1 .1 txa and #3 Compute index in Palette (Mod 4) @@ -72,7 +70,6 @@ HLINE.C16 >DEBUG tay lda (ZPPalettePtr),y - and LBUF.MASK,x sta LBUF.DATA,x cpx LBUF.C2 inx diff --git a/DRV/DHGR.DRV.S.RECT.txt b/DRV/DHGR.DRV.S.RECT.txt index 5d122521..acfe6139 100644 --- a/DRV/DHGR.DRV.S.RECT.txt +++ b/DRV/DHGR.DRV.S.RECT.txt @@ -15,16 +15,16 @@ AUTO 6 *-------------------------------------- FILLRECT jsr HLINE - inc CB.Cache+S.CB.Y1 ldy CB.Cache+S.CB.Y1 cpy CB.Cache+S.CB.Y2 - bcs .8 + beq .8 -.2 jsr LBUF.DrawAtY - inc CB.Cache+S.CB.Y1 - ldy CB.Cache+S.CB.Y1 +.2 iny + phy + jsr LBUF.DrawAtY + ply cpy CB.Cache+S.CB.Y2 - bcc .2 + bne .2 .8 rts *-------------------------------------- diff --git a/DRV/DHGR.DRV.S.txt b/DRV/DHGR.DRV.S.txt index 5e6328f0..a3d3ab3d 100644 --- a/DRV/DHGR.DRV.S.txt +++ b/DRV/DHGR.DRV.S.txt @@ -16,8 +16,8 @@ AUTO 6 ZPCmdPtr .EQ ZPDRV ZPBasePtr .EQ ZPDRV+2 ZPPalettePtr .EQ ZPDRV+4 - - +ZPBMDataPtr .EQ ZPDRV+6 +ZPBMMaskPtr .EQ ZPDRV+8 *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -142,7 +142,7 @@ WRITE >STYA ZPCmdPtr sta SET80STORE lda (ZPCmdPtr) Get Cmd - + .1 tax ldy CB.CmdLen,x @@ -159,86 +159,6 @@ WRITE >STYA ZPCmdPtr rts .10 jmp (J.Cmds,x) -*-------------------------------------- - .INB /A2OSX.SRC/DRV/DHGR.DRV.S.PIX - .INB /A2OSX.SRC/DRV/DHGR.DRV.S.LINE - .INB /A2OSX.SRC/DRV/DHGR.DRV.S.RECT - .INB /A2OSX.SRC/DRV/DHGR.DRV.S.BLT -*-------------------------------------- -LBUF.SetBounds1YA - jsr DIVMOD7YA A=DIV, X=MOD - sta LBUF.C1 - tay - - lda C1.MASK,x - sta LBUF.MASK,y - rts -*-------------------------------------- -LBUF.SetBounds2YA - jsr DIVMOD7YA A=DIV, X=MOD - sta LBUF.C2 - tay - - cmp LBUF.C1 - beq .2 - - lda C2.MASK,x - sta LBUF.MASK,y - - lda #0 - -.1 dey - cpy LBUF.C1 - beq .8 - sta LBUF.MASK,y - bra .1 - -.2 lda C1.MASK,x - and C2.MASK,x - sta LBUF.MASK,y -.8 rts -*-------------------------------------- -LBUF.SetOPA -*-------------------------------------- -LBUF.DrawAtY lda BASEL,y setup line Base Ptr - sta ZPBasePtr - lda BASEH,y - sta ZPBasePtr+1 - - - ldy LBUF.C1 y C1->C2 - -.1 ldx COL.BANK,y - sta $C000,x - - lda (ZPBasePtr),y - and LBUF.MASK,y - - ora LBUF.DATA,y - lda #$ff - sta (ZPBasePtr),y - - cpy LBUF.C2 - iny - bcc .1 - - rts -*-------------------------------------- -LBUF.DrawAtY.XOR -.1 ldx COL.BANK,y - sta $C000,x - - lda (ZPBasePtr),y - and LBUF.MASK,y - - eor LBUF.DATA,y - sta (ZPBasePtr),y - - iny - cpy LBUF.C2 - bcs .1 - - rts *-------------------------------------- * IN: * Y = LO @@ -267,6 +187,44 @@ DIVMOD7Y2 lda DIV7.512,y ldx MOD7.512,y rts *-------------------------------------- +* IN: +* Y,A = num1 (16) +* X = num2 (8) +* OUT: +* Y,A = (Y,A) * X +*-------------------------------------- +YAMultX stx GBYTE + + sty GWORD + sta GWORD+1 + + ldy #0 Result LO + tya Result HI + + bra .3 + +.1 pha + tya + clc + adc GWORD + tay + pla + adc GWORD+1 + +.2 asl GWORD + rol GWORD+1 + +.3 lsr GBYTE + bcs .1 + bne .2 + rts +*-------------------------------------- + .INB /A2OSX.SRC/DRV/DHGR.DRV.S.PIX + .INB /A2OSX.SRC/DRV/DHGR.DRV.S.LINE + .INB /A2OSX.SRC/DRV/DHGR.DRV.S.RECT + .INB /A2OSX.SRC/DRV/DHGR.DRV.S.BLT + .INB /A2OSX.SRC/DRV/DHGR.DRV.S.LBUF +*-------------------------------------- DRV.CS.END *-------------------------------------- .INB /A2OSX.SRC/DRV/DHGR.DRV.T @@ -279,6 +237,7 @@ CB.CmdLen .DA S.CB.Y1+1 SETPIXEL .DA S.CB.DstPtr+1 BITBLT *-------------------------------------- CB.Cache .BS S.CB +BM.Cache .BS S.BM *-------------------------------------- DIV7.lo .BS 3 DIV7.hi .BS 3 @@ -286,14 +245,19 @@ MOD7.lo .BS 3 MOD7.hi .BS 3 *-------------------------------------- LBUF.C1 .BS 1 -LBUF.C2 .BS 1 C1 C2 -LBUF.MASK .BS 80 Bits to CLR in VMEM & LBUF.DATA from C1 to C2 : 11100000 00000000 00111111 -LBUF.DATA .BS 80 Bits to SET/ORA/XOR in VMEM from C1 to C2 : 000ccccc cccccccc cc000000 +LBUF.C1.MASK .BS 1 Bits to CLR in VMEM : 11100000 00000000 00111111 +LBUF.C1.DATA .BS 1 Bits to SET/ORA/XOR : 000ccccc cccccccc cc000000 +LBUF.C2 .BS 1 C1 C2 +LBUF.C2.MASK .BS 1 +LBUF.C2.DATA .BS 1 +LBUF.MASK .BS 80 +LBUF.DATA .BS 80 *-------------------------------------- XDIV7 .BS 1 XMOD7 .BS 1 XCOL7 .BS 1 GBYTE .BS 1 +GWORD .BS 2 *-------------------------------------- DSTAT .DA #0 .DA #0,#0,#0 diff --git a/DRV/DHGR.DRV.T.txt b/DRV/DHGR.DRV.T.txt index 2a0f1b18..7b48eb19 100644 --- a/DRV/DHGR.DRV.T.txt +++ b/DRV/DHGR.DRV.T.txt @@ -28,9 +28,7 @@ C2.DATA .DA #%10000001 ->C1.DATA .DA #%10001111 .DA #%10011111 .DA #%10111111 ...to 6 -*-------------------------------------- C1.DATA .DA #%11111111 -*-------------------------------------- C2.MASK .DA #%11111110 .DA #%11111100 .DA #%11111000 @@ -105,6 +103,11 @@ COL.BANK .DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2 .DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2 .DA #SETPAGE2,#CLRPAGE2,#SETPAGE2,#CLRPAGE2 *-------------------------------------- +COL.OFS .DA #00,#00,#01,#01,#02,#02,#03,#03,#04,#04,#05,#05,#06,#06,#07,#07,#08,#08,#09,#09 + .DA #10,#10,#11,#11,#12,#12,#13,#13,#14,#14,#15,#15,#16,#16,#17,#17,#18,#18,#19,#19 + .DA #20,#20,#21,#21,#22,#22,#23,#23,#24,#24,#25,#25,#26,#26,#27,#27,#28,#28,#29,#29 + .DA #30,#30,#31,#31,#32,#32,#33,#33,#34,#34,#35,#35,#36,#36,#37,#37,#38,#38,#39,#39 +*-------------------------------------- DIV7.BASE .HS 002449 Indexed with X.HI *-------------------------------------- DIV7.0 .HS 00 diff --git a/INC/LIBGUI.I.txt b/INC/LIBGUI.I.txt index 4d7357c1..e6e763d6 100644 --- a/INC/LIBGUI.I.txt +++ b/INC/LIBGUI.I.txt @@ -15,17 +15,18 @@ S.CB.CMD.FILLRECT .EQ 8 S.CB.CMD.BITBLT .EQ 10 S.CB.CMD.DRAWLINE .EQ 12 S.CB.OP .EQ 1 -S.CB.OP.SAVE .EQ %00000001 -S.CB.OP.REPLACE .EQ %00000010 -S.CB.OP.AND .EQ %00000100 -S.CB.OP.ORA .EQ %00001000 -S.CB.OP.XOR .EQ %00010000 +S.CB.OP.SET .EQ %00000001 replace screen with bitmap +S.CB.OP.ORA .EQ %00000010 combine screen & bitmap -> Screen +S.CB.OP.XOR .EQ %00000011 screen EOR bitmap -> Screen +S.CB.OP.SAVE .EQ %00010000 Save Screen to DstPtr before painting +S.CB.OP.AND .EQ %00100000 Apply BitMap mask before painting +S.CB.OP.COLOR .EQ %01000000 Assume BitMap is COLOR S.CB.MODE .EQ 2 S.CB.MODE.MONO .EQ %00000001 b/w (1 bit/pixel) *S.CB.MODE.C4 .EQ %00000010 *S.CB.MODE.C8 .EQ %00000100 S.CB.MODE.C16 .EQ %00001000 16 colors (4 bits/pixel) -S.CB.MODE.C256 .EQ %00010000 256 colors (8 bits/pixel) +*S.CB.MODE.C256 .EQ %00010000 256 colors (8 bits/pixel) S.CB.COLOR .EQ 3 S.CB.X1 .EQ 4 S.CB.Y1 .EQ 6 @@ -69,8 +70,9 @@ S.BM.F.BBP8 .EQ %00010000 S.BM.RowBytes .EQ 1 S.BM.W .EQ 2 S.BM.H .EQ 4 -S.BM.MASK.OFFSET .EQ 6 -S.BM.DATA .EQ 8 +S.BM.MASK.OFS .EQ 6 +* +S.BM .EQ 8 *-------------------------------------- LIBGUI.InitGUI.A .EQ 4 LIBGUI.CloseGUI .EQ 6 diff --git a/SBIN/GUI.S.txt b/SBIN/GUI.S.txt index d9aa9cb6..25e264e9 100644 --- a/SBIN/GUI.S.txt +++ b/SBIN/GUI.S.txt @@ -248,11 +248,48 @@ MouseData .BS 5 Rect.CB .DA #S.CB.CMD.FILLRECT .DA #S.CB.OP.ORA .DA #S.CB.MODE.C16 - .DA #13 + .DA #11 + .DA 0 + .DA 0 + .DA 559 + .DA 191 + + .DA #S.CB.CMD.FILLRECT + .DA #S.CB.OP.ORA + .DA #S.CB.MODE.MONO + .DA #1 + .DA 10 + .DA 10 + .DA 550 + .DA 180 + + .DA #S.CB.CMD.FILLRECT + .DA #S.CB.OP.ORA + .DA #S.CB.MODE.C16 + .DA #0 + .DA 20 + .DA 20 + .DA 540 + .DA 170 + + .DA #S.CB.CMD.FILLRECT + .DA #S.CB.OP.ORA + .DA #S.CB.MODE.C16 + .DA #9 .DA 30 .DA 30 .DA 530 .DA 160 + + .DA #S.CB.CMD.FILLRECT + .DA #S.CB.OP.ORA + .DA #S.CB.MODE.C16 + .DA #8 + .DA 40 + .DA 40 + .DA 520 + .DA 150 + .DA #0 *-------------------------------------- SetPixel.CB .DA #S.CB.CMD.SETPIXEL @@ -271,7 +308,7 @@ DrawLines.CB .DA #S.CB.CMD.DRAWLINE .DA 191 .DA 80+191 .DA 191+191 -*-------------------------------------- + .DA #S.CB.CMD.DRAWLINE .DA #S.CB.OP.ORA .DA #S.CB.MODE.MONO @@ -280,7 +317,7 @@ DrawLines.CB .DA #S.CB.CMD.DRAWLINE .DA 0 .DA 140 .DA 191 -*-------------------------------------- + .DA #S.CB.CMD.DRAWLINE .DA #S.CB.OP.ORA .DA #S.CB.MODE.MONO @@ -289,7 +326,7 @@ DrawLines.CB .DA #S.CB.CMD.DRAWLINE .DA 0 .DA 100+191 .DA 191 -*-------------------------------------- + .DA #S.CB.CMD.DRAWLINE .DA #S.CB.OP.ORA .DA #S.CB.MODE.MONO @@ -298,7 +335,7 @@ DrawLines.CB .DA #S.CB.CMD.DRAWLINE .DA 0 .DA 559 .DA 191 -*-------------------------------------- + .DA #S.CB.CMD.DRAWLINE .DA #S.CB.OP.ORA .DA #S.CB.MODE.MONO @@ -307,7 +344,7 @@ DrawLines.CB .DA #S.CB.CMD.DRAWLINE .DA 0 .DA 28 .DA 191 -*-------------------------------------- + .DA #S.CB.CMD.DRAWLINE .DA #S.CB.OP.ORA .DA #S.CB.MODE.MONO @@ -316,7 +353,16 @@ DrawLines.CB .DA #S.CB.CMD.DRAWLINE .DA 0 .DA 84 .DA 191 -*-------------------------------------- + + .DA #S.CB.CMD.DRAWLINE + .DA #S.CB.OP.ORA + .DA #S.CB.MODE.MONO + .DA #1 + .DA 0 + .DA 92 + .DA 559 + .DA 92 + .DA #0 *-------------------------------------- .DUMMY