From 283ade35465eed0a84c23c54117bd87ddfd216c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 2 Oct 2020 07:59:41 +0200 Subject: [PATCH] Kernel 0.94 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes DRV/GRAPPLERP.DRV.S.txt | 307 +++++++++++++++++++++++++++++++++++++++ LIB/LIBGUI.S.WND.txt | 28 +++- SBIN/GUI.S.txt | 4 +- 4 files changed, 332 insertions(+), 7 deletions(-) create mode 100644 DRV/GRAPPLERP.DRV.S.txt diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 4ce033327ffaf8a6af0a53c8fd9853f35b529ee0..898620c01b26d0759b1f97909e75ae44ee1ff272 100644 GIT binary patch delta 14388 zcmb7rd0bRg`}lcg7#w5~W@A_#P*Ge)2DzjyZw?m_6oddbDuWc$as^Z{4aftUp3%(m zN?Gw*n)os%T4JT9_12q9MZN8-W?5F6w!Urpea=0Xff4`s{XTML?tS*>InO!IbI%>? z|GM0-9>?wogU)H$Xf`Yg$Vg7_vvIXykWR90eA=)C@1;I_lLM`Nb%g948~)XQAY^aS z2YVoC#JD1NVPRfYQK2)lXfh#ze<$ckj*hsKhgm+ke404i$-^yk_g?yNxFP&;8(BFx zAe>x6Fjuhm+Ru+dc!`dDHl%L^xu6nD*1hIaV+^Xom4#m>x#OWu{z=�mR!UwfeKo;DrTce!??ze8T-I_PAx)OK zH)V~tPC?RIPP&=L$)~nf)lw^YmvJr2ByWQXXpp@3a=^Wkw^3EwD0!Q>+9v7#;ocP} z>k%&N9_iecE?MT@lsfLYW9mT1!hwn|!!WIGskEy`a;zS>!&@uuS|&N39@v;u)^(weS$Hf#=pKgwqJgoW!j2kAJOf@GV;+#{J$CF_Q9vVbxS zioI^$QYi<+H?Kz8IlB{%UF%UZ4Gp)?t3^zcG;diKMopC72{^h}0w%So(L3=7kA*t% zmbMiVhUSDKby=kb!h5vNbu{e$xzW)_qdRr2VVWi**Ke{;ZPsINq@PE1HUFgF99aiX{~Zbl%QvE`VHU#A2*f|K6B>sCko zaL>0cw9b3nHTv&2U7m9;?+Mpg;yLf~zK)Pim*)qU_YDrY;A)Nae5;JfG>opRk{nG5 zy9YboOW56SSCw?qa=*dRl2orp=$^6TcOFcWMpuk&9DDyOXWaEi>}AVi9cm`4s{%8b zuZolq!}!iItwv9kl-HDit78{V)lvy3%v-~g1$Pe5a*3xAPE@Vr!IW$zUyW}ZkDrbS zjT2g-aiW^1nDcq9{r%g8-|3el{`#Zw?t}v z08KuWZIH(7OLMdjY0+&PzoGQCZ4>y%c>BEO^hR+%hcqILgI40=+%{nz#Xt%YW%xM5 zm@y%eH$*x*y7P3ICk;12?{vvCUmEW@;qu-pdFDxXdXBriWs;{7VQ;v+w@IEw2z%Y- zO;a8lXBcd}?DCM*GQ4|zoMBjCsnnUUD^0mH&TvC`j&v+%^P@S^>|^0SwSs4?G9kwh zWo?z(ZgF^Tb+97IQ!F98MDn&OwK)by-K`QTXL}{jGZOn<^86vOG3lOb)4d&O_Bnx` z>(aUMXK|OgF5UB|LN$PeJ;Y=hMo(tEW$AvkqDp;~@As=Eb(Q%!1CGEB^K*Snw}QDN$!6RGgGTz* zQfKiWKPCi|Z%k?}{q*u_dpWPAtNxBO;t0agx8v`~;GzMh{$%;JWYM4@#{HL0(=ohM zuPVPT7)MA)`E{ZD2Zn#$j|@zLF!J;1sG06$$+{}JEVLuJEG#vvU+6m0Ja=Y!!|W*& zGfC2VrT-UqMk`I*!j|b8Tus}<_HFNHw$-J&TKcwU?tHC1vt`7F%r&bwWX_y4b8-u` zXC^0H&^vNRw8XS$b{cV~$xM#FFkstc`@H>Wjgwo3w`cOJ4VlO}hiu4f1xKpOaeBn= zc`b46nHQ4$2|LobhB>5Vq|ni-5x}9Qij$I>KjE*BCTKe*j5Xal%s@2#Nk+0E&AzEO3gn~sybj#wm-H0;B ziUf2WKL9_x4=Y;__Dc`llCDN~>;?UsIWW7c52_(bCuPORVOrW}(6IuvV;DLLSn(=kTL$T20sF=bAUDFMIM=9nD#)s|zb zt5dheRvXrf)_XC5aJN}3wS@DW&`jop)av7ZuQ+ zZErCy;(6X;XwPm5!b>!WFG9a$Z|!TZ$o8z2T1mw?tP5!0o@|6PX5Zg(W?cOiUz+y_ zVT-orL`=^ThcaWlDbC-BXH_HO(a^Q3xhNTH_ZoYMTcu&`LESMiPB4AilxJ$nGw;i@#Dypkar)Dnrdi^YpqJ&-O{JEm zQfpJGt*JD!snp(78r4)9-BcR0uQb*e3uBa^C9wna{~i9lG7>MY`!g*-3X>dCp)^gp zORAEdkj_fU>0?~Cx*A;DTxVT|)U4Eo)NQFBriPAkk6JuxK(_E?Pct= z!}FzMtM%aJ%a3}Lub0FYn5(2?;eV8|tOQSX!qzB`s8Vv5#>NI$N#l1ONRzgbgH_7H zrLpnQs;plcn=`mdO0L_voZ+(U)kkLc=p$EMS{jQZ4o5tW{x}>s5^yBq7=U9SjzKt* za16#V1V=KCp*V)&7>;8E4kwP0I8t!9aHQfGg(D4zgd-itH8@7&7=z)zh z{(<909Ai5!Ep-nczA-!`reo-n?iXOwc6VnVV-O5IoHU~2&F$`FFcmJYcBjf28H;BT zW0auciVYV?s;(AUi(wy0j}rlt~W^wrp7u3$%JVl{PfSEG;bMQ?I& zI-g^K+_MCoQvQ_NoSvv_uBwR`b$AcdHR^rAK=>xMRz6cje(Wo4H%Y5i+mN%%;-oDeVGa}3Z%~jQ#+T105j7jR;D#dN?WfoHk^mJ(&2G6CGJ>|9x zO+^Oo&?x-Ay@x}_G!WX-foB4-UZX5*b6b)|3p#WnYK%`N&bG5S!(D_)FbsorEhy!u zWOLGWD59pE7_SFm@D1EJ&ET%|h`LdEv(0VK9t&!Ysgf$Hi>u447grHmMmMyue9rvp z;*9c2Vw6?SNN6TFM=QLu;vvoAq}zA7brbwDHF6v@|06GRn!6#-sS2M_Sy3^c*m8vA z%*yhmat5Yq$%1Ka(r-L>2|G2h3ak^9BS){dT$2aQBq$$-Zk{oB2I*S>&M``5brmrd z3Oj5!0hg>AxOU;}@>Oc1XD?P@<3DUE<`OiZxC9O8S{1}F2?g3F`-N|o%1&%k6xi*y z+NX+8l@_9DE@GS}Cc#$9v6lRZn|q=$NqVZN}UO2a$7^dS*#BJ!{yoEeFxQJw8 zEECrDD_5-*`qq$Pw=3&+yN3>&f$m*lrme!y!i;el`FwU~sfl2^1DbE2U(w)1<+D*= z%p6dTRLgcqqUNc<^nyZSn2*$v3$73?7vvQb5$i$` zf4>bRc9BnDpAnVFY^w4x^NnXJ+EjfNzNp2V&zgYYTcYLg(yNfg)Tm^MJaY}T+_q&t z@qAkI)x5?9bGN!+EX$#pr$O)vPwmfG>zSF&M;oJ&hP352( z%=#`6`WHM3S#Zm6rjkfWDQI=uZn#G0OjY=*EG;a!{Z333VjhiqTy>2P!1=Bf@^PI7 zUnk_^W&91w;a0abC?nrp?Vd{FZsfPIbz@P-jH(9b7-Ds6ds6&q|5p%9!R~?n-E-+M~ z^W&AWXWW)+CU8%Bx|Y|=wTOv+=1d{h0yk zJ$#ZzlR}JB_%6MDpIaB~B!TtC#pO#Xh;iS3_b(8Fd-qfnfJ-#KR1IC77CPfC0vtJA z=NzT@`JJCTkp$nSd7Va#<-&r989lttpEIABXL5ix-w422i>Tn<_H=(12lSX(8xqaF z(*HS{|92uWR)&zfG~Y(0660LW|9P7K^M(Jh3p5(^f00(DDm725{XJcxd0L}$rd{DF z=1_30=ILk>ad%G-vF@3d_w=y5hI_bzJJi#|dpMwnhe%V;*}{AYhcn!ud3Y}pa}QT) z)~AgoMyh$(sCn3=dALfWK@acKJY1uB$oxF)yIzM?Nv#wcbX}F=0UhtNNYqB1uTqpO zSct`}D*+zVsk@5lA-~z+TiYhlHTbO#qoP^aEUYv>qH8YTrPjLTYSfPjgQHqRL~%{Y z8BRGr)0vT5l95+J%>V4wj-+f=Ob6T}>z?R^u{_yRO1@LZbz$Dti!AsljSNfkj$YXC zooeiwR7=oH%fGrwrfNNCv{%=x96sQV)a?@UmGZO*Qt)oAk#Z4pdpBQK>$*pqxxHfM z>YnLtyPoYuZSLqYvr*WRO3eFvQ$5!U6!XHBpp~isY^}@(dZOyohC1$0PZ$RY^5V)F zQ;GS-E0HAb$dw=;{WM~J=}IIC{x|odreQ!D34fJes`-vv{}eqL_L`D%$USuA(Oz7} zV_N_54mlocY9%) z4!gG>&S>h;Wy_cJIx=+ocsU?kbg^BfE#^L6_-wo+N3QjiO1^ZoE|XZ<)#{~3t+AW> z-y9IXPOF*guR<4dzo^BBkB1rR3>$d&@&IqBmNjToI4pH#*8G`s=HJnfLJS*uPw?PX zyGZ*(qRA3nq+C8@c7@tU8a5$MUj>{lbt5othGw;4Y!)q;<>Bszv2VtL%9$0FRV4Ni z<$Q^33&dvt60=1Kog_#1d(7v%+9oLL3*=!2Y%`*_DupGoRXIFS4p2TQki!i4I265& z1EV6J@?+xEJJi;=5NYd6WQ#s-Cny`9o?$WG%bzt!%)eA+X0IO~F3RX#-CE4M{jgkW zdp9<`M!P=#IblZ7y=r?vVxAXv9Pne{jvZ7TQ|czk zVY+E9W&NZs*)R1XeOViWONqa57jCDSVIV#j1_haGipWrMa z$mTcvuw3AqLepD*2yX4$0`ZO?f^)p9n$XwyzQ_jKhsw!GveojDcoOOHbZz~Zcg+^d zC%rMBDy~~(%jC~`VWL0h`pO#$i?Xtdof!p1nOQ}msWzWPVtf+lso;z51T0)!HG9gm zd01&qs}1hRFL5bgRSf=bUPX%utLaw6294a`sm&svK zc&hyu{009b3yDMhS4dWq0EBd0nkRn^GtKYyQe*r;Cw8+BMN?z{=*p(1WKK0cfkb>P zSb488w*sHrt)Ker<6C)2Zb@Div3@3syXkYSr8%jU?^6OE^9An|YDvVGoVli9wm5Rh zAoj0x%IDkq+5*q$nn~=}%11A{V|3r>l!R+S%z@b4kU?ja@P+a~-M2cWp+%02{7%H8 zYr66aCKeF;_sDPn7h%MCpKW}4uu1$u=I`6@jf-gtc-mrCUEFa2*kcKb1E_Z zqS^ba5brmgalZ+sO^f6{`zqxCoojAYB?2E(9`21ZGMmR5P zoe$Bg51q&v4R|?!X4iVpDlVCvn>8g1F;P0@)MD8dOpF0~adcx)jx3SQ{Xzq~xKUY5 zA5Il*4$^lu3*2wq*R6e(4F_@a3D%3}+z`RUpL0W%BL`)BP?#pRpDH#qI9#K^hujEG zVKbooD6_H%j{~l;3Ngk=y+|6nUhRbAqx8N`I3N4qRs4X_mnktZ%He7`8e)~3K9i$# z@p{GG?lvolOJr*_mPcy>HyV$9)N-Bg6jPbV9kK-E6Z=4=aIqW-gE+T!)2LE|#WdK@ zO&;1Is`a|4jyoA}*D8FW30k zxx3;l0hN!|WQ-9Jy-pKwy%2DNFN%>jDi@c?whmp5dpr8jXhJa zXQ>Ef{YlvX0{IM;56Irx|$}-Tpy{> zfRxsGSJ4qOU)2#mRc&||`ndd3W|3HymD;kb>Ry)BDz|$4v{;+NC2Ed@1~2Vinl&m_ zx;UX-ChWxpq&iWOh2b*Ztp#SeVDe2YiCdxajwq?A<_AQEdoT{cb()A2VyVA^0sZXX zpt1xD76e4CR5P*8(kS?PObRhJX_{AEA&8h(>$L}bEy+mmeVAi2X7F=I%Np+O3_PgP zkfC|@vbaawQ_0_rY*)?e`;?D%`*zu8^1a{Lp^0x*$)@l0k#$i7w~2Y; z3cbCs=3Tu&QM(1GYsIhZdK@0IM_Ic~9t?Z=c5K%VdPZCM&vvi;eVQ)6{k%iPTk=Wx zeu36jK8bx!#l(w+Z+pS#J6|uwCGL_**j*hEyJXx!l~%cMIHpfu;~~xK7X`BaVIMMZ zASRFHCE>!j?5R^K=TukVF$oENndh5&oN0PxBZSQBC^{r>gzbmrc#}_YSJu2LaPhVE(SQEir!zFZ%wi?>fS}q%|&=mDf(nafu|LxdMB*0Rv~vB31}cdojPl zVcm4dcumk9mF4_6zH*^5_K>l(qxrBr3*e#>^y|uj_%8P2?Jvs!S^NGizZ7^&>`K!0 z<0R*lOm~U9$(eOi!$3J@bP9>1-8hlqjorwE#w(G|+@hOQ?m@1@eNxEaCMEE=oCK?s z5y#~Ly2RDWsbg|%R-Y7X1J`u(B2&?-F0rX3cC8;OYogB{JcedO-AJt-CE=5)7Feh3 zPMK=cMXpy4|6;TS-7m0~4a%ZzH<;reAmUY&(>1&%nM7OG-DL}Q@IEc=8&yKbSy5C@Px7VaBjZpH{a?%Ixea*7*L9OUo?o?o((K7H~M12n$+=eO^&gE}mj9#L4*~VQ&ZI6fTR^EKen4B8iF08=!9M-+v z+WFpEkdGFGKjYINs~Vma8un=#I=VGHr)hXzXmGrs6zU`Tn-2K7IfhscDGmAvGrXvD zz9B~rK8$F5&%z__%p!&(1kbZxB3pC%8}5qwxMsK4*tZYx@&w} z^Yg#me!e4=+TT@RJ2wCCDeW;9o2}pbJsiOn?gMlr`a`9xQ;v%GNHhCm&6`h^HJx(Y zh|frKb=B>B>V_3N@e`lbjVHArp3*%0LMV$nt(@F0$HJG&#ZK8A{}l>1p3z9Z)=0k* zq_Jle=TmY_-FF)LdkuX~lXRY_S-YM;2k~Tfs<%$H+csU`$t7AHdBI}rc7rd9*kKBp zek58Kq@s8a^po(}Iht61>BvpF2M>TJ^+Y zRN8mQ=9nOU^2%S~Xto3et4BNy#1g73diw^mCCr}y4T|cg#2O>)5TUdqL6Ql&x8iVf z7qtkK(JBs%ERia0oxKOGDawx)1skI^XJUjiVX=V!fcnGZTqzpyJ*oTW=ZE#YDoA#N`C%&W$iVvV>}9)>l!!KYki{1t$H0D(q;5+x}2_{_s}|8PaEjHbS0&QtqMN8fH`8YNFnxq>p^wtX=;O47{*!K{PtYgnHoBcY zMR(9vx|9BkwoxzLMW3d-X*=CR_tIzRvveQrp!?}_^m+OMJwOlAL-a*@m>!`o(UYujm>2HT{O3rQg!;==by-Jx_n27wAR$BmIf~On;%j(%HM_m=%}} zSR^nzuqa^Bz+!;K0*eC{53D~h2e1TSiNFQ`8whL=uq0rEfeitc3~VT{VZeq18v)D- zY$UK0U@l;(z(xT}1114W2X+mx(ZI$4yB64Wz^(^&1F(MpyAjw}U~XU;z+_;Vz_Ng4 z0~-e{2Usq!@xUek%LA4VY$C7%V1>YL0#*d97+49gNx&upn*wYquxY?bf!z%37GSpm zn-1(YU}eC{f!z*l2C$jHDuB%bb_cN8z~%tE6WCqA<^r1sY(B6Bz!m~q1gsKR6|ibx zi-9cxwiH+muv%ctfZYvjIj|ML?g3T@tR7ecuzP{61V({10&4=c3fO93_W@f2Y%MSb z%mZv4u=T+12etv&1Hd){dl1+|z%~I>fNciW4D4ZGj{w^O>``Ek0ec)+3$T9z+Y0On zU{3@ct+z+M9OGO&LGdj;65!2Sd5HDE`99Rqe8*a={-1A7D5o4`7O zy#?%TVE+a74zPEDy$9@lU>^Yc5ZFh+J_hy)uup+~2JCZSCxM*;_64xhz`g|b6|ghF zz6SOUu(QCv1@;}V?}42Ib{^Odz%Bs02<%5-KLPt0*e}3-1@;@T{{j0Q*dM_D1ojuO NzkywXw##to{{V;Ja@PO= delta 12075 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 E0hu#ZX#fBK diff --git a/DRV/GRAPPLERP.DRV.S.txt b/DRV/GRAPPLERP.DRV.S.txt new file mode 100644 index 00000000..db01cb30 --- /dev/null +++ b/DRV/GRAPPLERP.DRV.S.txt @@ -0,0 +1,307 @@ +NEW + AUTO 3,1 + .LIST OFF + .OP 65C02 + .OR $2000 + .TF drv/grapplerp.drv +*-------------------------------------- + .INB inc/macros.i + .INB inc/a2osx.i + .INB inc/mli.e.i + .INB inc/com.i +*-------------------------------------- +ZPTmpPtr1 .EQ ZPDRV +*-------------------------------------- +* File Header (16 Bytes) +*-------------------------------------- +CS.START cld + jmp Dev.Detect cld,jmp abs=DRV + .DA #$61 6502,Level 1 (65c02) + .DA #1 DRV Layout Version 1 + .DA 0 + .DA CS.END-CS.START Code Length + .DA 0 + .DA #32 SS + .DA #2 ZP + .DA 0 +*-------------------------------------- +* Relocation Table +*-------------------------------------- +L.MSG.DETECT .DA MSG.DETECT +L.MSG.DETECT.OK .DA MSG.DETECT.OK +L.MSG.DETECT.KO .DA MSG.DETECT.KO +L.DRV.CS.START .DA DRV.CS.START +L.FD.DEV .DA FD.DEV +L.FD.DEV.NAME .DA FD.DEV.NAME + .DA 0 End Of Reloc Table +*-------------------------------------- +Dev.Detect >STYA ARGS + + >LDYA L.MSG.DETECT + >SYSCALL PutS + + stz ZPTmpPtr1 + lda #$C1 + sta ZPTmpPtr1+1 + +.1 and #$0f + tay + lda A2osX.S,y + bne .3 + + ldx #DEVSIG.Length-1 + +.2 ldy DEVSIG.Offset,x + lda (ZPTmpPtr1),y + cmp DEVSIG.Value,x + bne .3 + + dex + bpl .2 + + bra .4 + +.3 inc FD.DEV.NAME+3 + inc ZPTmpPtr1+1 no match, try next slot.... + lda ZPTmpPtr1+1 + cmp #$C8 + bne .1 + + >LDYA L.MSG.DETECT.KO + >SYSCALL PutS + + lda #MLI.E.NODEV Not Found in any slot, exiting + sec + rts + +.4 lda ZPTmpPtr1+1 + and #$0F + pha + tay + lda #A2osX.S.COM + sta A2osX.S,y + pla + asl + asl + asl + asl + sta DEVSLOTn0 + +.8 >PUSHW L.MSG.DETECT.OK + >PUSHW L.FD.DEV.NAME + >PUSHBI 2 + >SYSCALL PrintF + + >PUSHWI DRV.END + >PUSHWI DRV.CS.END-DRV.CS.START + >PUSHWI DRV.CS.START + >LDYA L.DRV.CS.START + >SYSCALL InsDrv + bcs .9 + + >STYA FD.DEV+S.FD.DEV.DRVPTR + + >PUSHW L.FD.DEV + >PUSHW L.FD.DEV.NAME + >SYSCALL MKDev + +.9 rts +*-------------------------------------- +CS.END +DEVSIG.Offset .HS 05070B0C +DEVSIG.Value .HS 38180114 +DEVSIG.Length .EQ DEVSIG.Value-DEVSIG.Offset +MSG.DETECT .AZ "Orange Grappler Series // Boards" +MSG.DETECT.OK .AZ "Installed As Device : %s\r\n" +MSG.DETECT.KO .AZ "No HW Found." +ARGS .BS 2 +*-------------------------------------- +FD.DEV .DA #S.FD.T.CDEV + .DA #0 HANDLER + .DA #0 BUSID + .DA #0 DEVID + .DA 0 BUSPTR + .BS 2 DRVPTR + .DA 0 DCBPTR + .DA 0 BUFPTR +FD.DEV.NAME .AZ "lpt1" +*-------------------------------------- +* Driver Code +*-------------------------------------- +GRAPPLER.WDATA .EQ $C080 +GRAPPLER.STATUS .EQ $C080 +GRAPPLER.STATUS.IRQ .EQ %10000000 +GRAPPLER.STATUS.NOPAPER .EQ %00000100 +GRAPPLER.STATUS.SELECT .EQ %00000010 +GRAPPLER.STATUS.BUSY .EQ %00000001 + +GRAPPLER.IRQR .EQ $C082 +GRAPPLER.IRQEN .EQ $C084 +*-------------------------------------- +ZPIOCTL .EQ ZPDRV +ZPBufPtr .EQ ZPDRV+2 +ZPCount .EQ ZPDRV+4 +*-------------------------------------- +DRV.CS.START cld + jmp (.1,x) +.1 .DA STATUS + .DA A2osX.BADCALL + .DA A2osX.BADCALL + .DA A2osX.BADCALL + .DA CONTROL + .DA A2osX.BADCALL + .DA OPEN + .DA CLOSE + .DA READ + .DA WRITE + .DA 0 end or relocation +*-------------------------------------- +STATUS jsr STATUS.CONTROL.Init + ldy #S.IOCTL.STATCODE + lda (ZPIOCTL),y + beq .1 + cmp #S.IOCTL.STATCODE.GETDIB + bne STATUS.DCB + ldy #S.DIB-1 + .HS 2C bit abs +.1 ldy #3 + +.2 lda DIB,y + sta (ZPBufPtr),y + dey + bpl .2 + clc + rts + +STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB + bne .3 + + ldy #S.DCB.COM-1 +.2 lda DCB,y + sta (ZPBufPtr),y + dey + bpl .2 + + clc + rts +.3 cmp #S.IOCTL.STATCODE.EOF + bne STATUS.9 + + lda DIB+S.DIB.S + and #S.DIB.S.OPENED + beq OPEN.E + +.8 clc + rts + +STATUS.9 lda #MLI.E.BADCTL + sec + rts +*-------------------------------------- +CONTROL jsr STATUS.CONTROL.Init + + ldy #S.IOCTL.CTRLCODE + lda (ZPIOCTL),y + cmp #S.IOCTL.CTRLCODE.SETDCB + bne STATUS.9 + ldy #S.DCB.COM-1 +.2 lda (ZPBufPtr),y + sta DCB,y + dey + bpl .2 +*-------------------------------------- +OPEN lda DIB+S.DIB.S + bit #S.DIB.S.OPENED + beq OPEN.1 + +OPEN.E lda #MLI.E.OPEN + sec + rts + +OPEN.1 lda #S.DIB.S.OPENED + tsb DIB+S.DIB.S + + clc + rts +*-------------------------------------- +CLOSE lda #S.DIB.S.OPENED + trb DIB+S.DIB.S + + clc + rts +*-------------------------------------- +READ jsr READ.WRITE.Init + + clc + rts +*-------------------------------------- +WRITE jsr READ.WRITE.Init + +.1 inc ZPCount + bne .2 + inc ZPCount+1 + beq .8 + +.2 lda (ZPBufPtr) + inc ZPBufPtr + bne .3 + + inc ZPBufPtr+1 + +.3 sta GRAPPLER.WDATA,x + + bra .1 + +.8 clc + rts +*-------------------------------------- +READ.WRITE.Init ldx DEVSLOTn0 + +STATUS.CONTROL.Init + >STYA ZPIOCTL + + ldy #S.IOCTL.BUFPTR + lda (ZPIOCTL),y + sta ZPBufPtr + + iny + + lda (ZPIOCTL),y + sta ZPBufPtr+1 + iny #S.IOCTL.BYTECNT + + lda (ZPIOCTL),y + eor #$ff + sta ZPCount + + iny + + lda (ZPIOCTL),y + eor #$ff + sta ZPCount+1 + rts +*-------------------------------------- +DRV.CS.END +*DEVSLOT0n .BS 1 +*DEVSLOTCn .BS 1 +DEVSLOTn0 .BS 1 +*-------------------------------------- +DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ + .DA #0,#0,#0 + >PSTR "Grappler+ // Crd" + .DA #S.DIB.T.CHAR + .DA #0 + .DA K.VER +*-------------------------------------- +DCB .DA #S.DCB.T.COM + .DA #0 FLAGS + .DA 0 + .DA #0 + .DA #0 + .DA #0 + .DA #0 +*-------------------------------------- +DRV.END +MAN +SAVE usr/src/drv/grapplerp.drv.s +ASM diff --git a/LIB/LIBGUI.S.WND.txt b/LIB/LIBGUI.S.WND.txt index 6a250ebc..54a6da27 100644 --- a/LIB/LIBGUI.S.WND.txt +++ b/LIB/LIBGUI.S.WND.txt @@ -262,7 +262,7 @@ WND.Show >SYSCALL2 GetMemPtr jsr WND.PaintTopBar bcs .9 - +*-------------------------------------- .3 ldy #S.WND.MBAR+1 lda (ZPWNDPtr),y beq .7 @@ -291,7 +291,7 @@ WND.Show >SYSCALL2 GetMemPtr jsr WND.SetStatus jsr WND.PaintMBar - +*-------------------------------------- .7 ldy #S.WND.STATUS+1 lda (ZPWNDPtr),y beq .8 @@ -301,11 +301,26 @@ WND.Show >SYSCALL2 GetMemPtr adc SYSFON.Hp2 sta Counter+1 + ldy #S.OBJ.Y2 + lda (ZPWNDPtr),y + sec + sbc SYSFON.H + tax + + iny + lda (ZPWNDPtr),y + sbc #0 + ldy #S.WND.SBAR.Y1+1 + sta (ZPWNDPtr),y + txa + dey + sta (ZPWNDPtr),y + lda #S.WND.S.HASSBAR jsr WND.SetStatus jsr WND.PaintSBar - +*-------------------------------------- .8 lda #0 jsr PutA2CBBuf @@ -362,9 +377,12 @@ WND.fPaint ldy #S.WND.MBAR.Y2 lda (ZPWNDPtr),y + clc + adc #1 sta CB.Cache+S.CB.Y1 iny lda (ZPWNDPtr),y + adc #0 sta CB.Cache+S.CB.Y1+1 ldy #S.OBJ.X2 @@ -376,10 +394,10 @@ WND.fPaint ldy #S.WND.SBAR.Y1 lda (ZPWNDPtr),y - sta CB.Cache+S.CB.Y1 + sta CB.Cache+S.CB.Y2 iny lda (ZPWNDPtr),y - sta CB.Cache+S.CB.Y1+1 + sta CB.Cache+S.CB.Y2+1 stz S.CB.Y2+2 Ending 0 diff --git a/SBIN/GUI.S.txt b/SBIN/GUI.S.txt index 884a439a..0b026624 100644 --- a/SBIN/GUI.S.txt +++ b/SBIN/GUI.S.txt @@ -139,8 +139,8 @@ WND.Test >PUSHBI S.WND.F.RESIZE+S.WND.F.MOVE+S.WND.F.CLOSE+S.WND.F.MAX+S.WND.F. >LIBCALL hLIBGUI,LIBGUI.HideCursor lda hWND >LIBCALL hLIBGUI,LIBGUI.WND.Show -* lda hWND -* >LIBCALL hLIBGUI,LIBGUI.WND.Paint + lda hWND + >LIBCALL hLIBGUI,LIBGUI.WND.Paint >LIBCALL hLIBGUI,LIBGUI.ShowCursor clc