From 7550b8bdfb21aee380d7d0078e55154e8de84649 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 4 May 2018 16:55:29 +0200 Subject: [PATCH] Kernel 0.9.1 : KERNEL, Preemtive mode, Code cleaning....step by step....#5 GUI,DHGR cleaning /shrinking... --- .Floppies/A2OSX.BOOT.po | Bin 143360 -> 143360 bytes .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes .Fonts/SYSx7.fnt | Bin 3472 -> 3472 bytes .Fonts/SYSx7B.fnt | Bin 0 -> 3504 bytes DRV/CONSOLE.DRV.S.txt | 123 +++++++++++++++++---------------- DRV/DHGR.DRV.S.LBUF.txt | 32 ++++----- DRV/DHGR.DRV.S.LINE.txt | 24 +++---- DRV/DHGR.DRV.S.PIX.txt | 16 ++--- DRV/DHGR.DRV.S.RECT.txt | 4 +- DRV/DHGR.DRV.S.txt | 54 ++++++++------- INC/A2osX.I.txt | 4 +- INC/GUI.I.txt | 142 +++++++++++++++++++++++++++++++++++++++ INC/LIBGUI.I.txt | 74 -------------------- LIB/LIBGUI.S.BM.txt | 12 ++++ LIB/LIBGUI.S.BUT.txt | 26 +++++++ LIB/LIBGUI.S.DRAW.txt | 1 + LIB/LIBGUI.S.MENU.txt | 28 ++++++++ LIB/LIBGUI.S.txt | 1 + SBIN/GETTY.S.txt | 4 +- SBIN/GUI.S.txt | 80 ++++++++++++++-------- SBIN/LOGIN.S.txt | 6 +- SBIN/SHELL.S.CMD.txt | 2 +- SBIN/SHELL.S.CSH.txt | 6 +- SYS/KERNEL.S.DIRENT.txt | 4 +- SYS/KERNEL.S.MEM.txt | 44 ++++++++---- SYS/KERNEL.S.OSD.txt | 57 +++++++++++----- SYS/KERNEL.S.STDIO.txt | 15 ++--- 28 files changed, 482 insertions(+), 277 deletions(-) create mode 100644 .Fonts/SYSx7B.fnt create mode 100644 LIB/LIBGUI.S.BM.txt create mode 100644 LIB/LIBGUI.S.BUT.txt create mode 100644 LIB/LIBGUI.S.MENU.txt diff --git a/.Floppies/A2OSX.BOOT.po b/.Floppies/A2OSX.BOOT.po index b1b2fc8fa58b9b6ecd0f8bed4771b0addfe304d1..65a268cfefc7d1492d7eb204dd2e4ddc5a7f00b4 100644 GIT binary patch delta 11825 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 Z1IGjf1LpqGNrW$~7aLA&h$8lj{s)2MPwW5y diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index cef1f0a340ed319a22347d22b7b24ff7439fd0d1..eabb578d1148c38c95f136cb9e510da86a6995cc 100644 GIT binary patch delta 17234 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"vSVlgQ*( z3kOfJ#ln;$Y+Q3(E89ucJjITvIl!|1Zm+cGB>XjT3jd*YqLuv@WqBBt7r71(3prV^ z9)!nGMZKe*g{nUY#?B|xxC0|OumHaG`N;#=o8Y9(9Q>5wAZ0S7d zP=nUzYw}`kM5Rv_|^2^rW;^dO>OvPSu~@}%-T<$2|2%1-4SWuG!9 zFMsa5`FLemGmNFAKPb@<#gJy{YIZ7Zky6nqDN|BXUjtW<4_(PVxo;85wH)}!{5g7++i zeP?9EA*mEtEM<{luVG;e>)#Z-&c^Fs{Fwq?OZ{*T5KbK(iOn-yWMm|+A_@RS0l)%A zBw?X|NRGiWzyUM3Q~+?)0aCG4Bw}E1itU3{DZ*A6P&he~lW~NHSq#E28NP(B`@RU9 z!Zss`O-Qj#f^ZCEYG5B`As$4*6*wRoj%EVX*h}mP@e*Mb0Z>VV+uDy<8L;sZR1q_x zaRXp2;54Zs2aU!75(S=0rBUF%_>odFKffqHKbedg8;MXRl$TT2Pmr&inzWjea;qnS z-{J@F8<0$jyF)767bqsj$aAYxh!;L7s4o(lUSp>Y?j*irYhGq)XtARLbDCMGkRd-r z^~3us&9Hy0q+|;hFIo2Zax--59}kRTWrEbk{#&5kOpry2=EDY2hL#b!iqN${rDzkO z&lAK-=x(4AR7&U{2vSM%M@YVo&|`$2B=m1U<>(`zQuGNyE&-LG>m>gBp**2+Kq+JZ%Azqq88iu~6s42=tRct( z1?CX;LZA|~oUm7u{5qfv+CuU#ko?Pp?gdJtGLjd7O3-1T6sjh8J)y^eGU#2P67(KW zDQYG3AB46O{07h!5_Fqfd`aj%LVqL_9w8_!11duSKv@(@XcVEbgz5=30i{tYp;Le| zXa=Dsg3vz_`X-^ZguV@wMJGtUh2%dZ^kYIV z5_*-;ZbJVFREqjY{yRcpVQY+PmYih&O(pz95C&e-W|5N6K%g{I6FM9ygGOK~OuWbp z%V1GHT(D>Xp^pQVpdvz_CUi5Q+X&r3=pI5}1C=RUgc_PX6T>2|x_nAZtB;NSvYGkm;a;zn&9UT;Sm0x`GSi?9HQ zw6%TJ2?wqXnRp}c*D3k=t!H1K5q7=|)&=@bi<~Y$O+6_12E9$nEXu=uPT2rI)gnD_w*R|Naw1#M7YFZ^L|cAL$qqIq|>(U@v9 zc0Ua^;d6Z*`A%BxHG5Z25_MqOZFZw5XgiREtG?B~#u;>*zt8i{ldWt6Q}aF>H9T8< zTZb&y0}EiSir*6|B<~5CP*`Dw;ot~GSS3nl=@b28ghj?0!Z_gXPXaFpnJ8kZ~!rf7LQJ;!J z77yU?N*vitj7MQhgrqJu)UwpaS|~c6jDnW=kVPUg8U;P>Ll%h0SQNC}hh&Nfyr5@> z?Y3%#2$Su0N-~nK6j$;=PXLZ9Wtc&BNpQlk%7<7C#f8)6XQa)WA)XSVprQfUfmil| zRu3QpZ|j9VDQ*>Z`8Hsi@wP!#>=Pr6F&4?!h{l7T!nnBe^SvxKbnW1_F8bkiP-Zlt zh^GfRgmI#qH9f0ZoW$f5&NR#`oHi5QmYcR%NS`m66*S&R&>30T8HPMKrv&`X`I5Mh z`6hyAW=w-Ox`4AAbGqhB(n7{0KgyY%M>t~_NMcl3DTGrnE!SsZ%>v1IE_XCRr_alQ z-6beFzCbdCiyb3^dAaaz*|f#Y%tFb}_#h)-*J8=8#nPI^vNIfAXvoc*o?)1gH6zbZ gXgHykfAgzj`95k_lzdl|Vpo)MSJaT2D8E(z3m+zft^fc4 delta 23261 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 diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index d93cfbcd5f747888902674d38c13065e2268a06b..878a7924e1e6dcfc3038cb916f704aa35dbfd973 100644 GIT binary patch delta 68063 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 SKkY?Xcgq$*b^EG(^Zp;73A}Is delta 67184 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 Vt8fRMx8v{BJK$1(SEYN#{{h(abk6_) diff --git a/.Fonts/SYSx7.fnt b/.Fonts/SYSx7.fnt index e3b9ca7b52183df4777ee8742ca8ad534e9d81d2..53636d5af47231908c268317ed5517cc995b1f71 100644 GIT binary patch delta 88 zcmbOrJwbXxGGoKU6a!UuhG}dJ4D1YZfg~Hl5-_4+)!(v7KTA0M6nONB{r; diff --git a/.Fonts/SYSx7B.fnt b/.Fonts/SYSx7B.fnt new file mode 100644 index 0000000000000000000000000000000000000000..0a71ded8d51a5f1f23bf9e4e5133f998729bfbf2 GIT binary patch literal 3504 zcma*o3zQ_+7zgnGOjUKyBpX^hG6+h%25WT)8LTKWavF<@6*dx7B)cXgn-WVZ!K%=b z_KG?ovDido(cXjceied6VZDo8M|m$IDxQs&_<#S(>^Ym0oa4^)?|%2ITet45zEurp z*I~f%=Waf2+vYR;^UmD10|Z!7*G^{`L=iaPj%;%nttUax$s zZ9Na84sN6Pj`ApZZ{@p+k5zn};z!F3)Wt^H#?zEJO)klE=oDV4_$9J0Urk+Hs`yQG z8bkSR`9bABCO@mpm#Kqq&?$UZaYd(dgD zr4Ak_A1WV7J@n)gX$w!GZ9H9`A)l-Kx$=BvQh71;aEZK3nVpK?q4>S>!}62z3v>ow zr7e6*nIBLOdlmmu{$AGdpYl4|f;VfcTSGnETJard8+WBG%qxF?#Sd2eaJi_=;}kzh zo~%qHpG_TXr7m7TJ-k?%m(y9iN|_zA@nglmQT}S` z;jfDSO&v@fVx!H_Hf~90a65S?>f!Fx#eHcT4^aLgbQS^i@C131JXM}fT|9?6cphyd zQU0aMU!?f8@(pwvZ;@|T<~?$mI{1YAyfR;*E($t>?<@W(b?^)7VZZ#d^8Zl$U+Erd zJMB>F;&AHW_R^R4qElE$T|9_7SWjCxUh!k8hZCubO^TmMTiBxbZ0cZ};uk4?nS3Rk zMyB|U)Wel@3hz|@{qm#K!KbN*FVYrv%kRh^DgQJ1Yxzg{7x^#AcNx!Z(>88FUEEe4 zDeorlBaf!jSdfpP4o;Adryib6U7RAHCC`+xJWpyDESx}%BRX_ zP!F5sS@QYv0(qev$k$O9mn*)4ZajHoV!t{`zv!>@lVq|oDJBWR@i_JYKenpdEsAb} zZZes$0;0N(FqstnelcMy%hXy~DJBbZOV)}9vCs3OAPVvvNiXS@B`^y42jBO{{J@W@ zh{hv-#ID2P5JM!R(bD|9x->sj){~_&*pnqq(~2MXopHw|7>ol}NYk3mFJ8Ae&zjSw z&=M?Q;W;T%l)X&NaLhmW$uOR;{Vel?EaO6=rECd#kXo0(&IphOEKG2gBcGK`o=16H z-73W-+AbPd75k;!cO7ruye) zU>D*bT4n_v;+)v#P38^oS&dkhlcJau1;)j=D8@*NJTDTqSjHIVb)H*Q<@R+H`92=w z5j&xdSn8(AQIvIE7GSqLuVEe7r6{i6$BI`dnlZ;3rPxS~c$$ zTgd`=0UJ8WqJ`$_dDZPMbi37A zyd=xsv-P)rOC8l))*l##_aw)WymRcyn*-4~L;W_I0PD!-jR))lWE_m0%cH<@+V?lC{!`%k%?3 z=dqMWtneLFrOE#NdV@+g`c|!79IQzf2jOT#pHE~k zh!OZb{G>h_puLgcAep5wFl{HlwSmA7}*cz-Q1H`@F z{$7l5dCxLmWC7nKyjOlxMF&+`)8cA_A<&6OqnKlk27^I@PE&CcS<7sa_Kn%QDy!1C z$4kX|P<7%ghTl|CQ-w{H9hAh{a8tdL`z_P@A})sKH5F%OEl$a*G=LVS@0;s`)@KHM qc(tO?CUG+`ugeIz?Zquq6SqxF?Hu|6%ZO8G6{xcm?Hi9?A1 literal 0 HcmV?d00001 diff --git a/DRV/CONSOLE.DRV.S.txt b/DRV/CONSOLE.DRV.S.txt index 5df57048..2cd854d7 100644 --- a/DRV/CONSOLE.DRV.S.txt +++ b/DRV/CONSOLE.DRV.S.txt @@ -16,6 +16,8 @@ ESCSEQ.MAXLEN .EQ 16 *-------------------------------------- ZPBaseL1 .EQ ZPDRV ZPBaseL2 .EQ ZPDRV+2 +ZPTmpWord .EQ ZPDRV+4 +ZPTmpBool .EQ ZPDRV+6 *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -280,8 +282,8 @@ COUT.ExecEscSeq stz EscSeqParamCnt ldx #0 EscSeq Ptr -.10 stz EscSeqParamTmp - stz EscSeqParamTmp+1 +.10 stz ZPTmpWord + stz ZPTmpWord+1 .1 inx lda EscSeq,x @@ -294,27 +296,27 @@ COUT.ExecEscSeq stz EscSeqParamCnt dec bEscSeqInNum and #$0F pha - lda EscSeqParamTmp - ldy EscSeqParamTmp+1 - asl EscSeqParamTmp param=param*10 - rol EscSeqParamTmp+1 - asl EscSeqParamTmp - rol EscSeqParamTmp+1 + lda ZPTmpWord + ldy ZPTmpWord+1 + asl ZPTmpWord param=param*10 + rol ZPTmpWord+1 + asl ZPTmpWord + rol ZPTmpWord+1 clc - adc EscSeqParamTmp - sta EscSeqParamTmp + adc ZPTmpWord + sta ZPTmpWord tya - adc EscSeqParamTmp+1 - sta EscSeqParamTmp+1 - asl EscSeqParamTmp - rol EscSeqParamTmp+1 + adc ZPTmpWord+1 + sta ZPTmpWord+1 + asl ZPTmpWord + rol ZPTmpWord+1 pla clc - adc EscSeqParamTmp - sta EscSeqParamTmp + adc ZPTmpWord + sta ZPTmpWord bcc .1 - inc EscSeqParamTmp+1 + inc ZPTmpWord+1 bra .1 .2 bit bEscSeqInNum @@ -322,10 +324,10 @@ COUT.ExecEscSeq stz EscSeqParamCnt stz bEscSeqInNum lda #255 - ldy EscSeqParamTmp+1 + ldy ZPTmpWord+1 bne .21 - lda EscSeqParamTmp + lda ZPTmpWord .21 ldy EscSeqParamCnt sta EscSeqParam,y inc EscSeqParamCnt @@ -443,8 +445,8 @@ ClrScr stz CH lda #" " - php - sei +* php +* sei sta SETWRITEAUX ldy #39 @@ -453,7 +455,7 @@ ClrScr stz CH bpl .2 sta CLRWRITEAUX - plp +* plp ldy #39 .3 sta (ZPBaseL1),y @@ -701,16 +703,16 @@ SetCharAtYX cmp #$40 pla bcs .1 - php - sei +* php +* sei sta SETWRITEAUX - sta (ZPBaseL1),y +.1 sta (ZPBaseL1),y sta CLRWRITEAUX - plp +* plp rts -.1 sta (ZPBaseL1),y - rts +*.1 sta (ZPBaseL1),y +* rts *-------------------------------------- GetCharAtCurPos ldy CH ldx CV @@ -723,16 +725,16 @@ GetCharAtYX jsr SETUP.L1X bcs .1 - php - sei +* php +* sei sta SETREADAUX - lda (ZPBaseL1),y +.1 lda (ZPBaseL1),y sta CLRREADAUX - plp +* plp rts -.1 lda (ZPBaseL1),y - rts +*.1 lda (ZPBaseL1),y +* rts *-------------------------------------- SETUP.L1X lda BASEL,x sta ZPBaseL1 @@ -745,8 +747,8 @@ COPY.XtoL1 lda BASEL,x lda BASEH,x sta ZPBaseL2+1 - php - sei +* php +* sei sta SETWRITEAUX sta SETREADAUX @@ -754,7 +756,7 @@ COPY.XtoL1 lda BASEL,x sta CLRWRITEAUX sta CLRREADAUX - plp +* plp .1 ldy #39 @@ -764,8 +766,8 @@ COPY.XtoL1 lda BASEL,x bpl .2 rts *-------------------------------------- -Decimal.Out stz DecimalBuffer - stz DecimalBuffer+1 +Decimal.Out stz ZPTmpWord + stz ZPTmpWord+1 ldx #8 sed @@ -775,35 +777,40 @@ Decimal.Out stz DecimalBuffer .1 tya asl tay - lda DecimalBuffer - adc DecimalBuffer - sta DecimalBuffer - lda DecimalBuffer+1 - adc DecimalBuffer+1 - sta DecimalBuffer+1 + lda ZPTmpWord + adc ZPTmpWord + sta ZPTmpWord + lda ZPTmpWord+1 + adc ZPTmpWord+1 + sta ZPTmpWord+1 dex bne .1 + cld - stz bDecimal0Out - lda DecimalBuffer+1 + stz ZPTmpBool No leading 0 + lda ZPTmpWord+1 and #$0f beq .2 + ora #$30 - dec bDecimal0Out + dec ZPTmpBool non zero, print everything jsr Char.Out.Put -.2 lda DecimalBuffer +.2 lda ZPTmpWord lsr lsr lsr lsr bne .3 - bit bDecimal0Out + + bit ZPTmpBool Print this digit ? bpl .4 + .3 ora #$30 jsr Char.Out.Put -.4 lda DecimalBuffer + +.4 lda ZPTmpWord and #$0f ora #$30 *-------------------------------------- @@ -836,8 +843,14 @@ Char.Out.Get sec DRV.CS.END EscCodes >PSTR "MDc" EscSeqCmds >PSTR "mnrKH" +ENQ.String .AZ "XTERM" +SB.IS.TTYPE .DA #IAC,#SB,#TELOPT.TTYPE,#SB.IS + .AS 'XTERM' + .DA #IAC,#SE +SB.IS.TTYPE.LEN .EQ *-SB.IS.TTYPE BASEL .HS 00.80.00.80.00.80.00.80.28.A8.28.A8.28.A8.28.A8.50.D0.50.D0.50.D0.50.D0 BASEH .HS 08.08.09.09.0A.0A.0B.0B.08.08.09.09.0A.0A.0B.0B.08.08.09.09.0A.0A.0B.0B +*-------------------------------------- CH .BS 1 CV .BS 1 INVFLG .BS 1 @@ -848,8 +861,6 @@ CURCHAR .BS 1 OutBuffer .BS 16 OutPtr .BS 1 OutCnt .BS 1 -DecimalBuffer .BS 2 -bDecimal0Out .BS 1 *-------------------------------------- KeyRemapped .HS 05080A0B0D15 L,D,U,CR,R KeyRemappedIdx .HS 050004080C0F @@ -870,7 +881,6 @@ bEscMode .BS 1 bEscModeCSI .BS 1 bEscSeqInNum .BS 1 EscSeq .BS ESCSEQ.MAXLEN+1 -EscSeqParamTmp .BS 2 EscSeqParamCnt .BS 1 EscSeqParam .BS 4 *-------------------------------------- @@ -881,11 +891,6 @@ DEVSTAT .DA #S.DSTAT.S.WRITE+S.DSTAT.S.READ .DA #0 .DA #0 .DA #91 -ENQ.String .AZ "XTERM" -SB.IS.TTYPE .DA #IAC,#SB,#TELOPT.TTYPE,#SB.IS - .AS 'XTERM' - .DA #IAC,#SE -SB.IS.TTYPE.LEN .EQ *-SB.IS.TTYPE *-------------------------------------- MAN SAVE /A2OSX.SRC/DRV/CONSOLE.DRV.S diff --git a/DRV/DHGR.DRV.S.LBUF.txt b/DRV/DHGR.DRV.S.LBUF.txt index 56641496..da776b98 100644 --- a/DRV/DHGR.DRV.S.LBUF.txt +++ b/DRV/DHGR.DRV.S.LBUF.txt @@ -98,10 +98,10 @@ LBUF.DrawAtY.AND.XOR lda (ZPBasePtr),y Get C1 and LBUF.C1.MASK clear ONLY bits starting at X1 mod 7 - sta GBYTE + sta ZPTmpByte lda LBUF.DATA,x get DATA bits and LBUF.C1.DATA set ONLY bits starting at X1 mod 7 - ora GBYTE + ora ZPTmpByte eor (ZPBasePtr),y sta (ZPBasePtr),y update screen @@ -128,10 +128,10 @@ LBUF.DrawAtY.AND.XOR lda (ZPBasePtr),y Get C2 and LBUF.C2.MASK clear ONLY bits ending at X2 mod 7 - sta GBYTE + sta ZPTmpByte lda LBUF.DATA,x get DATA bits and LBUF.C2.DATA set ONLY bits ending at X2 mod 7 - ora GBYTE + ora ZPTmpByte eor (ZPBasePtr),y sta (ZPBasePtr),y update screen @@ -147,11 +147,11 @@ LBUF.DrawAtY.AND.SET lda (ZPBasePtr),y Clear screen at C1 and LBUF.C1.MASK with MASK bits - sta GBYTE + sta ZPTmpByte lda LBUF.DATA,x get DATA bits and LBUF.C1.DATA set ONLY bits starting at X1 mod 7 - ora GBYTE ora with screen bits + ora ZPTmpByte ora with screen bits sta (ZPBasePtr),y update screen inx @@ -201,11 +201,11 @@ LBUF.DrawAtY.AND.SET lda (ZPBasePtr),y Get C2 and LBUF.C2.MASK clear ONLY bits ending at X2 mod 7 - sta GBYTE + sta ZPTmpByte lda LBUF.DATA,x get DATA bits and LBUF.C2.DATA set ONLY bits ending at X2 mod 7 - ora GBYTE + ora ZPTmpByte sta (ZPBasePtr),y update screen .8 rts @@ -219,11 +219,11 @@ LBUF.DrawAtY.ORA lda (ZPBasePtr),y Get C1 and LBUF.C1.MASK clear ONLY bits starting at X1 mod 7 - sta GBYTE + sta ZPTmpByte lda LBUF.DATA,x get DATA bits and LBUF.C1.DATA set ONLY bits starting at X1 mod 7 - ora GBYTE + ora ZPTmpByte ora (ZPBasePtr),y sta (ZPBasePtr),y update screen @@ -251,11 +251,11 @@ LBUF.DrawAtY.ORA lda LBUF.MASK,x get MASK bits ora LBUF.C2.MASK and (ZPBasePtr),y - sta GBYTE + sta ZPTmpByte lda LBUF.DATA,x get DATA bits and LBUF.C2.DATA set ONLY bits ending at X2 mod 7 - ora GBYTE + ora ZPTmpByte sta (ZPBasePtr),y update screen .8 rts @@ -270,11 +270,11 @@ LBUF.DrawAtY.AND.ORA lda LBUF.MASK,x get MASK bits ora LBUF.C1.MASK clear ONLY bits starting at X1 mod 7 and (ZPBasePtr),y Clear screen at C1 - sta GBYTE + sta ZPTmpByte lda LBUF.DATA,x get DATA bits and LBUF.C1.DATA set ONLY bits starting at X1 mod 7 - ora GBYTE ora with screen bits + ora ZPTmpByte ora with screen bits sta (ZPBasePtr),y update screen inx @@ -302,11 +302,11 @@ LBUF.DrawAtY.AND.ORA lda LBUF.MASK,x get MASK bits ora LBUF.C2.MASK and (ZPBasePtr),y - sta GBYTE + sta ZPTmpByte lda LBUF.DATA,x get DATA bits and LBUF.C2.DATA set ONLY bits ending at X2 mod 7 - ora GBYTE + ora ZPTmpByte sta (ZPBasePtr),y update screen .8 rts diff --git a/DRV/DHGR.DRV.S.LINE.txt b/DRV/DHGR.DRV.S.LINE.txt index 2f85483b..2b9b0863 100644 --- a/DRV/DHGR.DRV.S.LINE.txt +++ b/DRV/DHGR.DRV.S.LINE.txt @@ -83,7 +83,7 @@ VLINE.MONO >LDYA CB.Cache+S.CB.X1 jsr DIVMOD7YA tay lda COL.OFS,y - sta GBYTE Save COL (DIV) + sta ZPTmpByte Save COL (DIV) lda COL.BANK,y tay @@ -101,7 +101,7 @@ VLINE.MONO.BLACK clc .1 lda BASEL,y - adc GBYTE + adc ZPTmpByte sta ZPBasePtr lda BASEH,y sta ZPBasePtr+1 @@ -118,7 +118,7 @@ VLINE.MONO.BLACK VLINE.MONO.WHITE .1 lda BASEL,y - adc GBYTE + adc ZPTmpByte sta ZPBasePtr lda BASEH,y sta ZPBasePtr+1 @@ -134,7 +134,7 @@ VLINE.MONO.WHITE VLINE.MONO.XOR .1 lda BASEL,y - adc GBYTE + adc ZPTmpByte sta ZPBasePtr lda BASEH,y sta ZPBasePtr+1 @@ -180,13 +180,13 @@ VLINE.C16 lda CB.Cache+S.CB.X1 beq .10 and Color.Pixels,y apply color - sta GBYTE + sta ZPTmpByte sta SETPAGE2 lda (ZPBasePtr) and Color.NMasks,x reset existing pixel, - ora GBYTE + ora ZPTmpByte sta (ZPBasePtr) .10 inx @@ -196,13 +196,13 @@ VLINE.C16 lda CB.Cache+S.CB.X1 beq .11 and Color.Pixels,y apply color - sta GBYTE + sta ZPTmpByte sta CLRPAGE2 lda (ZPBasePtr) and Color.NMasks,x reset existing pixel, - ora GBYTE + ora ZPTmpByte sta (ZPBasePtr) .11 inc ZPBasePtr @@ -213,13 +213,13 @@ VLINE.C16 lda CB.Cache+S.CB.X1 beq .12 and Color.Pixels,y apply color - sta GBYTE + sta ZPTmpByte sta SETPAGE2 lda (ZPBasePtr) and Color.NMasks,x reset existing pixel, - ora GBYTE + ora ZPTmpByte sta (ZPBasePtr) .12 inx @@ -229,13 +229,13 @@ VLINE.C16 lda CB.Cache+S.CB.X1 beq .13 and Color.Pixels,y apply color - sta GBYTE + sta ZPTmpByte sta CLRPAGE2 lda (ZPBasePtr) and Color.NMasks,x reset existing pixel, - ora GBYTE + ora ZPTmpByte sta (ZPBasePtr) .13 rts diff --git a/DRV/DHGR.DRV.S.PIX.txt b/DRV/DHGR.DRV.S.PIX.txt index 596a65e9..ed8d9e9f 100644 --- a/DRV/DHGR.DRV.S.PIX.txt +++ b/DRV/DHGR.DRV.S.PIX.txt @@ -95,13 +95,13 @@ SETPIXEL.C16 lda CB.Cache+S.CB.X1 lda Color.Masks,x bits in 1st byte to light? beq .10 and Color.Pixels,y apply color - sta GBYTE + sta ZPTmpByte sta SETPAGE2 lda (ZPBasePtr) and Color.NMasks,x reset existing pixel, - ora GBYTE + ora ZPTmpByte sta (ZPBasePtr) .10 inx @@ -110,13 +110,13 @@ SETPIXEL.C16 lda CB.Cache+S.CB.X1 lda Color.Masks,x beq .11 and Color.Pixels,y apply color - sta GBYTE + sta ZPTmpByte sta CLRPAGE2 lda (ZPBasePtr) and Color.NMasks,x reset existing pixel, - ora GBYTE + ora ZPTmpByte sta (ZPBasePtr) .11 inc ZPBasePtr @@ -126,13 +126,13 @@ SETPIXEL.C16 lda CB.Cache+S.CB.X1 lda Color.Masks,x beq .12 and Color.Pixels,y apply color - sta GBYTE + sta ZPTmpByte sta SETPAGE2 lda (ZPBasePtr) and Color.NMasks,x reset existing pixel, - ora GBYTE + ora ZPTmpByte sta (ZPBasePtr) .12 inx @@ -141,13 +141,13 @@ SETPIXEL.C16 lda CB.Cache+S.CB.X1 lda Color.Masks,x beq .13 and Color.Pixels,y apply color - sta GBYTE + sta ZPTmpByte sta CLRPAGE2 lda (ZPBasePtr) and Color.NMasks,x reset existing pixel, - ora GBYTE + ora ZPTmpByte sta (ZPBasePtr) .13 rts diff --git a/DRV/DHGR.DRV.S.RECT.txt b/DRV/DHGR.DRV.S.RECT.txt index f5431d60..f57dc549 100644 --- a/DRV/DHGR.DRV.S.RECT.txt +++ b/DRV/DHGR.DRV.S.RECT.txt @@ -36,14 +36,14 @@ FILLRECT jsr HLINE GETRECTBUFSIZE >LDYA CB.Cache+S.CB.X1 jsr DIVMOD7YA - sta GBYTE + sta ZPTmpByte >LDYA CB.Cache+S.CB.X2 jsr DIVMOD7YA inc COL2 + 1 sec - sbc GBYTE (COL2+1)-COL1 + sbc ZPTmpByte (COL2+1)-COL1 tax >LDYA CB.Cache+S.CB.Y1 diff --git a/DRV/DHGR.DRV.S.txt b/DRV/DHGR.DRV.S.txt index 3b72f8e8..4e12661f 100644 --- a/DRV/DHGR.DRV.S.txt +++ b/DRV/DHGR.DRV.S.txt @@ -23,6 +23,25 @@ ZPBMDataPtr .EQ ZPDRV+8 ZPBMMaskPtr .EQ ZPDRV+10 ZPBMSavePtr .EQ ZPDRV+12 *-------------------------------------- +ZPTmpWord .EQ ZPDRV+14 +*-------------------------------------- +LBUF.C1 .EQ ZPDRV+16 +LBUF.C1.MASK .EQ ZPDRV+17 Bits to CLR in VMEM : 11100000 00000000 00111111 +LBUF.C1.DATA .EQ ZPDRV+18 Bits to SET/ORA/XOR : 000ccccc cccccccc cc000000 +LBUF.C2 .EQ ZPDRV+19 C1 C2 +LBUF.C2.MASK .EQ ZPDRV+20 +LBUF.C2.DATA .EQ ZPDRV+21 +*-------------------------------------- +BLT.BMMaskPtr .EQ ZPDRV+22 +BLT.BMDataPtr .EQ ZPDRV+24 +BLT.BMBitOfs .EQ ZPDRV+26 +BLT.BMBitOfsL .EQ ZPDRV+27 +BLT.ScrBitOfs .EQ ZPDRV+28 +BLT.ScrColIdx .EQ ZPDRV+29 +BLT.CMASK .EQ ZPDRV+30 +*-------------------------------------- +ZPTmpByte .EQ ZPDRV+31 +*-------------------------------------- * File Header (16 Bytes) *-------------------------------------- CS.START cld @@ -273,10 +292,10 @@ DIVMOD7YA dec * OUT: * Y,A = (Y,A) * X *-------------------------------------- -YAMultX stx GBYTE +YAMultX stx ZPTmpByte - sty GWORD - sta GWORD+1 + sty ZPTmpWord + sta ZPTmpWord+1 ldy #0 Result LO tya Result HI @@ -286,17 +305,19 @@ YAMultX stx GBYTE .1 pha tya clc - adc GWORD + adc ZPTmpWord tay pla - adc GWORD+1 + adc ZPTmpWord+1 -.2 asl GWORD - rol GWORD+1 +.2 asl ZPTmpWord + rol ZPTmpWord+1 -.3 lsr GBYTE +.3 lsr ZPTmpByte bcs .1 + bne .2 + rts *-------------------------------------- .INB /A2OSX.SRC/DRV/DHGR.DRV.S.BLT @@ -396,26 +417,9 @@ CB.CmdLen .DA S.CB.Y1+1 SETPIXEL CB.Cache .BS S.CB BM.Cache .BS S.BM *-------------------------------------- -LBUF.C1 .BS 1 -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 81 81 because of sta LBUF.DATA+1,x!!! LBUF.DATA .BS 81 *-------------------------------------- -BLT.BMMaskPtr .BS 2 -BLT.BMDataPtr .BS 2 -BLT.BMBitOfs .BS 1 -BLT.BMBitOfsL .BS 1 -BLT.ScrBitOfs .BS 1 -BLT.ScrColIdx .BS 1 -BLT.CMASK .BS 1 -*-------------------------------------- -GBYTE .BS 1 -GWORD .BS 2 -*-------------------------------------- DSTAT .DA #0 .DA #0,#0,#0 >PSTR "Apple II DHGR" diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index 7648fc14..76e9225d 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -2,8 +2,8 @@ NEW PREFIX /A2OSX.BUILD AUTO 4,1 *-------------------------------------- -ZPDRV .EQ $30 -ZPLIB .EQ $40 32 bytes for TCPIP +ZPDRV .EQ $20 32 bytes for DHGR.DRV.... +ZPLIB .EQ $40 32 bytes for TCPIPD.. *-------------------------------------- * PS Context : 48 bytes MAX *-------------------------------------- diff --git a/INC/GUI.I.txt b/INC/GUI.I.txt index 4bbc7448..23af3a26 100644 --- a/INC/GUI.I.txt +++ b/INC/GUI.I.txt @@ -3,6 +3,26 @@ PREFIX /A2OSX.BUILD AUTO 4,1 .LIST OFF *-------------------------------------- +* GC : Graphic Context +*-------------------------------------- +S.GC.hParentGC .EQ 0 +S.GC.hDev .EQ 1 +S.GC.hMem .EQ 2 +* +S.GC.X1 .EQ 4 +S.GC.Y1 .EQ 6 +S.GC.X2 .EQ 8 +S.GC.Y2 .EQ 10 +S.GC.W .EQ 12 +S.GC.H .EQ 14 + +S.GC.Cursor .EQ 15 +S.GC.Color .EQ 16 +S.GC.hFont .EQ 17 +S.GC.hBrush .EQ 18 +* +S.GC .EQ 20 +*-------------------------------------- S.CB.CMD .EQ 0 S.CB.CMD.SETPIXEL .EQ 0 S.CB.CMD.GETPIXEL .EQ 2 @@ -13,6 +33,7 @@ S.CB.CMD.BITBLT .EQ 10 S.CB.CMD.GETRECTBUFSIZE .EQ 12 S.CB.CMD.DRAWLINE .EQ 14 S.CB.CMD.DRAWTEXT .EQ 16 +S.CB.CMD.GETTEXTSIZE .EQ 18 S.CB.OP .EQ 1 S.CB.OP.XOR .EQ 0 screen EOR bitmap -> Screen S.CB.OP.SET .EQ 2 replace screen with bitmap @@ -48,6 +69,127 @@ S.CB.DstPtr .EQ 18 BITBLT * S.CB .EQ 20 *-------------------------------------- +CUR.T.ARROW .EQ 0 +CUR.T.RESIZEX .EQ 2 +CUR.T.RESIZEY .EQ 4 +CUR.T.RESIZEXY1 .EQ 6 +CUR.T.RESIZEXY2 .EQ 8 +CUR.T.CROSS .EQ 10 +CUR.T.TEXT .EQ 12 +CUR.T.WAIT .EQ 14 +*-------------------------------------- +S.MOUSE.X1 .EQ 0 +S.MOUSE.Y1 .EQ 2 +S.MOUSE.X2 .EQ 4 +S.MOUSE.Y2 .EQ 6 +S.MOUSE.S .EQ 8 +S.MOUSE.S.UP .EQ %00000001 +S.MOUSE.S.DOWN .EQ %00000010 +S.MOUSE.S.MOVE .EQ %00000100 +S.MOUSE.S.DRAG .EQ %00001000 +S.MOUSE.S.CLK .EQ %00010000 +S.MOUSE.S.DCLK .EQ %00100000 +* +S.MOUSE .EQ 9 +*-------------------------------------- +S.POINT.X .EQ 0 +S.POINT.Y .EQ 2 +* +S.POINT .EQ 4 +*-------------------------------------- +S.RECT.X1 .EQ 0 +S.RECT.Y1 .EQ 2 +S.RECT.X2 .EQ 4 +S.RECT.Y2 .EQ 6 +* +S.RECT .EQ 8 +*-------------------------------------- +T.WND .EQ 0 +T.MENU .EQ 2 +T.BUTTON .EQ 4 +T.TEXT .EQ 6 +*-------------------------------------- +S.WND.T .EQ 0 +S.WND.F .EQ 1 +S.WND.F.RESIZE .EQ %00000001 +S.WND.F.MOVE .EQ %00000010 +S.WND.F.CLOSE .EQ %00000100 +S.WND.F.MAX .EQ %00001000 +S.WND.F.MIN .EQ %00010000 +S.WND.F.NOBORDER .EQ %00100000 +S.WND.F.MODAL .EQ %01000000 +S.WND.F.SYSMODAL .EQ %10000000 +S.WND.S .EQ 2 +S.WND.hOWNER .EQ 3 +S.WND.hPARENT .EQ 4 +S.WND.hTITLE .EQ 5 +S.WND.hMENU .EQ 6 +S.WND.hBKCOLOR .EQ 7 +S.WND.hBKBM .EQ 8 +S.WND.hSTATUS .EQ 9 +S.WND.hCUR .EQ 10 +S.WND.hICON .EQ 11 +S.WND.X .EQ 12 +S.WND.Y .EQ 14 +S.WND.W .EQ 16 +S.WND.H .EQ 18 +* +S.WND .EQ 32 +*-------------------------------------- +S.MENU.T .EQ 0 +S.MENU.F .EQ 1 +S.MENU.hSAVEBUF .EQ 2 +S.MENU.X .EQ 3 +S.MENU.Y .EQ 5 +* ... S.MITEMs... +*-------------------------------------- +S.MITEM.F .EQ 0 +*S.MITEM.F. .EQ %00000001 +*S.MITEM.F. .EQ %00000010 +*S.MITEM.F. .EQ %00000100 +*S.MITEM.F. .EQ %00001000 +*S.MITEM.F. .EQ %00010000 +S.MITEM.F.SEP .EQ %00100000 +S.MITEM.F.CHECKED .EQ %01000000 +S.MITEM.F.DISABLED .EQ %10000000 +S.MITEM.ID .EQ 1 +S.MITEM.hSUBM .EQ 2 +S.MITEM.hBM .EQ 3 +S.MITEM.HOTKEY .EQ 4 +S.MITEM.HOTKEY.CTRL .EQ %10000000 +S.MITEM.HOTKEY.OA .EQ %01000000 +S.MITEM.HOTKEY.CA .EQ %00100000 +S.MITEM.TEXTLEN .EQ 5 +S.MITEM.TEXT .EQ 6 CSTR +* ... +*-------------------------------------- +S.BUT.T .EQ 0 +S.BUT.F .EQ 1 +S.BUT.F.DISABLED .EQ %10000000 +S.BUT.S .EQ 2 +S.BUT.S.PUSHED .EQ %10000000 +S.BUT.ID .EQ 3 +S.BUT.hOWNER .EQ 4 +S.BUT.hPARENT .EQ 5 +S.BUT.X .EQ 6 +S.BUT.Y .EQ 8 +S.BUT.W .EQ 10 +S.BUT.H .EQ 12 +S.BUT.hBM .EQ 14 +S.BUT.TEXTX .EQ 16 +S.BUT.TEXTY .EQ 18 +S.BUT.TEXTLEN .EQ 20 +S.BUT.TEXT .EQ 21 +* ... +*-------------------------------------- +S.TEXT.T .EQ 0 +S.TEXT.F .EQ 1 +S.TEXT.F.DISABLED .EQ %10000000 +S.TEXT.ID .EQ 2 +S.TEXT.hBM .EQ 3 +S.TEXT.TEXTLEN .EQ 5 +S.TEXT.TEXT .EQ 6 +*-------------------------------------- S.BM.F .EQ 0 S.BM.F.BBP1 .EQ %00000001 S.BM.F.BBP2 .EQ %00000010 diff --git a/INC/LIBGUI.I.txt b/INC/LIBGUI.I.txt index 9ef5bae9..6ea34ff4 100644 --- a/INC/LIBGUI.I.txt +++ b/INC/LIBGUI.I.txt @@ -15,80 +15,6 @@ LIBGUI.UpdateCursor .EQ 18 LIBGUI.ReadMouse .EQ 20 LIBGUI.GetScreenGC .EQ 22 *-------------------------------------- -S.GC.hDev .EQ 0 -S.GC.hMem .EQ 1 -S.GC.Parent .EQ 2 -* -S.GC.X1 .EQ 4 -S.GC.Y1 .EQ 6 -S.GC.X2 .EQ 8 -S.GC.Y2 .EQ 10 -* -S.GC .EQ 12 -*-------------------------------------- -CUR.T.ARROW .EQ 0 -CUR.T.RESIZEX .EQ 2 -CUR.T.RESIZEY .EQ 4 -CUR.T.RESIZEXY1 .EQ 6 -CUR.T.RESIZEXY2 .EQ 8 -CUR.T.CROSS .EQ 10 -CUT.T.TEXT .EQ 12 -CUR.T.WAIT .EQ 14 -*-------------------------------------- -S.MOUSE.X1 .EQ 0 -S.MOUSE.Y1 .EQ 2 -S.MOUSE.X2 .EQ 4 -S.MOUSE.Y2 .EQ 6 -S.MOUSE.S .EQ 8 -S.MOUSE.S.UP .EQ %00000001 -S.MOUSE.S.DOWN .EQ %00000010 -S.MOUSE.S.MOVE .EQ %00000100 -S.MOUSE.S.DRAG .EQ %00001000 -S.MOUSE.S.CLK .EQ %00010000 -S.MOUSE.S.DCLK .EQ %00100000 -* -S.MOUSE .EQ 9 -*-------------------------------------- -S.POINT.X .EQ 0 -S.POINT.Y .EQ 2 -* -S.POINT .EQ 4 -*-------------------------------------- -S.RECT.X1 .EQ 0 -S.RECT.Y1 .EQ 2 -S.RECT.X2 .EQ 4 -S.RECT.Y2 .EQ 6 -* -S.RECT .EQ 8 -*-------------------------------------- -S.WND.F .EQ 0 -S.WND.F.RESIZE .EQ %00000001 -S.WND.F.MOVE .EQ %00000010 -S.WND.F.CLOSE .EQ %00000100 -S.WND.F.MAX .EQ %00001000 -S.WND.F.MIN .EQ %00010000 -S.WND.F.SPARE .EQ %00100000 -S.WND.F.MODAL .EQ %01000000 -S.WND.F.SYSMODAL .EQ %10000000 -S.WND.S .EQ 1 -S.WND.hOWNER .EQ 2 -S.WND.hPARENT .EQ 3 -S.WND.hTITLE .EQ 4 -S.WND.hMENU .EQ 5 -S.WND.hBKCOLOR .EQ 6 -S.WND.hBKBM .EQ 7 -S.WND.hSTATUS .EQ 8 -S.WND.hCUR .EQ 9 -S.WND.hICON .EQ 10 -S.WND.X .EQ 12 -S.WND.Y .EQ 14 -S.WND.W .EQ 16 -S.WND.H .EQ 18 -* -S.WND .EQ 32 -*-------------------------------------- -S.GUI.C.BK -*-------------------------------------- MAN SAVE /A2OSX.BUILD/INC/LIBGUI.I LOAD /A2OSX.SRC/LIB/LIBGUI.S diff --git a/LIB/LIBGUI.S.BM.txt b/LIB/LIBGUI.S.BM.txt new file mode 100644 index 00000000..7d131451 --- /dev/null +++ b/LIB/LIBGUI.S.BM.txt @@ -0,0 +1,12 @@ +NEW +PREFIX /A2OSX.BUILD +AUTO 4,1 +*-------------------------------------- +BM.Get +*-------------------------------------- +*-------------------------------------- +*-------------------------------------- +MAN +SAVE /A2OSX.SRC/LIB/LIBGUI.S.BM +LOAD /A2OSX.SRC/LIB/LIBGUI.S +ASM diff --git a/LIB/LIBGUI.S.BUT.txt b/LIB/LIBGUI.S.BUT.txt new file mode 100644 index 00000000..eb67e30c --- /dev/null +++ b/LIB/LIBGUI.S.BUT.txt @@ -0,0 +1,26 @@ +NEW +PREFIX /A2OSX.BUILD +AUTO 4,1 +*-------------------------------------- +BUT.New >STYA ZPPtr1 + + ldy #S.BUT.hBM + lda (ZPPtr1),y + beq . + + >SYSCALL + lda #0 + ldy # + sta + + +*-------------------------------------- +BUT.Draw + +*-------------------------------------- + +*-------------------------------------- +MAN +SAVE /A2OSX.SRC/LIB/LIBGUI.S.BUT +LOAD /A2OSX.SRC/LIB/LIBGUI.S +ASM diff --git a/LIB/LIBGUI.S.DRAW.txt b/LIB/LIBGUI.S.DRAW.txt index d91b504f..7135f5bc 100644 --- a/LIB/LIBGUI.S.DRAW.txt +++ b/LIB/LIBGUI.S.DRAW.txt @@ -329,6 +329,7 @@ DrawText >LDYA L.CB.Cache .9 rts *-------------------------------------- + MAN SAVE /A2OSX.SRC/LIB/LIBGUI.S.DRAW LOAD /A2OSX.SRC/LIB/LIBGUI.S diff --git a/LIB/LIBGUI.S.MENU.txt b/LIB/LIBGUI.S.MENU.txt new file mode 100644 index 00000000..b17e2b4e --- /dev/null +++ b/LIB/LIBGUI.S.MENU.txt @@ -0,0 +1,28 @@ +NEW +PREFIX /A2OSX.BUILD +AUTO 4,1 +*-------------------------------------- +PopupMenu >STYA ZPPtr1 + + + lda #2 1px Border + sta DX + sta DY + stz DX+1 + stz DY+1 + + lda ZPPtr1 + clc + adc #S.MENU + sta ZPPtr2 + + lda ZPPtr1+1 + adc /S.MENU + sta ZPPtr2+1 + +.1 lda (ZPPtr2) +*-------------------------------------- +MAN +SAVE /A2OSX.SRC/LIB/LIBGUI.S.MENU +LOAD /A2OSX.SRC/LIB/LIBGUI.S +ASM diff --git a/LIB/LIBGUI.S.txt b/LIB/LIBGUI.S.txt index 788c0137..6928ef7f 100644 --- a/LIB/LIBGUI.S.txt +++ b/LIB/LIBGUI.S.txt @@ -261,6 +261,7 @@ GoDevMouse jmp $ffff .INB /A2OSX.SRC/LIB/LIBGUI.S.CUR .INB /A2OSX.SRC/LIB/LIBGUI.S.PAT .INB /A2OSX.SRC/LIB/LIBGUI.S.WND + .INB /A2OSX.SRC/LIB/LIBGUI.S.BUT *-------------------------------------- CS.END *-------------------------------------- diff --git a/SBIN/GETTY.S.txt b/SBIN/GETTY.S.txt index 605ccb64..1f209bf4 100644 --- a/SBIN/GETTY.S.txt +++ b/SBIN/GETTY.S.txt @@ -121,8 +121,7 @@ CS.RUN.LOOP bcs .8 unable to send greetings...reset.. - ldy #hBinName - lda (pData),y + >LDA.G hBinName >SYSCALL GetMemPtr.A >SYSCALL ExecPS.YA @@ -218,7 +217,6 @@ CS.DOEVENT lda (pEvent) rts *-------------------------------------- CS.QUIT >LDA.G hBinName - lda (pData),y beq .1 >SYSCALL FreeMem.A diff --git a/SBIN/GUI.S.txt b/SBIN/GUI.S.txt index 9c293c8f..960dc518 100644 --- a/SBIN/GUI.S.txt +++ b/SBIN/GUI.S.txt @@ -33,37 +33,44 @@ CS.START cld .DA CS.RUN .DA CS.DOEVENT .DA CS.QUIT -L.MSG.INIT .DA MSG.INIT L.LIBGUI .DA LIBGUI -L.SYSFONT .DA SYSFONT +L.SYSX7 .DA SYSX7 +L.SYSX7B .DA SYSX7B L.Filename .DA Filename L.MouseData .DA MouseData L.CB.Paint .DA CB.Paint L.BM.Apple .DA BM.Apple L.TXT.Sample .DA TXT.Sample +L.TXT.A2osX .DA TXT.A2osX L.CB.Marylin .DA CB.Marylin L.CB.DrawLine .DA CB.DrawLine L.GC.Clip .DA GC.Clip .DA 0 *-------------------------------------- -CS.INIT >LDYA L.MSG.INIT - >SYSCALL PrintF.YA - - >LDYA L.LIBGUI +CS.INIT >LDYA L.LIBGUI >SYSCALL LoadLib.YA - bcs .99 + bcs .98 sta hLIBGUI >LIBCALL hLIBGUI,LIBGUI.InitGUI - bcs .99 + bcs .98 >PUSHWI 0 Aux type >PUSHBI $CC Type >PUSHBI SYS.FOpen.R - >PUSHW L.SYSFONT + >PUSHW L.SYSX7 + >SYSCALL LoadStkObj +.98 bcs .99 + sta hSYSFON + sta CB.DrawA2osX+S.CB.hFont + + >PUSHWI 0 Aux type + >PUSHBI $CC Type + >PUSHBI SYS.FOpen.R + >PUSHW L.SYSX7B >SYSCALL LoadStkObj bcs .99 - sta hSYSFONT + sta hSYSFONB sta CB.DrawText+S.CB.hFont >PUSHWI 0 Aux type @@ -78,6 +85,9 @@ CS.INIT >LDYA L.MSG.INIT >LDYA L.TXT.Sample >STYA CB.DrawText+S.CB.TxtPtr + >LDYA L.TXT.A2osX + >STYA CB.DrawA2osX+S.CB.TxtPtr + >LDYA L.BM.Apple >STYA CB.Apple+S.CB.SrcPtr @@ -177,13 +187,14 @@ Destop.Paint >LIBCALL hLIBGUI,LIBGUI.HideCursor *-------------------------------------- CS.END LIBGUI .AZ "libgui.o" -MSG.INIT .AZ "GUI:Init...\r\n" hLIBGUI .BS 1 -hSYSFONT .BS 1 +hSYSFON .BS 1 +hSYSFONB .BS 1 *-------------------------------------- Filename .AZ "/A2OSX.BUILD/ROOT/MARILYN" *-------------------------------------- -SYSFONT .AZ "/A2OSX.BUILD/SBIN/GUI/SYSTEM" +SYSX7 .AZ "/A2OSX.BUILD/SBIN/GUI/SYSX7" +SYSX7B .AZ "/A2OSX.BUILD/SBIN/GUI/SYSX7B" *-------------------------------------- MouseData .BS S.MOUSE *-------------------------------------- @@ -204,19 +215,6 @@ CB.Paint .DA #S.CB.CMD.FILLRECT .DA 20 Y1 .DA 519 X2 .DA 171 Y2 -*-------------------------------------- -CB.Apple .DA #S.CB.CMD.BITBLT - .DA #S.CB.OP.SET - .DA #S.CB.M.C16 - .DA #0 - .DA 0 X1 - .DA 0 Y1 - .DA 16 W - .DA 7 H - .DA 28 DestX - .DA 180 DestY - .BS 2 SrcPtr - .DA 0 DstPtr *-------------------------------------- CB.DrawText .DA #S.CB.CMD.DRAWTEXT .DA #S.CB.OP.SET OP @@ -229,6 +227,31 @@ CB.DrawText .DA #S.CB.CMD.DRAWTEXT .DA 4 DstX .DA 7 DstY .BS 2 TxtPtr +*-------------------------------------- +CB.Apple .DA #S.CB.CMD.BITBLT + .DA #S.CB.OP.SET + .DA #S.CB.M.C16 + .DA #0 + .DA 0 X1 + .DA 0 Y1 + .DA 16 W + .DA 7 H + .DA 4 DestX + .DA 183 DestY + .BS 2 SrcPtr + .DA 0 DstPtr +*-------------------------------------- +CB.DrawA2osX .DA #S.CB.CMD.DRAWTEXT + .DA #S.CB.OP.SET OP + .DA #S.CB.M.MONO M + .BS 1 hFont + .DA 0 X1 + .DA 0 Y1 + .DA 0 SrcW + .DA 0 SrcH + .DA 24 DstX + .DA 183 DstY + .BS 2 TxtPtr *-------------------------------------- .DA #0 *-------------------------------------- @@ -236,7 +259,7 @@ BM.Apple .DA #S.BM.F.BBP4 .DA #2 RowBytes .DA 16 W .DA 7 H - .DA 0 + .DA 0 no MASK.OFS .HS FFF6 green (8) .HS 6FF6 green (8) @@ -246,7 +269,8 @@ BM.Apple .DA #S.BM.F.BBP4 .HS 9999 violet (11) .HS 1FF1 Dark blue (4) *-------------------------------------- -TXT.Sample .AZ "@@@@@@@@@ This Is A Sample Text with System Font Height=7px, Variable Width {}[] #0123456789$ @@@@@@@@@" +TXT.Sample .AZ "@ This Is A Sample Text with SYSX7B.FON Height=7px, Variable Width {}[] #0123456789$ " +TXT.A2osX .AZ "A2osX" *-------------------------------------- CB.Marylin .DA #S.CB.CMD.BITBLT .DA #S.CB.OP.SET diff --git a/SBIN/LOGIN.S.txt b/SBIN/LOGIN.S.txt index a623be31..c50ee9c2 100644 --- a/SBIN/LOGIN.S.txt +++ b/SBIN/LOGIN.S.txt @@ -1,8 +1,6 @@ -PR#3 -PREFIX /A2OSX.BUILD NEW -INC 1 -AUTO 6 +PREFIX /A2OSX.BUILD +AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 diff --git a/SBIN/SHELL.S.CMD.txt b/SBIN/SHELL.S.CMD.txt index ff072eff..87e2855a 100644 --- a/SBIN/SHELL.S.CMD.txt +++ b/SBIN/SHELL.S.CMD.txt @@ -294,7 +294,7 @@ Cmd.Exec.CD lda (ZPPTR2) iny lda #0 sta (ZPPTR2),y - + .3 >LDYA ZPPTR2 Get ARG >SYSCALL RealPath.YA bcs .9 diff --git a/SBIN/SHELL.S.CSH.txt b/SBIN/SHELL.S.CSH.txt index 33f20a8e..82b1cc7f 100644 --- a/SBIN/SHELL.S.CSH.txt +++ b/SBIN/SHELL.S.CSH.txt @@ -1,8 +1,6 @@ -PR#3 +NEW PREFIX /A2OSX.BUILD -LOMEM $A00 -INC 1 -AUTO 6 +AUTO 4,1 .LIST OFF *-------------------------------------- CSH.E.SYNTAX .EQ $7F diff --git a/SYS/KERNEL.S.DIRENT.txt b/SYS/KERNEL.S.DIRENT.txt index e7992039..048fcbeb 100644 --- a/SYS/KERNEL.S.DIRENT.txt +++ b/SYS/KERNEL.S.DIRENT.txt @@ -204,12 +204,12 @@ K.ReadDir.A.ROOT inc ZPPtr2+1 bra .3 -* lda #0 done by S.MEM.F.INIT0 +* lda #0 done by S.MEM.F.INIT0 * sta (ZPPtr4) Ending 0 .5 ldy #S.NODE.DIR.FC lda #16 - sta (ZPPtr1),y Flag that we returned somthing for next time + sta (ZPPtr1),y Flag that we returned somthing for next time jmp K.ReadDir.A.EXIT *-------------------------------------- diff --git a/SYS/KERNEL.S.MEM.txt b/SYS/KERNEL.S.MEM.txt index 488dd3bc..449571e8 100644 --- a/SYS/KERNEL.S.MEM.txt +++ b/SYS/KERNEL.S.MEM.txt @@ -4,7 +4,7 @@ AUTO 4,1 *-------------------------------------- ZPMemMgrSPtr .EQ ZPMEMMGR Pointer To Slot selected ZPMemMgrTmp1 .EQ ZPMEMMGR+2 - +ZPMemMgrSize .EQ ZPMEMMGR+4 ZPSListID .EQ ZPMEMMGR+6 ZPSListIBlkPtr .EQ ZPMEMMGR+8 ZPSListDBlkPtr .EQ ZPMEMMGR+10 @@ -79,7 +79,7 @@ K.GetMem0.YA ldx #S.MEM.F.INIT0 K.GetMem.YA ldx #0 MEM.GetMem.YAX stx Mem.ReqFlags - sta Mem.ReqSize+1 + sta ZPMemMgrSize+1 tya bit #$0F 16 bytes aligned ? @@ -89,9 +89,9 @@ MEM.GetMem.YAX stx Mem.ReqFlags clc adc #$10 bcc .10 - inc Mem.ReqSize+1 + inc ZPMemMgrSize+1 -.10 sta Mem.ReqSize +.10 sta ZPMemMgrSize >LDYAI Mem.Table >STYA ZPMemMgrSPtr @@ -115,12 +115,12 @@ MEM.GetMem.YAX stx Mem.ReqFlags .3 ldy #S.MEM.LEN lda (ZPMemMgrSPtr),y get LEN of this block - cmp Mem.ReqSize compare with requested size + cmp ZPMemMgrSize compare with requested size bne .4 iny lda (ZPMemMgrSPtr),y - cmp Mem.ReqSize+1 + cmp ZPMemMgrSize+1 beq .7 requested size matches slot size !!! .4 cpx Mem.LastSlot any other slot to check? @@ -133,7 +133,7 @@ MEM.GetMem.YAX stx Mem.ReqFlags lda Mem.Free target PTR will be page aligned ? sec - sbc Mem.ReqSize + sbc ZPMemMgrSize beq .6 yes, allocate tay no, reserve a free slot to fill gap @@ -141,7 +141,7 @@ MEM.GetMem.YAX stx Mem.ReqFlags jsr Mem.AddSlot X = new slot bcs .9 -.6 >LDYA Mem.ReqSize +.6 >LDYA ZPMemMgrSize jsr Mem.AddSlot X = new slot bcs .9 @@ -161,11 +161,11 @@ MEM.GetMem.YAX stx Mem.ReqFlags lda (ZPMemMgrSPtr),y sta .12+2 - lda Mem.ReqSize + lda ZPMemMgrSize eor #$ff tay y=not lo count - lda Mem.ReqSize+1 + lda ZPMemMgrSize+1 eor #$ff a=not hi count phx @@ -209,7 +209,6 @@ MEM.GetMem.YAX stx Mem.ReqFlags .9 rts *-------------------------------------- -Mem.ReqSize .BS 2 store requested Size Mem.ReqFlags .BS 1 store requested Flags *-------------------------------------- * Mem.AddSlot @@ -558,6 +557,27 @@ K.SListFree.A sta CLRWRITEAUX rts */-------------------------------------- +* # GetStkObjProperty.A +* ## In: +* A = hMem To Free (AUX Memory) +* Y = Property Index +* ## Out: +* Y,A = Property Value +*\-------------------------------------- + phy + sta SETREADAUX + jsr K.GetMemPtr.A + >STYA ZPMemMgrTmp1 + + ply + lda (ZPMemMgrTmp1),y + pha + iny + lda (ZPMemMgrTmp1),y + ply + sta CLRREADAUX + rts +*/-------------------------------------- * # NewStkObj.YA * ## In: * Y,A = Size Requested @@ -580,7 +600,7 @@ K.NewStkObj.YA ldx #SYS.GetMem.YA *\-------------------------------------- K.FreeStkObj.A ldx #SYS.FreeMem.A - sta SETREADAUX +MEM.GoStkObj sta SETREADAUX sta SETWRITEAUX jsr .1 diff --git a/SYS/KERNEL.S.OSD.txt b/SYS/KERNEL.S.OSD.txt index 4ac9f2f5..fca0e8b3 100644 --- a/SYS/KERNEL.S.OSD.txt +++ b/SYS/KERNEL.S.OSD.txt @@ -63,6 +63,7 @@ J.Cmds .DA SETPIXEL .DA GETRECTBUFSIZE .DA $ffff DRAWLINE .DA DRAWTEXT + .DA GETTEXTSIZE *-------------------------------------- SETPIXEL >LDYA CB.Cache+S.CB.Y1 ldx DstBM.Cache+S.BM.RowBytes @@ -155,6 +156,7 @@ BITBLT.1 >STYA ZPSrcBMPtr *-------------------------------------- +* GETRECTBUFSIZE * In: * S.CB.SrcW * S.CB.SrcH @@ -166,14 +168,28 @@ GETRECTBUFSIZE GETRECTBUFSIZE.RTS rts *-------------------------------------- +* DRAWTEXT * In: * S.CB.S.CB.FONT : hFont * S.CB.SrcPtr : Ptr to Text -* S.CB.DstPtr : Buffer Size (in bytes) * Out: * A=hBM *-------------------------------------- -DRAWTEXT lda CB.Cache+S.CB.hFONT +DRAWTEXT sec + .HS 90 BCC +*-------------------------------------- +* GETTEXTSIZE +* In: +* S.CB.S.CB.FONT : hFont +* S.CB.SrcPtr : Ptr to Text +* Out: +* A,X = Width +* Y = Height +*-------------------------------------- +GETTEXTSIZE clc + php + + lda CB.Cache+S.CB.hFONT jsr GO.GetMemPtr.A >STYA ZPFontPtr @@ -195,34 +211,43 @@ DRAWTEXT lda CB.Cache+S.CB.hFONT .2 >LDYA CB.Cache+S.CB.TxtPtr >STYA TXTPTR - lda #S.BM.F.BBP1 - sta DstBM.Cache+S.BM.F - - stz DstBM.Cache+S.BM.W - stz DstBM.Cache+S.BM.W+1 + stz CB.Cache+S.CB.SrcW + stz CB.Cache+S.CB.SrcW+1 lda FON.Cache+S.FON.PixH - sta DstBM.Cache+S.BM.H - stz DstBM.Cache+S.BM.H+1 - sta CB.Cache+S.CB.SrcH stz CB.Cache+S.CB.SrcH+1 - + .3 jsr MEM.TXTPTR.GetNext beq .4 jsr FON.GetChar lda (ZPCharPtr) Get Char PixelW sec - adc DstBM.Cache+S.BM.W - sta DstBM.Cache+S.BM.W + adc CB.Cache+S.CB.SrcW + sta CB.Cache+S.CB.SrcW bcc .3 - inc DstBM.Cache+S.BM.W+1 + inc CB.Cache+S.CB.SrcW+1 bra .3 -.4 >LDYA DstBM.Cache+S.BM.W - >STYA CB.Cache+S.CB.SrcW +.4 plp + + lda CB.Cache+S.CB.SrcW + ldx CB.Cache+S.CB.SrcW+1 + ldy CB.Cache+S.CB.SrcH + + bcs .5 + rts + + +.5 sta DstBM.Cache+S.BM.W + stx DstBM.Cache+S.BM.W+1 + sty DstBM.Cache+S.BM.H + stz DstBM.Cache+S.BM.H+1 + + lda #S.BM.F.BBP1 + sta DstBM.Cache+S.BM.F jsr BM.Create bcs GETRECTBUFSIZE.RTS diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index d981d35e..f42a0427 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -174,7 +174,7 @@ K.GetC.CDEV ldx #DEVMGR.READ *-------------------------------------- K.GetC.SSOCK lda (pDev) #S.NODE.HANDLER jsr K.GetMemPtr.A - >STYA .1 + >STYA .1+1 ldy #S.NODE.SSOCK.READ lda (pDev),y @@ -290,14 +290,13 @@ K.FOpen.10 >LDYAI S.NODE.REG stz K.MLI.PARAMS+3 stz K.MLI.PARAMS+4 >MLICALL MLISETEOF no, reset size to 0 - bcs .98 - bra .20 + bra .21 .11 >MLICALL MLIGETEOF bcs .98 >MLICALL MLISETMARK - bcs .98 +.21 bcs .98 .20 lda K.FOpen.MODE and #SYS.FOpen.T Text Mode ? @@ -1093,14 +1092,12 @@ STDIO.IOERR lda #MLI.E.IO PADLEN .BS 1 PADCHAR .BS 1 *-------------------------------------- -*EXP .BS 1 HEXBUF .BS 4 -bNeg .BS 1 BCDBUF .BS 5 5, enough to handle 10 digits (32bits) *-------------------------------------- * Convert HEXBUF to ASCBUF decimal padded with 0 *-------------------------------------- -HEX2DEC ror bNeg +HEX2DEC ror .31+1 ldx #4 @@ -1129,8 +1126,8 @@ HEX2DEC ror bNeg bne .2 cld -*-------------------------------------- - bit bNeg a -sign to print before digits ? + +.31 bit #$ff SELF MODIFIED -sign to print before digits ? bpl .9 lda #'-' jsr Printf.Cout