From 19cf1081e1388ee6b3c9b2cc94cc4369916162a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Mon, 4 Dec 2017 17:42:08 +0100 Subject: [PATCH] Kernel 0.9.1 : LibGui, Clipping.... --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes DRV/DHGR.DRV.S.LBUF.txt | 39 ++++++++++++--- LIB/LIBGUI.G.CUR.txt | 32 +++++-------- LIB/LIBGUI.S.CLIP.txt | 100 +++++++++++++++++---------------------- LIB/LIBGUI.S.CUR.txt | 10 +++- LIB/LIBGUI.S.txt | 48 ++++++++++++++----- SBIN/GUI.S.txt | 29 +++++++----- 8 files changed, 148 insertions(+), 110 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 7bbae140329be3d65121a335e4f6bad92cab9aff..b33695dffb7cabb499006f0931e6a898fbefd232 100644 GIT binary patch delta 4471 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 diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index 616c40e1fd1bdd415a638b6ef229357421668523..980de51a5ba0b5580c864e7b093fcc1831049f23 100644 GIT binary patch delta 9405 zcmZ`;3s_v$wO(gt4jkqHfy@gS9sxoO0gf}1gg`V=m>~%Y0f89C>eT@z4N3rEVo0r> zOcD}nys3{iTUwu0u_jhytx0Pi;@iHG)Ec$6x7yq1ZF`&A*7n}M(tq!LW*9K$`|>e+ zowe6qd++tH*WR@&uxnS~=(x?cx3W6_&KrJTLH)#A?b`+dethR^S3|J-VMqsH+lO&Ou4L{*AT+F@EYv!sqnk5F(^m$5lA z7+ZM&JjbrJ4C%@$wr#t`qpUhUx!sa+9K+{M*j(&^TI_{i*pj&AUd>g(@M7=BWpd(NyjiLdVRuJMe1?zm49Vcx#p&Y z$?XJcSJc+mHq6+JV}|wHlkvjqxw3tOu|#FJ(cZDCyT#}>f^C_=w-3=y! zGH^BtIzaZ_WHhk;p?=ERLsMh1@dRmmrBQk(+5Nw?6;|o{aGaw<38Rs;{WKLBA0qwc z6iNLg1Xka|-usfZh`sY=Yi|1i5bU>-(a6T5{iOY;5KG!YDRsf8DA;XWwyCw}4!){( zoB8>6`FZ&rl&Y@YySI+)Fok7(POQF{w7cc<_ItQ?EgM7Ry_ecr zo7Zn@J-9a5-P4t*7#i&R==MQlq=FXT$A0>>wX*1b+A3M@Fq*p)e$pP0LaIN{N{?BW zE_+Z83m>AC9wg)<-E%#JPkt)`Tfq{2GLa}Z+=dgXttf;WgnvUD$uYZKU1-nch3uHHU2;r=N5fOdmGFUD9Xp zrT7pVow0gzm??ev9xAzu-8Ew^Rz91W1G`AhxtmM7hrK&vEvmlPoUZn#cy zGwJ3~@D#i3xYZMfCzZEGIdG=@r?~zccv3llZ^?!)<>nTc+)O!esq*)R1TFlkoD4$>AgQ8#Hwl>ED#&N*`rCEA-w=?iu2qb1brh z+si>yLGN=Wr`SiZJ!FKsnl`t!Zfqgf^XZ>p@x2{gRPch_;)~`tKjplHpJF4h@SK;E z18gzpmE-{Co%3pP0OQubjRB4Y`f1;h=c<2~lQy-thspju{OssT_$d1Xg}ROIo~EuI zvY+I?Irz0xWScTtLWu4DV?VL3EnS#H4Q?8(^ejLc@ak1Oe>mRx59`rr{EAK-kG~o* zRnryjKuOD1L{N9-C^(Mw(b&PY-96zZ7$BT--U0=&XhMR#4knqWOi@|BBEl}>^Nejv z?Zn>hmbP^XfW38HYfFe63l$N(AuSl`-x@`<)*Q;zKy-ridZ!|tGeo%{N^_e^cuXY< zl&)xGKscZS@SAOI;U-#K#GVQ2l~;K&m&aY;vlw%WN=)5CEtj{i?=retnnKNO9l=Y< zQL0Q`yKOYFek2sVLC7Mt3^VMDl%$(4H`lF@>y}iq)qS>NWii{_XIs=!lZHZ*}oF^HC>|16(FO{E{R4Xh}ZY#)zKSq$}21HAiNg6BZw`FF+OHoyg zGCg2xu<^q^bhmAVvVyI=+qOFHFp*TnlQE=Znva~wN4R-Z&8W!FB+X@ls%pjtT9RnO zs|tD3j4e6agc*o4s!3bO(IzBj`ut*zg&cFBEULnahJPj#%bLg&6fxIF?q^upJvLXI zBTmc*Gt`7z0KbVk$?x|=TXFz@X^hwt<(ps>YhARRzDpgd`GJtSU(ynp|tXJ;OJX38@^Qvn1b4 z2520oVsmnF91%GzYAE6+9D@oD%rpM35oyGld1El=Semvrg<&=agr@*gUA2swY5MoZrHuhMDKCLF&`rwP+>{7;gUvM}dwlB8Kf zbpDp6+QdOhBNnPSerGby8n)wqlcbdSJAa=drBLELBLKAY56PAIZJB6!FG)*bQ2Qf$ z(w1>dH}+D-gFGwuJ|uF7ZO9!SPUQ~TG;)W|0C^rEVewug$JOo{1>4vp+E^Dvq8d`U`y zXHBL~aH!;cnjL`fYPd`xr2$fo^Grx8^MTaqD^dy^r75NK8NtmqK4&e+{2Hni@_t?L z_}~bWE5QMh{wzK=91>NzUfi$3jizxh~tTfWn|E|{c8+u6p6R%BWP5Ni4TH*UN zdyFl^{UZa>u+h}JkF>v-%KnwFRIm~Eq5t2kw*N1e^8D=sOYurW`@5NrNV-jtn?RANvPg~f{OM)tLq5ub zh0p28AO%mhaLkSjG6HJ&IvIgfN9G%{BLiy}9T^_wHJG~S$RL>Wzj?^1=X7Kc$VEp6 z1s~!!waue`C_Sek| zC+)Opif@omlou6EF_+_Jqd6jJ@vp^6lmc0#Ax??g1g_F=v-Edt*D1Bc4S4nS zk0*?VN#5s6tW5+1wTT_muc?;HqlpM=%YhM;@dm166(NdTXJlV*?)?IabM_BB&f7nb zN%eo?WYH1y{P|pZyWba9x$Li|%79(E$~v$o+5o6f06%j5o!FCSRL4?)ZO-xl-Mr=h z1@?-w?84LPq9zxR$Ir~PTanO`8yMt$hq(ut3q+=wAV*<^O<|`_t7VpYl?`8`uguGk z(o7r7RM^F*)bi;!)Pf>a;=E&t0)7(=< zfj4JcDDaXjrd8#0g%&Do4fbVmDD3LfYC{I1M1Y4F*61{Nf{fI6BcA(!@5??N=<)`d= zCDhAA`A*rZlu$VNyFqD{ztO2^R9ah1y1rTo-6h#`E>O@VI3x%87b?M#?ZfD_h;Cbe z+-sCzV758sznSy-$-P#YjS!syld4@LwOM>IJJpa`sWh>hax;pQX11U))1w60(cBD= z5@HuMW)>+ehZbZw*>Gc~ma$IZ#l$gKO9s2CF|#D@T`wrfyr;&$C)Lc*HpnHMt%|5( zgF}&RqqlIS5GyW`-`tlf>w`vj|5!9SY_35SI7M1&B4gQ$tczH-_IIvK~;V3qf13ox1(9eBAlAmWc zJcB`E18nRh4fREAB0>&$_JSWuQj0JRH)$qr>@1i2l zAru6nZIjdiJtzmfEk|y;5@*cC;cms^aI^DRRPJXT!p|mUg?Y2c5r@MyV^3;N@0*Gu z;TeeTBnRB?JQfumm^8RuaZK>Jv&Xc79LRO%?;W0491}dSI41aAq3PN92YKO!#W}(A zigV(=woe`t9IZGeq?I<=o>EorBr_C|!lbr_W6G2cF8!F`cE#dZSb*P=9V|9}l*dB) zQdfOtoOlu-8}~-*&1>62=&7~wyO(%EyL*>>@Bj(nnZIvLu}D~V#`E^b55h5^|E2FW zFBFZhNt~5yAKny9dC4Xlsr&K8c{44$EAW4tNcLdSd6*uDo&oCJvf)h zP$=Rf@AjZeSbttx%nUX4G~r!voOPU0D=bS9I_j*>>SbossF@oz^jh2{@7*J4*KvIf zcJz$utUiC9hQ1GI=m&R2Km@n4CfD*b1%d%HXsRm5Zk!Xe zS1ZT*^jEHkyYpmC5N^7IKX=KVE9K{NyPx1g;U>{VmDjfP5 zm)N*Z)TL!+&9R94fbw*fgQAqJkl%|JiwckJspZndB5?OZ_i719;rwQZ$2QRjZIv_8eRj>yjO#OTQQ zU~KS)D5(utercmPoK`$mY~C&28ThZdHR$B8#%wHXzd(pgV5tkGyrf~s_g>CV+8XHq zOV-M>zPHwrnQy-+IkV(qF_V3&*5bA_HnERCuQ%w;SiUOAKYUE=Dt~tj@WGHWnXHt z;E*n96WXKz!;IXFvy2RiXkZLw0w&0C(aCkSV!;p97 z2-;f0ROQ^{yC#4d_ODKa)(Ff()GSY}c;yMPoaV za*8Ap;uA~EUxC?$0%;3T<~Yx6NQ+6!)V7;G>INuo-@&6?qX_;Jv+cE=rU(3(^ne97 z${P?b$89a^diEJDmmxhb{5bpO%X)$LrnJwpU9y)mtRT-P*n2PQ?yR_!vv?QFdquBQ z611J53rcO_eD$6nQ!l*C=%BN_PTJhz<`_brn|{@iv7^UJ=UoPX};w%4T9 zNf#=g+kPO^KK=FNjgxvBlC(F>UB5{m5pRCpx407B(O7RF9Jock`^kKi9B*?~l1UK9 dDLH;5jW|6G`mvebp*bPaJKmI-{-yree*^tS>zDul delta 9937 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 diff --git a/DRV/DHGR.DRV.S.LBUF.txt b/DRV/DHGR.DRV.S.LBUF.txt index e2fb7af0..3bfad9b8 100644 --- a/DRV/DHGR.DRV.S.LBUF.txt +++ b/DRV/DHGR.DRV.S.LBUF.txt @@ -157,21 +157,46 @@ LBUF.DrawAtY.SET inx cpx LBUF.C2 - beq .2 C1=C2, go setup C2 + beq .7 C1=C2, go setup C2 bcs .8 C1+1 > C2, we are done... - -.1 ldy COL.BANK,x + + phx + + ldy COL.BANK,x C1+1,3,5,7..... sta $C000,y ldy COL.OFS,x - lda LBUF.DATA,x set all bytes between C1+1 & C2-1 +.1 lda LBUF.DATA,x set all bytes between C1+1 & C2-1 sta (ZPBasePtr),y - + iny + + inx inx cpx LBUF.C2 - bne .1 + bcc .1 -.2 ldy COL.BANK,x + plx + + inx + cpx LBUF.C2 + beq .7 + + ldy COL.BANK,x C1+2,4,6,8.... + sta $C000,y + ldy COL.OFS,x + +.2 lda LBUF.DATA,x set all bytes between C1+1 & C2-1 + sta (ZPBasePtr),y + iny + + inx + inx + cpx LBUF.C2 + bcc .2 + + ldx LBUF.C2 + +.7 ldy COL.BANK,x sta $C000,y ldy COL.OFS,x diff --git a/LIB/LIBGUI.G.CUR.txt b/LIB/LIBGUI.G.CUR.txt index 7bc09c29..7e7b16f7 100644 --- a/LIB/LIBGUI.G.CUR.txt +++ b/LIB/LIBGUI.G.CUR.txt @@ -19,8 +19,8 @@ CUR.HotPoints .DA #0,#0 CUR.T.ARROW .DA #5,#6 CUR.Wait2 .DA #5,#6 CUR.Wait3 .DA #5,#6 CUR.Wait4 - .DA #8,#8 CUR.Wait5 - .DA #8,#8 CUR.Wait6 + .DA #8,#7 CUR.Wait5 + .DA #8,#7 CUR.Wait6 *-------------------------------------- CUR.CB .DA #S.CB.CMD.BITBLT .BS 1 @@ -154,7 +154,7 @@ CUR.Wait4 .DA #S.BM.F.BBP1 .DA %001.11111100 .DA %000.00000000 -CUR.Wait4.MASK .DA %000.00000000 +CUR.Wait4.MASK .DA %110.00000011 .DA %100.00000001 .DA %100.00000001 .DA %110.00000011 @@ -166,15 +166,14 @@ CUR.Wait4.MASK .DA %000.00000000 .DA %110.00000011 .DA %100.00000001 .DA %100.00000001 - .DA %000.00000000 + .DA %110.00000011 *-------------------------------------- CUR.Wait5 .DA #S.BM.F.BBP1 .DA #2 RowBytes .DA 16 W - .DA 16 H + .DA 14 H .DA CUR.Wait5.MASK-CUR.Wait5 - .DA %00000000.00000000 .DA %00000000.00000000 .DA %00000010.00000000 .DA %00000110.00000000 @@ -189,32 +188,28 @@ CUR.Wait5 .DA #S.BM.F.BBP1 .DA %00000000.01100000 .DA %00000000.01000000 .DA %00000000.00000000 - .DA %00000000.00000000 -CUR.Wait5.MASK .DA %11111110.11111111 - .DA %11111100.11111111 +CUR.Wait5.MASK .DA %11111100.11111111 .DA %11111000.11111111 .DA %11110000.11111111 .DA %11100000.11111111 .DA %11000000.11111111 .DA %10000000.01111111 - .DA %00000000.00111111 - .DA %11111100.00000000 + .DA %10000000.00111111 + .DA %11111100.00000001 .DA %11111110.00000001 .DA %11111111.00000011 .DA %11111111.00000111 .DA %11111111.00001111 .DA %11111111.00011111 .DA %11111111.00111111 - .DA %11111111.01111111 *-------------------------------------- CUR.Wait6 .DA #S.BM.F.BBP1 .DA #2 RowBytes .DA 16 W - .DA 16 H + .DA 14 H .DA CUR.Wait6.MASK-CUR.Wait6 - .DA %00000000.00000000 .DA %00000000.00000000 .DA %00000000.01000000 .DA %00000000.01100000 @@ -229,24 +224,21 @@ CUR.Wait6 .DA #S.BM.F.BBP1 .DA %00000110.00000000 .DA %00000010.00000000 .DA %00000000.00000000 - .DA %00000000.00000000 -CUR.Wait6.MASK .DA %11111111.01111111 - .DA %11111111.00111111 +CUR.Wait6.MASK .DA %11111111.00111111 .DA %11111111.00011111 .DA %11111111.00001111 .DA %11111111.00000111 .DA %11111111.00000011 .DA %11111110.00000001 - .DA %11111100.00000000 - .DA %00000000.00111111 + .DA %11111100.00000001 + .DA %10000000.00111111 .DA %10000000.01111111 .DA %11000000.11111111 .DA %11100000.11111111 .DA %11110000.11111111 .DA %11111000.11111111 .DA %11111100.11111111 - .DA %11111110.11111111 *-------------------------------------- MAN SAVE /A2OSX.SRC/LIB/LIBGUI.G.CUR diff --git a/LIB/LIBGUI.S.CLIP.txt b/LIB/LIBGUI.S.CLIP.txt index 9b80cdce..660846a6 100644 --- a/LIB/LIBGUI.S.CLIP.txt +++ b/LIB/LIBGUI.S.CLIP.txt @@ -13,9 +13,8 @@ AUTO 6 * CC : CB.Cache clipped & visible * CS : CB.Cache invisible *-------------------------------------- -CLIP.YA >STYA ZPCBPtr - lda (ZPCBPtr) - tax +CLIP.YA jsr CB.Get + ldx CB.Cache+S.CB.CMD jmp (J.CLIP,x) *-------------------------------------- CLIP.Point @@ -34,99 +33,86 @@ CLIP.BitBlt.99 sec CLIP.BitBlt clc rts - >DEBUG - - ldy #S.CB.DestX+1 - lda (ZPCBPtr),y - tax - dey - lda (ZPCBPtr),y + lda CB.Cache+S.CB.DestX + ldx CB.Cache+S.CB.DestX+1 pha - - >SCMPAX GC.Cache+S.GC.X2 DestX after X2....exit - bmi CLIP.BitBlt.9 + + >SCMPAX GC.Cache+S.GC.X2 + bpl CLIP.BitBlt.9 DestX after X2....exit pla - >SCMPAX GC.Cache+S.GC.X1 DestX Inside X1-X2, go check if X1+W fit in - bpl .1 + >SCMPAX GC.Cache+S.GC.X1 + bpl .1 DestX Inside X1-X2, go check if X1+W fit in * S.CB.DestX before S.GC.X1: D=S.GC.X1-S.CB.DestX, S.CB.SrcW-=D, S.CB.DestX=0, S.CB.X1+=D lda GC.Cache+S.GC.X1 Compute D.... sec - ldy #S.CB.DestX - sbc (ZPCBPtr),y + sbc CB.Cache+S.CB.DestX sta D lda GC.Cache+S.GC.X1+1 - iny - sbc (ZPCBPtr),y + sbc CB.Cache+S.CB.DestX+1 sta D+1 ....always positive - ldy #S.CB.SrcW S.CB.SrcW-=D - lda (ZPCBPtr),y + lda CB.Cache+S.CB.SrcW S.CB.SrcW-=D sec sbc D - sta (ZPCBPtr),y + sta CB.Cache+S.CB.SrcW iny - lda (ZPCBPtr),y + lda CB.Cache+S.CB.SrcW+1 sbc D - sta (ZPCBPtr),y + sta CB.Cache+S.CB.SrcW+1 bcc CLIP.BitBlt.99 Negative!!!! nothing to do,exit... - lda #0 Dext.X=0 - ldy #S.CB.DestX - sta (ZPCBPtr),y - iny - sta (ZPCBPtr),y + stz CB.Cache+S.CB.DestX Dext.X=0 + stz CB.Cache+S.CB.DestX+1 - ldy #S.CB.X1 S.CB.X1+=D - lda (ZPCBPtr),y + lda CB.Cache+S.CB.X1 S.CB.X1+=D clc adc D - sta (ZPCBPtr),y - iny - lda (ZPCBPtr),y + sta CB.Cache+S.CB.X1 + lda CB.Cache+S.CB.X1+1 adc D+1 - sta (ZPCBPtr),y S.CB.DestX=0, new between S.GC.X1 & S.GC.X2.... + sta CB.Cache+S.CB.X1+1 S.CB.DestX=0, new between S.GC.X1 & S.GC.X2.... * S.CB.DestX between S.GC.X1 & S.GC.X2: D=S.GC.X2-S.CB.DestX - + .1 lda GC.Cache+S.GC.X2 sec - ldy #S.CB.DestY - sbc (ZPCBPtr),y + sbc CB.Cache+S.CB.DestX sta D - iny - lda GC.Cache+S.GC.X2 - sbc (ZPCBPtr),y + lda GC.Cache+S.GC.X2+1 + sbc CB.Cache+S.CB.DestX+1 sta D+1 Always positive... lda D - ldy #S.CB.SrcW - cmp (ZPCBPtr),y - - iny + cmp CB.Cache+S.CB.SrcW lda D+1 - cmp (ZPCBPtr),y + sbc CB.Cache+S.CB.SrcW+1 bcs CLIP.BitBlt.Y D >= SrcW....nothing to clip - lda D+1 SrcW < D, amke SrcW=D - sta (ZPCBPtr),y - dey - lda D - sta (ZPCBPtr),y + lda D SrcW < D, make SrcW=D + sta CB.Cache+S.CB.SrcW + lda D+1 + sta CB.Cache+S.CB.SrcW+1 -CLIP.BitBlt.Y ldy #S.CB.DestY+1 - lda (ZPCBPtr),y - tax - dey - lda (ZPCBPtr),y +CLIP.BitBlt.Y lda CB.Cache+S.CB.DestY + ldx CB.Cache+S.CB.DestY+1 pha >SCMPAX GC.Cache+S.GC.Y2 DestY after Y2....exit - bmi .9 + bpl .9 + pla + >SCMPAX GC.Cache+S.GC.Y1 + bpl .1 DestY Inside Y1-Y2, go check if Y1+H fit in + +* S.CB.DestY above S.GC.Y1: D=S.GC.Y1-S.CB.DestY, S.CB.SrcH-=D, S.CB.DestY=0, S.CB.Y1+=D + +* S.CB.DestY between S.GC.Y1 & S.GC.Y2: D=S.GC.Y2-S.CB.DestY + +.1 clc rts diff --git a/LIB/LIBGUI.S.CUR.txt b/LIB/LIBGUI.S.CUR.txt index 4b2e4b96..67a788fc 100644 --- a/LIB/LIBGUI.S.CUR.txt +++ b/LIB/LIBGUI.S.CUR.txt @@ -124,10 +124,16 @@ ShowCursor.I lda #S.CB.OP.ORA+S.CB.OP.MASK+S.CB.OP.SAVE sbc #0 sta CUR.CB+S.CB.DestY+1 -DrawCursor.I >LDYA L.CUR.CB +DrawCursor.I >LDYA L.GC.Screen + jsr GC.Get + + >LDYA L.CUR.CB jsr CLIP.YA bcs .9 - >LDYA L.CUR.CB + + >LDYA L.CB.Cache + +* >LDYA L.CUR.CB jmp GoDevGfx.YA .9 rts diff --git a/LIB/LIBGUI.S.txt b/LIB/LIBGUI.S.txt index 89395f7a..536af4af 100644 --- a/LIB/LIBGUI.S.txt +++ b/LIB/LIBGUI.S.txt @@ -202,21 +202,32 @@ CloseGUI lda hDevMouse sec rts *-------------------------------------- -GC.SetX2Y2 >STYA ZPGCPtr +GC.Get >STYA .1+1 + + ldx #S.GC-1 + +.1 lda $ffff,x SELF MODIFIED + sta GC.Cache,x + dex + bpl .1 + + rts +*-------------------------------------- +GC.SetX2Y2 >STYA ZPPtr1 ldy #S.GC.X1+1 - lda (ZPGCPtr),y + lda (ZPPtr1),y tax dey - lda (ZPGCPtr),y + lda (ZPPtr1),y clc ldy #S.GC.W - adc (ZPGCPtr),y + adc (ZPPtr1),y pha iny txa - adc (ZPGCPtr),y + adc (ZPPtr1),y tax pla sbc #0 @@ -224,24 +235,24 @@ GC.SetX2Y2 >STYA ZPGCPtr dex .1 ldy #S.GC.X2 - sta (ZPGCPtr),y + sta (ZPPtr1),y iny txa - sta (ZPGCPtr),y + sta (ZPPtr1),y ldy #S.GC.Y1+1 - lda (ZPGCPtr),y + lda (ZPPtr1),y tax dey - lda (ZPGCPtr),y + lda (ZPPtr1),y clc ldy #S.GC.H - adc (ZPGCPtr),y + adc (ZPPtr1),y pha iny txa - adc (ZPGCPtr),y + adc (ZPPtr1),y tax pla sbc #0 @@ -249,10 +260,21 @@ GC.SetX2Y2 >STYA ZPGCPtr dex .2 ldy #S.GC.Y2 - sta (ZPGCPtr),y + sta (ZPPtr1),y iny txa - sta (ZPGCPtr),y + sta (ZPPtr1),y + rts +*-------------------------------------- +CB.Get >STYA .1+1 + + ldx #S.CB-1 + +.1 lda $ffff,x SELF MODIFIED + sta CB.Cache,x + dex + bpl .1 + rts *-------------------------------------- ReadMouse >PULLYA diff --git a/SBIN/GUI.S.txt b/SBIN/GUI.S.txt index 5c10ca51..e57a6ddc 100644 --- a/SBIN/GUI.S.txt +++ b/SBIN/GUI.S.txt @@ -110,17 +110,21 @@ CS.RUN lda A2osX.ASCREEN GUI screen active ? lda MouseData+S.MOUSE.S -.1 bit #S.MOUSE.S.DOWN +.1 bit #S.MOUSE.S.CLK beq .4 - sta $C056 - >DEBUG - sta $C057 + lda MouseData+S.MOUSE.X1 + sta CB.BitBlt+S.CB.DestX + lda MouseData+S.MOUSE.X1+1 + sta CB.BitBlt+S.CB.DestX+1 + lda MouseData+S.MOUSE.Y1 + sta CB.BitBlt+S.CB.DestY + lda MouseData+S.MOUSE.Y1+1 + sta CB.BitBlt+S.CB.DestY+1 + jsr Destop.Paint - >LIBCALL hLIBGUI,LIBGUI.ShowCursor - - + .4 .8 clc @@ -128,8 +132,8 @@ CS.RUN lda A2osX.ASCREEN GUI screen active ? *-------------------------------------- CS.DOEVENT lda (pEvent) bpl .9 -* asl -* bpl .9 + asl + bpl .9 >LIBCALL hLIBGUI,LIBGUI.UpdateCursor @@ -139,12 +143,15 @@ CS.DOEVENT lda (pEvent) CS.QUIT clc rts *-------------------------------------- -Destop.Paint >PUSHW L.CB.Rect +Destop.Paint >LIBCALL hLIBGUI,LIBGUI.HideCursor + + >PUSHW L.CB.Rect >LIBCALL hLIBGUI,LIBGUI.Draw >PUSHW L.CB.BitBlt >LIBCALL hLIBGUI,LIBGUI.Draw + >LIBCALL hLIBGUI,LIBGUI.ShowCursor rts *-------------------------------------- CS.END @@ -154,7 +161,7 @@ hLIBGUI .BS 1 *-------------------------------------- Filename >CSTR "/A2OSX.BUILD/MARILYN" *-------------------------------------- -MouseData .DA S.MOUSE +MouseData .BS S.MOUSE *-------------------------------------- CB.Rect .DA #S.CB.CMD.FILLRECT .DA #S.CB.OP.SET