From cb8adcbb8b6eac22789294ce1fbf85112f065cb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Thu, 3 Oct 2019 08:25:27 +0200 Subject: [PATCH] Kernel 0.93+ --- .Docs/.HELLOWORLD.S.txt | 5 +- .Docs/.TEMPLATE.S.txt | 5 +- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes A2osX.S.QC.txt | 28 +---- A2osX.S.txt | 67 +---------- BIN/AARP.S.txt | 33 +----- BIN/ADT.S.txt | 67 ++--------- BIN/ARP.S.txt | 31 ----- BIN/ASM.S.DIR.txt | 121 ++----------------- BIN/ASM.S.EXP.txt | 79 ++----------- BIN/ASM.S.FIO.txt | 55 +-------- BIN/ASM.S.MAC.txt | 48 +------- BIN/ASM.S.OUT.txt | 47 +------- BIN/ASM.S.SRC.txt | 237 +++----------------------------------- BIN/ASM.S.SYM.txt | 86 ++------------ BIN/ASM.S.txt | 33 ------ BIN/ATBROWSE.S.txt | 24 +--- BIN/ATLOGON.S.txt | 10 +- BIN/BMP2PIX.S.txt | 123 ++------------------ BIN/CAT.S.txt | 49 +------- BIN/CHMOD.S.txt | 61 +--------- BIN/CHTYP.S.txt | 65 +---------- BIN/CMP.S.txt | 39 +------ BIN/CSH.I.txt | 3 +- BIN/CSH.S.CORE.txt | 211 +++------------------------------ BIN/CSH.S.txt | 32 +---- BIN/CUT.S.txt | 44 +------ BIN/DNSINFO.S.txt | 25 +--- BIN/EDIT.S.BUF.txt | 91 +-------------- BIN/EDIT.S.CTRL.txt | 98 +--------------- BIN/EDIT.S.SCRN.txt | 83 +------------ BIN/EDIT.S.txt | 66 +---------- BIN/ETCONFIG.S.txt | 71 ++---------- BIN/FNT2FON.S.txt | 129 +-------------------- BIN/FORMAT.S.txt | 38 +----- BIN/GREP.S.txt | 41 +------ BIN/GTEST.S.txt | 12 -- BIN/HTTPGET.S.txt | 73 ++---------- BIN/IPCONFIG.S.DHCP.txt | 65 +---------- BIN/IPCONFIG.S.ETC.txt | 63 ++-------- BIN/IPCONFIG.S.txt | 50 +------- BIN/KILL.S.txt | 14 +-- BIN/LS.S.txt | 96 ++------------- BIN/LSDEV.S.txt | 33 +----- BIN/LSOF.S.txt | 13 +-- BIN/MD5.S.txt | 31 +---- BIN/MEM.S.txt | 6 +- BIN/MEMDUMP.S.txt | 51 +------- BIN/MKDIR.S.txt | 5 +- BIN/MORE.S.txt | 43 +------ BIN/MV.S.txt | 3 +- BIN/NETSTAT.S.txt | 21 +--- BIN/NFSMOUNT.S.txt | 6 - BIN/NSCUTIL.S.txt | 45 +------- BIN/PING.S.txt | 56 +-------- BIN/PS.S.txt | 44 +------ BIN/RPCDUMP.S.txt | 28 +---- BIN/SH.S.CL.txt | 49 ++------ BIN/SH.S.CMD.txt | 229 +++--------------------------------- BIN/SH.S.CORE.txt | 138 +++------------------- BIN/SH.S.EXP.txt | 58 +--------- BIN/SH.S.HIS.txt | 40 +------ BIN/SH.S.IO.txt | 24 ---- BIN/SH.S.txt | 62 +--------- BIN/TELNET.S.txt | 39 +------ BIN/UNPAK.S.txt | 46 +------- BIN/USERADD.S.txt | 63 +--------- BIN/USERDEL.S.txt | 27 +---- BIN/WC.S.txt | 64 +--------- BIN/WHO.S.txt | 15 +-- BIN/X.CPMVRM.G.txt | 3 - BIN/X.CPMVRM.S.txt | 118 +------------------ BIN/X.FILEENUM.S.txt | 106 +---------------- DRV/DHGR.DRV.G.txt | 3 +- DRV/DHGR.DRV.S.BLT.txt | 77 +------------ DRV/DHGR.DRV.S.LBUF.txt | 45 +------- DRV/DHGR.DRV.S.LINE.txt | 27 +---- DRV/DHGR.DRV.S.PIX.txt | 32 +---- DRV/DHGR.DRV.S.RECT.txt | 6 - DRV/DHGR.DRV.S.txt | 77 +------------ DRV/LANCEGS.DRV.S.txt | 82 +------------ DRV/MOUSE.DRV.S.txt | 58 +--------- DRV/PIC.DRV.S.txt | 4 - DRV/UTHERNET.DRV.S.txt | 70 +---------- DRV/X.SSC.DRV.S.txt | 103 ++--------------- DRV/X.U2.DRV.S.txt | 76 +----------- INC/A2osX.I.txt | 11 +- INC/APPLESOFT.I.txt | 2 +- INC/MACROS.I.txt | 3 - INC/MLI.E.I.txt | 8 +- LIB/LIBBLKDEV.S.txt | 76 +----------- LIB/LIBCRYPT.S.txt | 44 +------ LIB/LIBETALK.S.AARP.txt | 54 +-------- LIB/LIBETALK.S.CFG.txt | 3 - LIB/LIBETALK.S.FRM.txt | 2 - LIB/LIBETALK.S.txt | 12 +- LIB/LIBGUI.G.BM.txt | 1 - LIB/LIBGUI.G.CUR.txt | 16 --- LIB/LIBGUI.S.BUT.txt | 1 - LIB/LIBGUI.S.CLIP.txt | 51 +------- LIB/LIBGUI.S.CUR.txt | 33 +----- LIB/LIBGUI.S.DRAW.txt | 68 +---------- LIB/LIBGUI.S.EVT.txt | 1 - LIB/LIBGUI.S.MENU.txt | 2 - LIB/LIBGUI.S.MOU.txt | 22 +--- LIB/LIBGUI.S.PAT.txt | 3 - LIB/LIBGUI.S.WND.txt | 24 +--- LIB/LIBGUI.S.txt | 19 +-- LIB/LIBPAK.S.IN.txt | 12 +- LIB/LIBPAK.S.LZ.txt | 33 ------ LIB/LIBPAK.S.OUT.txt | 16 +-- LIB/LIBTCPIP.S.ARP.txt | 57 +-------- LIB/LIBTCPIP.S.CFG.txt | 19 +-- LIB/LIBTCPIP.S.DNS.txt | 129 ++++----------------- LIB/LIBTCPIP.S.FRM.txt | 58 +--------- LIB/LIBTCPIP.S.HST.txt | 9 +- LIB/LIBTCPIP.S.ICMP.txt | 14 +-- LIB/LIBTCPIP.S.IP.txt | 43 +------ LIB/LIBTCPIP.S.SKT.txt | 77 ++----------- LIB/LIBTCPIP.S.TCP.txt | 82 +------------ LIB/LIBTCPIP.S.txt | 35 +----- SBIN/CIFSD.S.txt | 28 +---- SBIN/GETTY.S.txt | 52 +-------- SBIN/GUI.S.txt | 11 +- SBIN/HTTPD.S.txt | 39 +------ SBIN/INITD.S.txt | 18 +-- SBIN/INSDRV.S.txt | 4 +- SBIN/KCONFIG.S.txt | 52 +-------- SBIN/LOGIN.S.txt | 86 +------------- SBIN/NETWORKD.S.txt | 47 +------- SBIN/NFSD.S.txt | 22 +--- SBIN/TELNETD.S.txt | 42 +------ SHARED/X.PRINTF.S.txt | 41 +------ SYS/KERNEL.S.ARG.txt | 19 --- SYS/KERNEL.S.BIN.txt | 60 ++-------- SYS/KERNEL.S.CORE.txt | 103 ++--------------- SYS/KERNEL.S.DEV.txt | 27 +---- SYS/KERNEL.S.DIRENT.txt | 89 +------------- SYS/KERNEL.S.DRV.txt | 24 +--- SYS/KERNEL.S.ENV.txt | 108 +---------------- SYS/KERNEL.S.FIO.txt | 1 - SYS/KERNEL.S.GP.txt | 95 +++------------ SYS/KERNEL.S.INIT.txt | 173 ++-------------------------- SYS/KERNEL.S.IO.txt | 38 +----- SYS/KERNEL.S.IRQ.txt | 98 +++++++--------- SYS/KERNEL.S.JMP.txt | 20 +--- SYS/KERNEL.S.MATH.txt | 70 +---------- SYS/KERNEL.S.MEM.txt | 75 +----------- SYS/KERNEL.S.OSDX.txt | 121 ++----------------- SYS/KERNEL.S.PFT.txt | 22 ---- SYS/KERNEL.S.PIPE.txt | 48 +------- SYS/KERNEL.S.PS.txt | 121 +++---------------- SYS/KERNEL.S.PWDX.txt | 103 ++--------------- SYS/KERNEL.S.SHARED.txt | 15 +-- SYS/KERNEL.S.SLISTX.txt | 80 ++----------- SYS/KERNEL.S.STAT.txt | 65 +---------- SYS/KERNEL.S.STDIO.txt | 100 ++-------------- SYS/KERNEL.S.STDIO2.S.txt | 58 +--------- SYS/KERNEL.S.STDLIB.txt | 48 +------- SYS/KERNEL.S.STRING.txt | 33 +----- SYS/KERNEL.S.TERM.txt | 193 ++----------------------------- SYS/KERNEL.S.TERMLC.txt | 48 +------- SYS/KERNEL.S.TIME.txt | 70 +---------- SYS/KERNEL.S.UNISTD.txt | 33 +----- SYS/KERNEL.S.Z80.txt | 12 -- SYS/KERNEL.S.txt | 5 +- SYS/KM.APPLETALK.S.txt | 18 --- SYS/KM.NSC.S.txt | 44 +------ SYS/KM.RAMWORKS.S.txt | 84 +------------- SYS/KM.VSDRIVE.S.txt | 86 +------------- 170 files changed, 652 insertions(+), 7981 deletions(-) diff --git a/.Docs/.HELLOWORLD.S.txt b/.Docs/.HELLOWORLD.S.txt index 23bd6b8d..df7cdac0 100644 --- a/.Docs/.HELLOWORLD.S.txt +++ b/.Docs/.HELLOWORLD.S.txt @@ -31,7 +31,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -52,15 +52,12 @@ CS.INIT clc * if RUN exits with CC, RN entered again *-------------------------------------- CS.RUN - * Put your code here >LDYA L.MSG.HELLO >SYSCALL puts - .8 lda #0 Exit Code = Succes sec QUIT Process rts - .9 lda #E.SYN Exit Code = Succes sec QUIT Process rts diff --git a/.Docs/.TEMPLATE.S.txt b/.Docs/.TEMPLATE.S.txt index 2989088b..e8e9e195 100644 --- a/.Docs/.TEMPLATE.S.txt +++ b/.Docs/.TEMPLATE.S.txt @@ -31,7 +31,7 @@ CS.START cld .DA 0 *--------------------------------------- * Relocation Table -*--------------------------------------- +*--------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -52,15 +52,12 @@ CS.INIT clc * if RUN exits with CC, RUN entered again *--------------------------------------- CS.RUN - * Put your code here * >LDYA L.MSG.Test Load EFFECTIVE address * >SYSCALL puts Call API to print a string - .8 lda #0 Exit Code = Succes sec QUIT Process rts - .9 lda #E.SYN Exit Code = Succes sec QUIT Process rts diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 8629b5cc4d4193cad2f07e8fa5ccbe2a9eecea73..7e3de620b047b652cf4c843cd617e16ce15f47bc 100644 GIT binary patch delta 43471 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 ITld-j10(mhP5=M^ delta 9226 zcmbW6d0bQ1_UO-$U>Fk&L%7DQV76>-9;PQj90rG|pm zZfVuVR1!l4K`YU=AZl%aT8-AJPF0b4NZP7(YWb~Ww7vJe`^Wn{;Cs#<)>?b*wZ{bY z(>|#hsNzMmd|Qa-7;$+)4iI<2*gvQFY{V5KEM2u`( zxI+*K4|Cc!)nPYHZL>OfyN(DAaSEcEZFM6;hsqAg`&Ed^yuS(}w#i%^Nz>3#-jMiW z+hNziX0Awdi-w%@q0`d5)3T3-QR@O@+$gF!XH;Nlu!TRi>ps+Y-qjsSDJ~>5 z!Sm4Wn|iS<{WWS}h+GcMP@Le^N&JjSN=cvT&X%G( z+7C%pW3r#b-PHU%m!E7D$(yxdMBS7eF6rN_^Qfk@p`^Mgc{KTSA;ZzziTe-9yWP62 zTdY>C&8mwuQQUU(ft9>bWR@;tPSNyAaxsqyAj>?*smP$^i~&uxWdLq#+ zXH?Nmbuy=lD|NP+XRg$#r4>H)<&zrgWaA69@El{J&iq(sK^2$lQtP#s>nd;6-D1h~ z4SWQNS;2UMxs(;mVEP=E{nx0~=TE~RbbSt^Ko|)#_+HRtBqLRQ(C4p(~ zBz^<4(Q#xa_eNWlHy3U`xq-Q^aHreLRE@NSO_Q`YGVpRYSM7kP(C+4QrOZe-dIxda z$0+6Z+uv5njHU0bCN99mE#(Ki<*mYx%i#fcm0oVSGA_ z`Em1uAl8+U{vS#ty@XE-G@}0N){?pmGoi34cw1uCIa1CgxC9NoSkeL)j08id3P_j^>rGvzrsm zqTTFMT0x0V)9L@{?)Ba>)3+K75Dy(24wH72j!lC2Tek5Lfp)9u)IUEOT8I~;VJo_= zwlL5-qhn(O|0!x0JP~QcI*PM&*lr#a*{%vsS;&%)`0(M~R!f*J25KyOxvhTtOq6}8 za@(7$wh3BWdaT-BYf-l~?Slbe$ez`?gSuu98yE)b+G;Ikdu`VJJ=Tg|Yk`BN-+rsL z!e$jL4Ex&xIlG7TbL|!kLAGY4N{+fy+%JV2jIv=2Ll89a-Sw^4E3Eccq!6#g1{TS?tfoGF3`jp4 zl4ov_&kXF$2&*-|qYvDzV$ayDiuC6WLm&4tWo*F_%~1%Ak3BSgMmBLnLT9`BcbEq7 zzU6LtP%Ua`On~A3_u?4K11{GOitJDQ(Eld1{J-ng*o$5N!=zSRuSlQoAeb@VFtYJ( zu9gn2%g>a+_4x^7wwUnYP-J@qdG&qCRoDmS)UbZ!B;hyFE6r&;_#m3*$>LJpkDg45 zO8Et%*0!|UaliaKS*5t$`)D?RMuaUi_XAZC3Rms983oGmA zo~l`TimU0Vn#|oJTXg)JX&A)U|QoeS?r7xi9H$eDR_BdOg zSIoRr35EBcSH$+@_G;8HC8GE6fAkyH3A=CCWs-4TG?)m zzO39LGI5%6E?lVe(YxH3f5j#S-_$B@WM`pMIXB@-u|Yk=#H&LZU$+Eu!#Zt&ddZC? zS8Q^SYFuU6%=xudNx5)x`4pc@diDH1x|ER5`R#NniQLO)L0A$`vVrib*~@1}KItgC zuDQ9h?CQ>8S2&kWTT&x$^J?U5j^`PRKQyWCgvWWt_Q-OZb0Oo)__?lcw5j{mR$fhk zhM<}KW&A)ooSZ4+r_x@qO89zdeox`GYC!mn?72pI4g6L5328L)ehTQQi=I8aTUatp zvOjjD3mZl}_XhdP$PW_6Y9FrwJ5~Gm_hrj_bm=BmPvtmKTxUn6qxt^#tcRPducc~Q zfkflD<(r$@+MAV*?jsPx7*6$DB4c^zu>3S zon(pq_3amYIph}Y=Y3&@7w+d*h)%b0lZmK;=fT~B*ITb^M9-dLVU(gEuwu@=Q~jIX zl^aGOE#@Y|8UkdUx%L^ax z60Unhc92<-l-)?LA-iQvn5|!d6q8O7e70)f70&C0MGafLQ85*i=@wysGml$=j4& zlE>{N8xHbwz{4vC`MTkxxhn2eou9p~Q0D*wAGPRQsvUIxC3*X7jH%C8@6LggOcwyQ z2bSa&>iU)BrF}%s9^wsh-%fRRp-x(ow|8mTvIYz73+L#jFZr<|-_Ep9a^_3kn|yei zje%R4Ui{66SF0%-3%9Z}x7jG@=AXCO3DD_J5A#aMojwfHhb594K7n>2J$KlE;R&7U zYr_8P(rLNg4vDSIRa4)yO{o=TLVCGQR()PL0Aaer%9b}NonTg2o^T_{r!_ExTu6E| zJA{^#;${e|oH(2L0p3eHiXU*Ovno|URoAN(Fqx~SS6-^CUDYpKVoRwEBbHh|F2EI*;rUdNrK{q6ow8K{Q@j?|x0iNJ zbM2;P?Yo4l;|InTH)}k1Y?j&_!)=NMvSOyyQ{w@#kQB%??mJ7G^?kTMmg^~XTsv2H z_n=G}RZ&bry4Z+GCC#v4ET<|;nr#l{uo%?A6~)crGMh&QBZ+VEu(`nPgIj&K>Q$3$ zt8A}FnWvDM1Tv25t+Mbjwm~{kwM;wvZUa1DA-lR*-vO`ORa+m!Jsg&fuZ}K}!Tdh2 zV@hPgD&mguf$nv8cj!b~Mp7bc$kwv(GIXAR+bqhz<8zv=3T}dRm0} zT`)>BTHg*AkgCX{-&zXBYLY5?T7)?`Qu9*E4n@`|&8Y0G(VEfmocqaVb5-A`>ofJG zr*PdZaJK=Gg<@NI_Cg0+mDjDuDII;;Rc`ymwj!~u58*Wl z8Q(G#lUwz?hvUh%Cd*9)RFOaH`SBj7+Z08YTem!F-O13!j*7B9G7)F6vB)^VHJ&lJ zi5$!#4-tIAoSV2f+TbOc6Vllh|JE+OC~sbq?8!qt$DM4`iH^>rR?nkK=TVzv_nIu- zS1K=)b;o&b!=qNU-v&FkLyVWq`p!?xcZdO})_C)w`R5m6QGYcHj zxwCDGgG_3qMFhuUe6Frd3imWH6Cxbr17GF#kwGW;5ckeDn6q%or8LPNgJJF@ku4Hs z_@Qk}{e+`pbHY)F@75A=T)#;AI?A5C9!G4N%|??=l}D5 zvZd?){eF@e@L`v!>tt6`*SRih*RNe`x^udZcQtgK?F#4)?B>>Xktv_^5nd2G(+&Ad=mWS-(N=fN={BW zl?vY$jjT~PX9f0;rt;o+VRnnBL#QKsPE2q@p`QEad{Gsbm~;}}V4 z-l`1BufLe=E_WVaKGhg|gC>dXtN#q$9Se@uj{w7`g>Ca5!7cq?GCbQQv*X2+{~9Axkf~oCBbe&tmW|% z`v?%#Fkd~Mwx7=KV3B8-{`dBRWB=lvst{MmF zpE>4h8**7!vSWkP#k{#U?p{B`CaHqtOH>8s4La#sx<)Vcagk}IF9N-6zVM}=IlNLD zM$0b7yeJ-&C=Tr}HD?@V5Ew67y>d%C8|T?KF{!iYCxk%K7EzQZbY`4Qk|*?5)ihH}l2Fi6;vhQ>dsIyT;VNqv1aN zZ{g=-KLbQ#W|FC9sSgPVP{GzQn<~v)wu+LzVjrF0Xl3l+Rg~+T7hO+MQm%8U(yT>G zAr6pHz6$2EmXIj{Dj#woKqd2be4UEeA=q&Imym#U9P$Pv$glTu2TG#fgyet9yQEVQ z+eRgi8#`+PkzXgu^y-gxG6>`aj7IU-mqlQx40#bEE z8bH58EJvhC^g>d@sRI0SpASH^G8zVY{-Tw+`7!zPR_A3cE1*=1$+QQ#ak3?U%fvwU zLYI=^163i@m;GHTbXvZgiW)|Ql@t^luN)LQBb4%7Vek5kxig~1CeBDx4vHO4d9HjO z)_*S)uL6(5R+Gwss!;k}GU6*~D7}XK1v#`9{LjqHe>p03>5`Ph<*U+?qT(s>I*?CX zPxgEz9Yb#*xBkc-H&IRfhs^s+^A>0*Nj?=(9}-EqZ=@pflQMF0vgSkQ@)IcE_o#@C zk@+uYEzQl!`FHD7Kml|SCtolY8 z?X%p@lQ$c_A-}<>qDt0INC0G^XxXbQ?|8A0AEA^vwWPPpF+kX$3 z6Q&icEIpWU{oLNEplGF%QtTy_wNfumTn05B2D@iLFGo$C5j81sP9!W@BUJeABlMG8 zAKFA}d6l=gT$mQ*xRsatO1_{<=Vz^=ocBW`!qx;D6`&DXNgP5{A@dGAFOH?eRZ#3z zEo@tv`Cxu##=M-YsFVeH%P8?d>V3-T5EV6?Wag}(BwtdcnK_x1eWX z(Ft)&nlgPH_?Mb1w5vEmib7Q0^jE|Xq6!=QH8i&(Gasg%tkxc-pcz76W>B&^d#}S5 zPhA!cLm739JPuJs2Gu_g&TvY69GdBW!Y(EZPHJx2f_YTvNs@9*8bY5Ui;hYC2Y+Yx z$?^MVp?;6@YFW#%nfx(pVm+u46)AfOgdlbjPakX4lbdDt!u-lEktC#1Qz&As0(-pZIo2H8_*5hbsr zjfn{E7+=bY^fD*E7f1Pn+3@c>SM%=K?(=x#x~FkW&3gCTIP-4ta1Up5(J}W}k-61l z_$+4<`h&yIaKG>~Slk(7{$C(?!98%UdBV!cH(gi?b(83V$zH_vG)!b3c0a6{HH_*n zGR_JNW(>*w^+v^`Fvj@S!$78{vwvX;PbH=N^Cdl`L{4rr|sd0i7%!qsqq5;WfNy-4>?&S&h+=&AW6H%N||6?qJHzLDEzXIdBhj0s% z_{+@tv$1)MIc^lQg~rGqqX3LJj0R#9h*1zm!5Hxvg^5=jOJmKiP3zFvM_oJqqi~2#%KXX|AWyx80BEJ5Tjg-7Gbm) zqa_$E#b_Buc^ECnXazAsk;~1U5=p;tpVsr|l?=bovqXvu` zF>1o-2aHZ*^dm-RFglBo1*3BqoyX`Wj4ohw5u-~OUB>7NMn7Y86{BkyUB~DKMmI6~ z1*2OS-Nxt+M$H)A#i#|NR*c#(YR9MpqfU&vFzUvr2cuq$tQgra`W2(!F!~*%dl=ov z=mAE5VDu29M;JZE=m|zoG5QmuzcA`6M063N0R~_J5g-N}fPR1ka0HwHXTSw;1>68B zAOqZi{(v0t06YONz#C8iK7cPU01(>q1N?yifCB~sfj|%t4Ddh*5DJ6=;Xnj12p9}R z0#U#aKnX+xF+eOZ6c`4?0V*IK7!D)=BY=^>OTZ{#G%yB81jYhMKr%267!OPUQh-!o zBJeVh2227b15<#hz%*bwFawwg%mQWuuK;s^xxlNyYryNkzkoM@H-U5@1DFS70`q|^ z;4R>7ARAZ!{15OBkOM3Pa)Cv_Vqgid6j%o20n33Ez)D~huo`$5SOcsD)&c8*4S*WR z2Q~ul0R?~tz`*;!CSWsA2z&r+0kl97@F7qPlmJ_SZNNvscHm=x06TzE;1l3eU?;E( z*bRIJ=zu+d9{3#C3zPu{zzFOEOh7sC1+X8e04jk4Kow9890U#lUjm1L8o&%30geJ+ z0bc{(0JT6Ja15vijsquvlfbvYDd0Qcd!PYm1e$;!fYZQ_z!~5yU;)kn=YgMq3&2I- z5^x!~0{jeI1+D?tfg8Y0;1}Q)a2vP-Gy`{m7N8Yq1KNQOpcCiLDYAI A2osX.QC >STYA POWERUP @@ -28,14 +25,10 @@ A2osX.QC.Start1 sei lda #$01 sta MEMTABL+$17 protect ProDOS MLI Page - - ldx #$16 - .1 stz MEMTABL,x Reset ProDOS memory bitmap dex bne .1 - lda #$CF protect zero page, stack and page 1 sta MEMTABL @@ -50,30 +43,24 @@ A2osX.QC.Start1 sei sec >LDYAI A2osX.QC.ROOT jsr A2osX.QC.PrintYA - .3 jsr MLI .DA #MLISETPREFIX .DA MLISETPREFIX00 bcc .4 - >LDYAI MSG.SETPREFIXKO jsr A2osX.QC.PrintYA - >LDYAI A2osX.QC.BOOT sec jsr A2osX.QC.PrintYA bra .3 - .4 >LDYAI MSG.SETPREFIXOK sec jsr A2osX.QC.PrintYA - ldx A2osX.QC.BOOT stx $280 For appending SYS/KERNEL stz $2C0,x - .5 lda A2osX.QC.BOOT,x sta $280,x sta $2C0-1,x BOOT sz for KERNEL @@ -82,7 +69,6 @@ A2osX.QC.Start1 sei ldx A2osX.QC.ROOT stz $2E0,x - .6 lda A2osX.QC.ROOT,x sta $2E0-1,x ROOT sz for KERNEL dex @@ -90,7 +76,6 @@ A2osX.QC.Start1 sei jsr A2osX.QC.KLoad bcs * - .8 >LDYAI MSG.INIT1OK sec jsr A2osX.QC.PrintYA @@ -99,7 +84,6 @@ A2osX.QC.Start1 sei * >STYA POWERUP * bit RROMBNK1 * jsr SETPWRC - >DEBUGOA jmp $2000 *-------------------------------------- @@ -110,25 +94,20 @@ A2osX.QC.KLoad >LDYAI MSG.KLOAD ldx $280 ldy #0 - .2 inx iny lda SYSKERNEL,y sta $280,x cpy SYSKERNEL bne .2 - stx $280 - >LDYAI $280 clc jsr A2osX.QC.PrintYA - jsr MLI .DA #MLIOPEN .DA MLIOPENK bcs .9 - lda MLIOPENK+5 sta MLIREADK+1 sta MLICLOSEK+1 @@ -139,7 +118,6 @@ A2osX.QC.KLoad >LDYAI MSG.KLOAD php pha - jsr MLI .DA #MLICLOSE .DA MLICLOSEK @@ -147,7 +125,6 @@ A2osX.QC.KLoad >LDYAI MSG.KLOAD pla plp bcc .8 - .9 pha >LDYAI MSG.KLOAD.KO clc @@ -165,19 +142,16 @@ A2osX.QC.PrintYA beq .9 ldy #1 - .1 lda (TmpPtr1),y ora #$80 jsr COUT iny dex bne .1 - .9 plp bcc .99 - jsr CROUT -.99 rts +.99 rts *-------------------------------------- MLISETPREFIX00 .DA #1 .DA A2osX.QC.BOOT diff --git a/A2osX.S.txt b/A2osX.S.txt index 35dc14e7..4ac8323e 100644 --- a/A2osX.S.txt +++ b/A2osX.S.txt @@ -31,7 +31,6 @@ KM.Filename .EQ $8B00 MLI.MAXPATH *-------------------------------------- SYSTEM.START .EQ * .PH $1000 - A2osX.Init0 >LDYAI $2000 >STYA TmpPtr1 >LDYAI $1000 @@ -39,12 +38,10 @@ A2osX.Init0 >LDYAI $2000 ldx #$10 reloc $2000-$2FFF to $1000-$1FFF ldy #0 - .1 lda (TmpPtr1),y sta (TmpPtr2),y iny bne .1 - inc TmpPtr1+1 inc TmpPtr2+1 dex @@ -54,7 +51,6 @@ A2osX.Init0 >LDYAI $2000 *-------------------------------------- A2osX.Init1 ldx #$FF init 6502 stack to highest txs - bit RROMBNK1 jsr HOME >LDYAI MSG.INIT0 @@ -67,7 +63,6 @@ A2osX.Init1 ldx #$FF init 6502 stack to highest and #MACHID.M cmp #MACHID.M.128 beq A2osX.Init1.128 - >LDYAI MSG.SYSMEM.KO jsr PrintFYA bra * @@ -78,7 +73,6 @@ A2osX.Init1.128 jsr MLI bcs * ldx Boot.Prefix - .1 lda Boot.Prefix,x sta A2osX.QC.B.BOOT,x sta A2osX.QC.B.ROOT,x @@ -86,7 +80,6 @@ A2osX.Init1.128 jsr MLI bpl .1 jsr A2osX.Screen80 - >LDYAI MSG.INIT0 jsr PrintFYA @@ -102,7 +95,6 @@ A2osX.Init1.128 jsr MLI >LDYAI MSG.SYSMEM.OK jsr PrintFYA - >LDYAI MSG.CPU jsr PrintFYA @@ -112,7 +104,6 @@ A2osX.Init1.128 jsr MLI adc #$01 cld bpl .2 if minus, BUG!, we have 6502 - >LDYAI MSG.CPU.KO jsr PrintFYA bra * @@ -138,11 +129,9 @@ A2osX.RamDrv >LDYAI MSG.RAMDRV >LDYAI MSG.RAMDRV.KO0 jsr PrintFYA bra A2osX.SetupQC - .1 >LDYAI MSG.RAMDRV.KO1 jsr PrintFYA bra A2osX.SetupQC - .2 >LDYAI MSG.RAMDRV.OK jsr PrintFYA *-------------------------------------- @@ -155,7 +144,6 @@ A2osX.SetupQC lda RRAMWRAMBNK2 lda RRAMWRAMBNK2 ldx #0 - .1 lda A2osX.QC.B.Start,x sta $D100,x lda A2osX.QC.B.Start+$100,x @@ -184,19 +172,15 @@ A2osX.Screen80 lda #$8C Reset 80 col screen ($0C:HOME) sta LOGO.Filename,x dex bne .1 - ldx Boot.Prefix ldy #0 - .2 inx iny lda A2osX.LOGO,y sta LOGO.Filename,x cpy A2osX.LOGO - bne .2 - + bne .2 stx LOGO.Filename - jsr MLI .DA #MLIOPEN .DA MLIOPEN00 @@ -205,26 +189,22 @@ A2osX.Screen80 lda #$8C Reset 80 col screen ($0C:HOME) lda MLIOPEN00+5 sta MLIREAD00+1 sta MLICLOSE00+1 - jsr MLI .DA #MLIREAD .DA MLIREAD00 bcs .98 - jsr .98 bra A2osX.ScreenDLGR - .98 jsr MLI .DA #MLICLOSE .DA MLICLOSE00 -.99 rts +.99 rts *-------------------------------------- A2osX.ScreenDLGR lda #20 sta WNDTOP sta CV jsr VTAB - sta CLRHIRES sta SETMIXED sta CLRTEXT @@ -235,18 +215,14 @@ A2osX.ScreenDLGR sta TmpPtr1 lda /A2osX.LOGOLOAD+S.BM sta TmpPtr1+1 - ldx #0 - .1 lda SCR.BASEL,x sta TmpPtr2 lda SCR.BASEH,x sta TmpPtr2+1 ldy #0 - .2 lda (TmpPtr1),y - pha and #$f phy @@ -266,18 +242,15 @@ A2osX.ScreenDLGR iny cpy #40 bne .2 - lda TmpPtr1 clc adc #40 sta TmpPtr1 bcc .3 inc TmpPtr1+1 - .3 ldy #0 .4 lda (TmpPtr1),y - pha and #$f phy @@ -300,14 +273,12 @@ A2osX.ScreenDLGR iny cpy #40 bne .4 - lda TmpPtr1 clc adc #40 sta TmpPtr1 bcc .7 inc TmpPtr1+1 - .7 inx cpx #20 bne .1 @@ -322,22 +293,18 @@ DisableRamDRV php lda DEVPTRS3D2+1 cmp DEVPTRS+1 S0D1=NODEV beq .9 S3D2=NODEV, nothing to do - .1 ldx DEVCNT .2 lda DEVLST,x LOOKING FOR $BF, $BB, $B7, $B3 and #$F3 cmp #$B3 beq .3 - dex bpl .2 - plp lda #1 No device found, exit with error sec rts - .3 cpx DEVCNT beq .5 @@ -346,23 +313,19 @@ DisableRamDRV php inx cpx DEVCNT bne .4 - .5 ldx DEVCNT stz DEVLST,x dec DEVCNT - lda DEVPTRS sta DEVPTRS3D2 lda DEVPTRS+1 sta DEVPTRS3D2+1 plp - jsr MLI .DA #MLIONLINE .DA MLIONLINE01 clc Success!! rts - .9 plp lda #0 Not detected sec @@ -380,9 +343,7 @@ EnumKM ldx #0 iny cpx SYS bne .1 - sty Boot.Prefix - jsr MLI .DA #MLIOPEN .DA MLIOPEN01 @@ -391,28 +352,21 @@ EnumKM ldx #0 lda MLIOPEN01+5 sta MLIREAD01+1 sta MLICLOSE01+1 - .2 jsr MLI .DA #MLIREAD .DA MLIREAD01 bcs .98 - lda #EnumKM.EPB sta EnumKM.EC >LDYAI A2osX.ReadBuff+4 >STYA EnumKM.BPTR - .3 >LDYA EnumKM.BPTR >STYA TmpPtr1 - lda (TmpPtr1) - and #$F0 Empty ? beq .5 yes, skip - and #$C0 anything out of type 1,2 or 3 ? bne .5 yes, skip - lda (TmpPtr1) and #$0F cmp KM.PREFIX at least enough chars for KM.*? @@ -422,17 +376,13 @@ EnumKM ldx #0 lda (TmpPtr1),y cmp #$06 'BIN'? bne .5 skip - ldy KM.PREFIX - .4 lda (TmpPtr1),y cmp KM.PREFIX,y bne .5 dey bne .4 - jsr LoadKM - .5 lda EnumKM.BPTR clc adc #EnumKM.EL @@ -443,7 +393,6 @@ EnumKM ldx #0 .6 dec EnumKM.EC bne .3 bra .2 - .98 cmp #MLI.E.EOF beq .8 pha @@ -456,7 +405,7 @@ EnumKM ldx #0 .8 jsr MLI .DA #MLICLOSE .DA MLICLOSE01 - rts + rts *-------------------------------------- EnumKM.EC .BS 1 EnumKM.BPTR .BS 2 @@ -466,7 +415,6 @@ LoadKM ldx Boot.Prefix sta KM.Filename,x dex bne .1 - ldx Boot.Prefix lda (TmpPtr1) and #$0F @@ -475,18 +423,15 @@ LoadKM ldx Boot.Prefix adc Boot.Prefix sta KM.Filename tax - .2 lda (TmpPtr1),y sta KM.Filename,x dex dey bne .2 - lda #KM.Filename pha lda /KM.Filename pha - >LDYAI MSG.KMLOAD jsr PrintFYA @@ -498,21 +443,17 @@ LoadKM ldx Boot.Prefix lda MLIOPEN02+5 sta MLIREAD02+1 sta MLICLOSE02+1 - jsr MLI .DA #MLIREAD .DA MLIREAD02 bcs .98 jsr .9 - jsr A2osX.KMLOAD - .98 pha jsr .9 pla sec rts - .9 jsr MLI .DA #MLICLOSE .DA MLICLOSE02 @@ -545,7 +486,7 @@ MLIGETPREFIX01 .DA #1 MLIONLINE01 .DA #2 .DA #0 .DA MLIONLINE01BUF -MLIONLINE01BUF .BS 256 +MLIONLINE01BUF .BS 256 *-------------------------------------- MLIOPEN00 .DA #3 For DIR listing .DA LOGO.Filename diff --git a/BIN/AARP.S.txt b/BIN/AARP.S.txt index d1efaf80..b41467c2 100644 --- a/BIN/AARP.S.txt +++ b/BIN/AARP.S.txt @@ -47,7 +47,6 @@ CS.INIT >LDYA L.LIBETALK >SYSCALL LoadLib bcs .9 sta hLIBETALK - .9 rts *-------------------------------------- CS.RUN >LIBCALL hLIBETALK,LIBETALK.GETCFG @@ -57,7 +56,6 @@ CS.RUN >LIBCALL hLIBETALK,LIBETALK.GETCFG * bmi .1 * jmp CS.RUN.ERR - .1 ldy #S.PS.ARGC lda (pPs),y cmp #1 @@ -66,28 +64,23 @@ CS.RUN >LIBCALL hLIBETALK,LIBETALK.GETCFG .2 >PUSHEA.G DST.ADDR+3 >PUSHEA.G DST.ADDR+1 - >PUSHBI 4 2 Ptrs - >PUSHW L.SSCANF.ADDR lda #1 >SYSCALL ArgV >SYSCALL sscanf bcs CS.RUN.ERR - ldy #S.PS.ARGC lda (pPs),y cmp #1 beq CS.RUN.QUERY - cmp #3 bne CS.RUN.ERR jmp CS.RUN.ADD - + CS.RUN.ERR >PUSHBI 0 >LDYA L.MSG.Usage >SYSCALL printf - lda #E.SYN sec rts @@ -98,39 +91,30 @@ CS.RUN.QUERY jsr Init.Timeout >PUSHEA.G DST.ADDR >LIBCALL hLIBETALK,LIBETALK.AARP.QUERY bcc .2 success, print & exit - jsr Wait.TimeOut bcs .8 - >SLEEP >SYSCALL GetChar bcs .1 cmp #3 beq .9 bra .1 - .2 ldx #5 ldy #DST.MAC+5 - .3 >PUSHB (pData),y dey dex bpl .3 - ldx #3 ldy #DST.ADDR+3 - .4 >PUSHB (pData),y dey dex bne .4 - >PUSHBI 8 >LDYA L.MSG2 >SYSCALL printf - .8 lda #0 - .9 sec rts *-------------------------------------- @@ -140,13 +124,10 @@ CS.RUN.ADD >PUSHEA.G DST.MAC+5 >PUSHEA.G DST.MAC+2 >PUSHEA.G DST.MAC+1 >PUSHEA.G DST.MAC - >PUSHBI 12 6 Ptrs - >PUSHW L.SSCANF.MAC lda #2 >SYSCALL ArgV - >SYSCALL sscanf bcs .9 @@ -155,20 +136,16 @@ CS.RUN.ADD >PUSHEA.G DST.MAC+5 >LIBCALL hLIBETALK,LIBETALK.AARP.ADD clc .8 rts - .9 jmp CS.RUN.ERR *-------------------------------------- CS.RUN.DUMP >LIBCALL hLIBETALK,LIBETALK.AARP.GETCACHE >STYA ZPPTR1 - >LDYA L.MSG0 >SYSCALL puts ldx #K.AARPCACHE.SIZE - .1 lda (ZPPTR1) beq .4 - ldy #S.AARPCACHE.ADDR+3 >PUSHB (ZPPTR1),y dey @@ -176,27 +153,21 @@ CS.RUN.DUMP >LIBCALL hLIBETALK,LIBETALK.AARP.GETCACHE >PUSHB (ZPPTR1),y iny >PUSHB (ZPPTR1),y - ldy #S.AARPCACHE.MAC+6 - .3 dey >PUSHB (ZPPTR1),y cpy #S.AARPCACHE.MAC bne .3 - ldy #S.AARPCACHE.TTL+1 >PUSHB (ZPPTR1),y dey >PUSHB (ZPPTR1),y - >PUSHB (ZPPTR1) - >PUSHBI 12 >LDYA L.MSG1 phx >SYSCALL printf plx - .4 lda ZPPTR1 clc adc #S.AARPCACHE @@ -205,7 +176,6 @@ CS.RUN.DUMP >LIBCALL hLIBETALK,LIBETALK.AARP.GETCACHE inc ZPPTR1+1 .5 dex bne .1 - .8 lda #0 tell TSKMGR that all done ok, but sec we do not want to stay in memory rts @@ -224,7 +194,6 @@ CS.DOEVENT lda (pEvent) CS.QUIT lda hLIBETALK beq .8 >SYSCALL UnloadLib - .8 clc rts *-------------------------------------- diff --git a/BIN/ADT.S.txt b/BIN/ADT.S.txt index b70fdc4f..bb333532 100644 --- a/BIN/ADT.S.txt +++ b/BIN/ADT.S.txt @@ -72,25 +72,20 @@ CS.INIT >LDYA L.LIBTCPIP *-------------------------------------- CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG is TCPIP loaded ? >STYA ZPIPCfgPtr - lda (ZPIPCfgPtr) Configured ? bmi CS.RUN.IPOK - >LDYA L.MSG.IPKO >SYSCALL puts lda #E.SYN sec rts - CS.RUN.IPOK ldy #S.IPCFG.IP+3 ldx #3 - .1 lda (ZPIPCfgPtr),y sta SA.LOCAL+S.SOCKADDR.ADDR,x dey dex bpl .1 - >INC.G ArgIndex >SYSCALL ArgV bcs .9 @@ -99,7 +94,6 @@ CS.RUN.IPOK ldy #S.IPCFG.IP+3 jsr Init.Timeout .2 >PUSHW L.SA.REMOTE.AD - >PUSHW ZPHostPtr >LIBCALL hLIBTCPIP,LIBTCPIP.HST.GETBYNAME bcc CS.RUN.HOSTOK @@ -112,44 +106,37 @@ CS.RUN.IPOK ldy #S.IPCFG.IP+3 >LDYA L.MSG.UNKNOWN >SYSCALL printf bra CS.RUN.ESYN - .9 >PUSHBI 0 >LDYA L.MSG.USAGE >SYSCALL printf CS.RUN.ESYN lda #E.SYN - sec -CS.RUN.RTS rts + secCS.RUN.RTS + rts CS.RUN.HOSTOK >INC.G ArgIndex >SYSCALL ArgV bcc .10 jmp CS.RUN.PORTOK - .10 >STYA ZPPtr lda (ZPPtr) cmp #'-' beq .1 - - >LDYA ZPPtr + >LDYA ZPPtr >SYSCALL atoi bcs CS.RUN.RTS >STYA SA.REMOTE+S.SOCKADDR.PORT - >INC.G ArgIndex >SYSCALL ArgV bcs .8 - >STYA ZPPtr lda (ZPPtr) cmp #'-' bne CS.RUN.ESYN - .1 ldy #1 lda (ZPPtr),y cmp #'U' bne .2 - >INC.G ArgIndex >SYSCALL ArgV .9 bcs CS.RUN.ESYN @@ -158,23 +145,18 @@ CS.RUN.HOSTOK >INC.G ArgIndex >SYSCALL strlen >STYA ZPReqBufLen .8 bra CS.RUN.PORTOK - .2 cmp #'F' bne CS.RUN.ESYN - >INC.G ArgIndex >SYSCALL ArgV bcs CS.RUN.RTS - CS.RUN.PORTOK >PUSHW ZPHostPtr >PUSHW SA.REMOTE+S.SOCKADDR.PORT ldx #3 - .1 >PUSHB SA.REMOTE+S.SOCKADDR.ADDR,x dex bpl .1 - >PUSHBI 8 >LDYA L.MSG.HOSTOK >SYSCALL printf @@ -190,21 +172,17 @@ CS.RUN.OPENSKT >PUSHBI 0 no protocol pla >LIBCALL hLIBTCPIP,LIBTCPIP.Bind bcc .2 - .9 >LDYA L.MSG.SKTKO >SYSCALL puts lda #E.SYN - sec - rts - + sec +c rts .2 >PUSHW L.SA.REMOTE >LDA.G hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.Connect bcs .9 - >LDYA L.MSG.SKTOK >SYSCALL puts - >LDYAI RESP.BUFSIZE >SYSCALL getmem bcs .9 @@ -217,7 +195,6 @@ CS.RUN.GET jsr CS.RUN.DIR jsr CS.RUN.DIRDECODE bcs .99 - .9 lda #0 sec .99 rts @@ -241,7 +218,6 @@ CS.RUN.IOERR pha rts *-------------------------------------- CS.RUN.DIR jsr Init.Timeout - .10 >PUSHWI ADT.DIR.LEN >PUSHW L.ADT.DIR @@ -250,11 +226,9 @@ CS.RUN.DIR jsr Init.Timeout bcc .8 tay bne .99 - >SLEEP jsr Wait.TimeOut bcc .10 - .99 lda #MLI.E.IO sec rts @@ -266,22 +240,17 @@ CS.RUN.DIRDECODE jsr Init.Timeout .1 >SLEEP - >LDA.G hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.Recv bcc .2 tay bne .8 - >LDA.G bResponse bne .81 - jsr Wait.Timeout bcs .99 - bra .1 - .2 >STA.G hFrame >SYSCALL GetMemPtr >STYA ZPRespBufPtr @@ -290,20 +259,16 @@ CS.RUN.DIRDECODE lda (ZPRespBufPtr),y cmp #$C1 bne .99 - iny lda (ZPRespBufPtr),y sta ZPPayloadLen - iny lda (ZPRespBufPtr),y sta ZPPayloadLen+1 - iny lda (ZPRespBufPtr),y cmp #$D3 bne .99 - >DEBUG jsr CS.RUN.UNRLE @@ -312,18 +277,14 @@ CS.RUN.DIRDECODE ldy #S.PS.hStdOut lda (pPs),y >SYSCALL fwrite - >INC.G bResponse bra .1 - .8 cmp #MLI.E.IO SKT Close ? bne .9 - .80 >LDA.G bResponse beq .99 .81 clc rts - .99 lda #MLI.E.IO .9 sec @@ -332,12 +293,10 @@ CS.RUN.DIRDECODE CS.RUN.UNRLE >LDYA ZPPayloadLen >SYSCALL getmem bcs .9 - >STYA ZPPayloadPtr >STYA ZPPtr txa >STA.G hPayloadBuf - lda ZPPayloadLen eor #$ff sta ZPCnt @@ -345,15 +304,12 @@ CS.RUN.UNRLE >LDYA ZPPayloadLen lda ZPPayloadLen+1 eor #$ff sta ZPCnt+1 - ldx #0 ldy #S.UDP+8 - .1 inc ZPCnt bne .2 inc ZPCnt+1 beq .8 - .2 txa clc adc (ZPRespBufPtr),y @@ -362,11 +318,9 @@ CS.RUN.UNRLE >LDYA ZPPayloadLen iny bne .3 inc ZPRespBufPtr+1 - -.3 bra .1 - -.8 clc -.9 rts +.3 bra .1 +.8 clc.9 + rts .80 sta (ZPPtr) inc ZPPtr @@ -376,13 +330,10 @@ CS.RUN.UNRLE >LDYA ZPPayloadLen *-------------------------------------- CS.DOEVENT lda (pEvent) bpl .9 is it a TIMER event? - >LDA.G TimeOut beq .9 - dec sta (pData),y - .9 sec do not discard TIMER event rts *-------------------------------------- @@ -390,11 +341,9 @@ CS.QUIT >LDA.G hSocket beq .1 >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown - .1 lda hLIBTCPIP beq .8 >SYSCALL UnloadLib - .8 clc rts *-------------------------------------- diff --git a/BIN/ARP.S.txt b/BIN/ARP.S.txt index a79520c9..e97deaa6 100644 --- a/BIN/ARP.S.txt +++ b/BIN/ARP.S.txt @@ -47,7 +47,6 @@ CS.INIT >LDYA L.LIBTCPIP >SYSCALL LoadLib bcs .9 sta hLIBTCPIP - .9 rts *-------------------------------------- CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG @@ -57,7 +56,6 @@ CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG bmi .1 jmp CS.RUN.ERR - .1 ldy #S.PS.ARGC lda (pPs),y cmp #1 @@ -68,28 +66,22 @@ CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG >PUSHEA.G DST.IP+2 >PUSHEA.G DST.IP+1 >PUSHEA.G DST.IP - >PUSHBI 8 4 Ptrs - >PUSHW L.SSCANF.IP lda #1 >SYSCALL ArgV >SYSCALL sscanf bcs CS.RUN.ERR - ldy #S.PS.ARGC lda (pPs),y cmp #1 beq CS.RUN.QUERY - cmp #3 bne CS.RUN.ERR jmp CS.RUN.ADD - CS.RUN.ERR >PUSHBI 0 >LDYA L.MSG.Usage >SYSCALL printf - lda #E.SYN sec rts @@ -100,39 +92,30 @@ CS.RUN.QUERY jsr Init.Timeout >PUSHEA.G DST.IP >LIBCALL hLIBTCPIP,LIBTCPIP.ARP.QUERY bcc .2 success, print & exit - jsr Wait.TimeOut bcs .8 - >SLEEP >SYSCALL GetChar bcs .1 cmp #3 beq .9 bra .1 - .2 ldx #5 ldy #DST.MAC+5 - .3 >PUSHB (pData),y dey dex bpl .3 - ldx #3 ldy #DST.IP+3 - .4 >PUSHB (pData),y dey dex bpl .4 - >PUSHBI 10 >LDYA L.MSG2 >SYSCALL printf - .8 lda #0 - .9 sec rts *-------------------------------------- @@ -142,13 +125,10 @@ CS.RUN.ADD >PUSHEA.G DST.MAC+5 >PUSHEA.G DST.MAC+2 >PUSHEA.G DST.MAC+1 >PUSHEA.G DST.MAC - >PUSHBI 12 6 Ptrs - >PUSHW L.SSCANF.MAC lda #2 >SYSCALL ArgV - >SYSCALL sscanf bcs .9 @@ -157,45 +137,36 @@ CS.RUN.ADD >PUSHEA.G DST.MAC+5 >LIBCALL hLIBTCPIP,LIBTCPIP.ARP.ADD clc .8 rts - .9 jmp CS.RUN.ERR *-------------------------------------- CS.RUN.DUMP >LIBCALL hLIBTCPIP,LIBTCPIP.ARP.GETCACHE >STYA ZPPTR1 - >LDYA L.MSG0 >SYSCALL puts ldx #K.ARPCACHE.SIZE - .1 lda (ZPPTR1) beq .4 - ldy #S.ARPCACHE.IP+4 .2 dey >PUSHB (ZPPTR1),y cpy #S.ARPCACHE.IP bne .2 - ldy #S.ARPCACHE.MAC+6 .3 dey >PUSHB (ZPPTR1),y cpy #S.ARPCACHE.MAC bne .3 - ldy #S.ARPCACHE.TTL+1 >PUSHB (ZPPTR1),y dey >PUSHB (ZPPTR1),y - >PUSHB (ZPPTR1) - >PUSHBI 13 >LDYA L.MSG1 phx >SYSCALL printf plx - .4 lda ZPPTR1 clc adc #S.ARPCACHE @@ -204,7 +175,6 @@ CS.RUN.DUMP >LIBCALL hLIBTCPIP,LIBTCPIP.ARP.GETCACHE inc ZPPTR1+1 .5 dex bne .1 - .8 lda #0 tell TSKMGR that all done ok, but sec we do not want to stay in memory rts @@ -223,7 +193,6 @@ CS.DOEVENT lda (pEvent) CS.QUIT lda hLIBTCPIP beq .8 >SYSCALL UnloadLib - .8 clc rts *-------------------------------------- diff --git a/BIN/ASM.S.DIR.txt b/BIN/ASM.S.DIR.txt index 1707897d..cbfab5af 100644 --- a/BIN/ASM.S.DIR.txt +++ b/BIN/ASM.S.DIR.txt @@ -24,41 +24,30 @@ DIR.AS clc lda #0 ror sta DIR.Byte Save b7 of last char in string - jsr SRC.GetNextChar bcs .9 cmp #'-' bne .1 - lda #$40 save b7 status of ALL chars tsb DIR.Byte - jsr SRC.GetNextChar bcs .9 - .1 sta DIR.Word Save delimiter.... sta DIR.Word+1 Save also in prev char.. - .2 jsr SRC.GetNextChar bcs .8 - cmp DIR.Word delimiter ? beq .8 - ldx DIR.Word+1 Get prev char sta DIR.Word+1 replace it with new txa cmp DIR.Word is it the starting delimiter beq .2 yes, skip - bit DIR.Byte bvc .3 - ora #$80 - .3 jsr OUT.EmitByte no, emit prev char bcc .2 - .9 lda #E.SYNTAX.ERROR sec rts @@ -66,7 +55,6 @@ DIR.AS clc .8 lda DIR.Word+1 Get prev char cmp DIR.Word someone typed .AS "" ? beq .88 - bit DIR.Byte bpl .81 eor #$80 @@ -74,11 +62,10 @@ DIR.AS clc .81 jmp OUT.EmitByte .88 clc - rts + rts *--------------------------------------- DIR.AZ jsr DIR.AS bcs .9 - lda #0 jmp OUT.EmitByte .9 rts @@ -88,7 +75,6 @@ DIR.BS jsr SRC.GetNextCharNB jsr EXP.Eval bcs .9 - lda SRC.ACC+3 ora SRC.ACC+2 bne .99 @@ -98,82 +84,65 @@ DIR.BS jsr SRC.GetNextCharNB lda SRC.ACC+1 eor #$ff sta DIR.Word+1 - stz DIR.Byte - jsr SRC.GetNextChar bcs .1 cmp #' ' beq .1 - cmp #',' bne .98 jsr EXP.Eval bcs .9 - lda SRC.ACC+3 ora SRC.ACC+2 ora SRC.ACC+1 bne .99 lda SRC.ACC sta DIR.Byte - .1 inc DIR.Word bne .2 inc DIR.Word+1 beq .8 - .2 lda DIR.Byte jsr OUT.EmitByte bcc .1 rts - .8 clc .9 rts - .99 lda #E.RANGE sec rts - .98 lda #E.SYNTAX.ERROR sec rts *--------------------------------------- DIR.DA jsr SRC.GetNextCharNB bcs .98 - .1 jsr EXP.Eval bcs .9 - ldx SRC.ACC.SIZE bne .10 ldx #2 - .10 ldy #0 .2 lda SRC.ACC,y jsr OUT.EmitByte bcs .9 - iny dex bne .2 - .3 jsr SRC.GetNextChar bcs .8 cmp #' ' beq .8 - cmp #',' bne .98 jsr SRC.GetNextChar bcc .1 - .98 lda #E.SYNTAX.ERROR clc .9 rts - .8 clc rts *--------------------------------------- @@ -181,32 +150,26 @@ DIR.DO >LDA.G ASM.DO.StackPtr inc cmp #DO.MAXDEPTH bcs .98 - jsr SRC.GetNextCharNB bcs .99 - jsr EXP.Eval bcs .99 - >INC.G ASM.DO.StackPtr * clc ok from bcs .99 adc #ASM.DO.Stack-1 tay - lda SRC.ACC ora SRC.ACC+1 ora SRC.ACC+2 ora SRC.ACC+3 beq .1 - lda #$ff - + .1 sta (pData),y lda #$FF >STA.G ASM.DO.ON clc rts - .98 lda #E.TOO.MANY.DO sec .99 rts @@ -216,46 +179,37 @@ DIR.DU >LDA.G ASM.DU.ON lda #$80 sta (pData),y - ldy #ASM.PC.DU jsr DIR.SavePC - clc rts - DIR.DU.ERR lda #E.INV.DIR sec rts *--------------------------------------- DIR.ED >LDA.G ASM.DU.ON bpl DIR.DU.ERR - lda #0 sta (pData),y - ldy #ASM.PC.DU jsr DIR.RestorePC clc rts - .9 lda #E.INV.DIR sec rts *--------------------------------------- DIR.EL >LDA.G ASM.DO.StackPtr beq .9 - clc adc #ASM.DO.Stack-1 tay lda (pData),y eor #$ff sta (pData),y - clc rts - .9 lda #E.ELSE.WITHOUT.DO sec rts @@ -263,22 +217,19 @@ DIR.EL >LDA.G ASM.DO.StackPtr DIR.EM lda #E.MACRO.INV.DEF sec rts -*--------------------------------------- +*--------------------------------------- DIR.EN clc rts *--------------------------------------- DIR.EP >LDA.G ASM.PH.ON bpl .9 - lda #0 sta (pData),y - ldy #ASM.PC.PH jsr DIR.RestorePC clc rts - .9 lda #E.INV.DIR sec rts @@ -290,31 +241,26 @@ DIR.EQ clc >LDA.G SYM.bInGlobal bpl .99 - jsr SRC.GetNextCharNB bcs .99 lda #$ff >STA.G OUT.bEquate - >LDA.G ASM.PASS bne .2 jsr EXP.Eval PASS#1 bcs .9 - jsr SYM.Acc2Global jmp SYM.StoreGlobal - -.2 lda (ZPSymbolBuf) PASS#2 + .2 + lda (ZPSymbolBuf) PASS#2 and #SYMG.F.FWREF beq .3 jsr EXP.Eval bcs .9 - jmp SYM.UpdateGlobal - .3 ldy #SYMG-1 copy back value for OUT.Print .4 lda (ZPSymbolBuf),y @@ -335,34 +281,26 @@ DIR.FI ldy #ASM.DO.StackPtr dec sta (pData),y bne .1 - lda #$0 ldy #ASM.DO.ON sta (pData),y - .1 clc rts - .99 lda #E.INV.DIR sec rts *--------------------------------------- DIR.HS jsr SRC.GetNextCharNB bcs .99 - jsr SRC.IsDigit16 bcs .99 - .1 >STA.G DIR.Byte - jsr SRC.GetNextChar bcc .2 - + jmp OUT.EmitByte - .2 jsr SRC.IsDigit16 bcc .3 - cmp #',' beq .22 @@ -373,7 +311,6 @@ DIR.HS jsr SRC.GetNextCharNB jsr OUT.EmitByte bcc .5 rts - .3 pha >LDA.G DIR.Byte asl @@ -381,46 +318,35 @@ DIR.HS jsr SRC.GetNextCharNB asl asl >STA.G DIR.Byte - pla >ORA.G DIR.Byte - - .4 jsr OUT.EmitByte bcs .9 - jsr SRC.GetNextChar bcs .8 cmp #' ' beq .8 - jsr SRC.IsDigit16 bcc .1 - cmp #',' beq .5 cmp #'.' bne .99 - .5 jsr SRC.GetNextChar bcs .99 jsr SRC.IsDigit16 bcc .1 - .99 lda #E.SYNTAX.ERROR sec -.9 rts - +.9 rts .8 clc rts *--------------------------------------- DIR.IN jsr SRC.GetNextCharNB bcs .9 - >LDYA ZPLinePtr jmp FIO.OpenFile - .9 lda #E.SYNTAX.ERROR sec rts @@ -431,38 +357,30 @@ DIR.LI jsr SRC.GetNextChar >LDYA L.T.LI jsr SRC.GetKeyword bcs .9 - jsr .7 jsr SRC.GetChar bcs .8 - cmp #',' beq DIR.LI cmp #' ' beq .8 - .9 lda #E.SYNTAX.ERROR sec rts - .7 jmp (J.LI,x) .8 clc rts - DIR.LI.ON ldy #ASM.LI.ON sec bra DIR.LI.APPLY - DIR.LI.OFF ldy #ASM.LI.ON clc bra DIR.LI.APPLY - DIR.LI.CON ldy #ASM.LI.CON sec bra DIR.LI.APPLY - DIR.LI.COFF ldy #ASM.LI.CON clc bra DIR.LI.APPLY @@ -470,18 +388,14 @@ DIR.LI.COFF ldy #ASM.LI.CON DIR.LI.MON ldy #ASM.LI.MON sec bra DIR.LI.APPLY - DIR.LI.MOFF ldy #ASM.LI.MON clc bra DIR.LI.APPLY - DIR.LI.XON ldy #ASM.LI.XON sec bra DIR.LI.APPLY - DIR.LI.XOFF ldy #ASM.LI.XON clc - DIR.LI.APPLY lda #0 ror @@ -496,42 +410,33 @@ DIR.MA >LDA.G ASM.MA.ON jsr SRC.GetNextCharNB beq DIR.OP.SYNERR - >PUSHW ZPLinePtr >LDA.G MAC.hList >SYSCALL SListNewKey bcs .99 >STYA.G MAC.ID - .8 lda #$ff >STA.G ASM.MA.ON - clc rts - .9 lda #E.MACRO.INV.DEF sec .99 rts *--------------------------------------- DIR.OP jsr SRC.GetNextCharNB bcs DIR.OP.SYNERR - >LDYA ZPLinePtr jmp FIO.LOAD.ASM.T - DIR.OP.SYNERR lda #E.SYNTAX.ERROR sec rts *--------------------------------------- DIR.OR jsr SRC.GetNextCharNB bcs DIR.OP.SYNERR - jsr EXP.Eval bcs .9 - ldy #ASM.PC ldx #0 - .1 lda SRC.ACC,x sta (pData),y inx @@ -546,15 +451,12 @@ DIR.PG clc *--------------------------------------- DIR.PH >LDA.G ASM.PH.ON bmi .9 - lda #$80 sta (pData),y - ldy #ASM.PC.PH jsr DIR.SavePC jmp DIR.OR - .9 lda #E.INV.DIR sec rts @@ -573,20 +475,15 @@ DIR.US clc *--------------------------------------- DIR.SavePC phy plx - ldy #ASM.PC+3 - .1 lda (pData),y pha dey cpy #ASM.PC-1 bne .1 - phx ply - ldx #3 - .2 pla sta (pData),y iny @@ -596,22 +493,18 @@ DIR.SavePC phy rts *--------------------------------------- DIR.RestorePC ldx #3 - .1 lda (pData),y pha iny dex bpl .1 - ldy #ASM.PC+3 ldx #3 - .2 pla sta (pData),y dey dex bpl .2 - rts *--------------------------------------- MAN diff --git a/BIN/ASM.S.EXP.txt b/BIN/ASM.S.EXP.txt index 13b7cc70..76ba95d2 100644 --- a/BIN/ASM.S.EXP.txt +++ b/BIN/ASM.S.EXP.txt @@ -17,25 +17,19 @@ NEW EXP.Eval.Missing lda #E.MISSING.EXP sec - rts - + rts EXP.Eval >STZ.G EXP.Modifier >STZ.G EXP.Prefix >STZ.G EXP.Operator - jsr SRC.GetChar bcs EXP.Eval.Missing - jsr SRC.IsMODReserved bcs EXP.Eval.Next - txa >STA.G EXP.Modifier lda #'#' >STA.G EXP.Prefix - EXP.Eval.Next0 jsr SRC.GetNextChar - EXP.Eval.Next stz SRC.ACC.F lda #2 sta SRC.ACC.SIZE Default To WORD (2 bytes) @@ -44,19 +38,15 @@ EXP.Eval.Next stz SRC.ACC.F stz SRC.ACC+1 stz SRC.ACC+2 stz SRC.ACC+3 - jsr SRC.GetChar bcs EXP.Eval.Missing - cmp #'.' Local Label? beq .13 cmp #':' bne .12 - .13 jsr EXP.GetLocal bcs .14 - jmp EXP.EvalOperator .14 rts @@ -65,7 +55,6 @@ EXP.Eval.Next stz SRC.ACC.F ldy #ASM.PC+3 ldx #3 - .11 lda (pData),y sta SRC.ACC,x dey @@ -74,45 +63,32 @@ EXP.Eval.Next stz SRC.ACC.F jsr SRC.GetNextChar jmp EXP.EvalOperator - .10 jsr SRC.IsDigit10 Decimal constant ? bcs .1 - jsr SRC.GetDecimal - bcs EXP.EvalExitRTS jmp EXP.EvalOperator - .1 cmp #'$' Hex? bne .2 - jsr SRC.GetHex - bcs EXP.EvalExitRTS bra EXP.EvalOperator - - .2 cmp #'%' binary? bne .3 jsr SRC.GetBinary - bcs EXP.EvalExitRTS bra EXP.EvalOperator - - .3 cmp #'&' octal? bne .4 jsr SRC.GetOctal - bcs EXP.EvalExitRTS - bra EXP.EvalOperator - + bra EXP.EvalOperator + .4 cmp #''' bne .43 jsr SRC.GetNextChar bcs EXP.EvalExitSYN - jsr EXP.SetAccA jsr SRC.GetNextChar bcs EXP.EvalOperator @@ -121,10 +97,8 @@ EXP.Eval.Next stz SRC.ACC.F cmp #',' bne EXP.EvalExitSYN bra EXP.EvalOperator - .44 jsr SRC.GetNextChar bra EXP.EvalOperator - .43 cmp #'"' bne .42 jsr SRC.GetNextChar @@ -138,41 +112,34 @@ EXP.Eval.Next stz SRC.ACC.F cmp #',' bne EXP.EvalExitSYN bra EXP.EvalOperator - .45 jsr SRC.GetNextChar bra EXP.EvalOperator - .42 jsr SRC.IsLetter Symbol ? bcs EXP.EvalExitSYN jsr EXP.GetGlobal bcs EXP.EvalExitUND bra EXP.EvalOperator - EXP.EvalExitOK >LDA.G EXP.Modifier beq .8 asl tax jmp (J.EXP.MOD-2,x) - .8 clc EXP.EvalExitRTS rts - EXP.EvalExitSYN lda #E.SYNTAX.ERROR sec rts EXP.EvalExitUND lda #E.UNDEF.SYMBOL sec - rts -*--------------------------------------- + rts +*--------------------------------------- EXP.EvalOperator >LDA.G EXP.Operator beq .7 - jsr EXP.Compute bcs EXP.EvalExitRTS - .7 jsr SRC.GetChar bcs EXP.EvalExitOK @@ -186,19 +153,15 @@ EXP.EvalOperator bcs EXP.EvalExitSYN txa >STA.G EXP.Operator - ldx #4 - .8 lda SRC.ACC.SIZE,x sta SRC.ARG.SIZE,x dex bpl .8 - jmp EXP.Eval.Next0 *--------------------------------------- EXP.GetLocal jsr SRC.GetNextChar bcs .9 - jsr SRC.GetDecimal bcs EXP.EvalExitSYN lda SRC.ACC+1 @@ -210,48 +173,40 @@ EXP.GetLocal jsr SRC.GetNextChar jsr SYM.GetLocalX bcc .8 - >LDA.G ASM.PASS pass#2? bne EXP.EvalExitUND - lda #SYMG.F.FWREF Mark ACC as pending sta SRC.ACC.F stz SRC.ACC.SIZE - clc rts - .9 lda #E.SYNTAX.ERROR sec -.8 rts -*--------------------------------------- +.8 rts +*--------------------------------------- EXP.GetGlobal jsr SYM.LookupGlobal bcc .8 >LDA.G ASM.PASS pass#2? bne EXP.EvalExitUND yes, undefined symbol - lda #SYMG.F.FWREF sta SRC.ACC.F Mark ACC as pending stz SRC.ACC.SIZE - .1 jsr SRC.GetNextChar bcs .8 - jsr SRC.IsLetterOrDigit bcc .1 cmp #'.' beq .1 cmp #'_' beq .1 - .8 clc rts *--------------------------------------- EXP.MOD.8.3 lda SRC.ACC+2 bra EXP.MOD.8 EXP.MOD.8.2 lda SRC.ACC+1 -EXP.MOD.8 sta SRC.ACC +EXP.MOD.8 sta SRC.ACC EXP.MOD.8.1 lda #1 sta SRC.ACC.SIZE clc @@ -269,18 +224,14 @@ EXP.Compute ldx SRC.ACC.SIZE beq .1 ldx SRC.ARG.SIZE beq .1 - asl tax jmp (J.EXP.OP-2,x) - .1 >LDA.G ASM.PASS beq .8 - lda #E.UNDEF.SYMBOL sec rts - .8 lda #SYMG.F.FWREF Mark ACC as pending tsb SRC.ACC.F stz SRC.ACC.SIZE @@ -318,14 +269,11 @@ EXP.OP.LOW jsr EXP.OP.SUB lda #0 rol - jmp EXP.SetAccA *--------------------------------------- EXP.OP.EQU ldx #0 ARG-ACC->ACC ldy #4 - clc il not Equals, return 0 - .1 lda SRC.ARG,x eor SRC.ACC,x bne .2 @@ -334,38 +282,32 @@ EXP.OP.EQU ldx #0 ARG-ACC->ACC bne .1 sec equals, return 1 - .2 lda #0 rol sta SRC.ACC lda #1 sta SRC.ACC.SIZE - -.9 rts +.9 rts *--------------------------------------- EXP.OP.GRT jsr EXP.OP.SUB lda #0 rol eor #1 - jmp EXP.SetAccA *--------------------------------------- EXP.OP.ADD ldx #0 ARG-ACC->ACC ldy #4 clc - .1 lda SRC.ARG,x adc SRC.ACC,x sta SRC.ACC,x inx dey bne .1 - bcc .8 - lda #E.VAL.TOO.BIG .8 rts *--------------------------------------- @@ -380,13 +322,10 @@ EXP.OP.SUB ldx #0 ARG-ACC->ACC inx dey bne .1 - bcs .8 - lda #E.VAL.TOO.BIG sec rts - .8 clc rts *--------------------------------------- diff --git a/BIN/ASM.S.FIO.txt b/BIN/ASM.S.FIO.txt index 5abc01e1..2ff5357e 100644 --- a/BIN/ASM.S.FIO.txt +++ b/BIN/ASM.S.FIO.txt @@ -9,16 +9,13 @@ FIO.LOAD.ASM.T >STYA ZPPtr2 >SYSCALL GetMemPtr >STYA ZPPtr1 - ldy #$ff ldx #$ff - .1 iny inx lda (ZPPtr1),y sta ASM.T.FILENAME,x bne .1 - lda #'.' sta ASM.T.FILENAME,x @@ -31,7 +28,6 @@ FIO.LOAD.ASM.T >STYA ZPPtr2 lda #'.' sta ASM.T.FILENAME,x - ldy #$ff .2 iny @@ -41,33 +37,27 @@ FIO.LOAD.ASM.T >STYA ZPPtr2 bcs .3 sta ASM.T.FILENAME,x bra .2 - .3 stz ASM.T.FILENAME,x ldy #ASM.T.hMem lda (pData),y beq .4 - >SYSCALL FreeMem ldy #ASM.T.hMem lda #0 sta (pData),y - .4 >PUSHW L.ASM.T.FILENAME >PUSHBI 2 >LDYA L.MSG.T.FILE jsr OUT.Print - >PUSHWZ Aux type >PUSHBI 6 S.FI.T.BIN >PUSHBI O.RDONLY >LDYA L.ASM.T.FILENAME >SYSCALL LoadFile bcs .9 - txa ldy #ASM.T.hMem sta (pData),y - >SYSCALL GetMemPtr >STYA ZPPtr1 @@ -80,7 +70,6 @@ FIO.LOAD.ASM.T >STYA ZPPtr2 lda (ZPPtr1),y adc ZPPtr1+1 sta ZPAMPtr+1 - iny lda (ZPPtr1),y clc @@ -90,7 +79,6 @@ FIO.LOAD.ASM.T >STYA ZPPtr2 lda (ZPPtr1),y adc ZPPtr1+1 sta ZPRPtr+1 - iny lda (ZPPtr1),y clc @@ -100,46 +88,37 @@ FIO.LOAD.ASM.T >STYA ZPPtr2 lda (ZPPtr1),y adc ZPPtr1+1 sta ZPOpsPtr+1 - -.9 rts +.9 rts *--------------------------------------- FIO.OpenFile >STYA ZPPtr1 - >PUSHW ZPPtr1 >PUSHBI 2 >LDYA L.MSG.SRC.FILE jsr OUT.Print - ldy #SRC.COUNT lda (pData),y cmp #IN.MAXDEPTH bne .1 - lda #E.SRC.TOO.MANY.IN sec rts - .1 >PUSHW L.FIO.Stat >LDYA ZPPtr1 >SYSCALL Stat bcs .99 - lda FIO.Stat+S.STAT.P.TYPE cmp #$04 TXT ? bne .2 >PUSHWZ >PUSHBI 4 - >PUSHBI O.RDONLY+O.TEXT + >PUSHBI O.RDONLY+O.TEXT bra .3 - -.2 cmp #$FA S-C/BAS? +.2 cmp #$FA S-C/BAS? bne .98 - >PUSHWZ >PUSHBI $FA >PUSHBI O.RDONLY - .3 >LDYA ZPPtr1 >SYSCALL FOpen bcs .99 @@ -152,7 +131,6 @@ FIO.OpenFile >STYA ZPPtr1 tay pla sta (pData),y - ldy #SRC.COUNT lda (pData),y clc @@ -166,17 +144,13 @@ FIO.OpenFile >STYA ZPPtr1 lda (pData),y inc sta (pData),y - lda #0 >STA.G SRC.LINENUM iny sta (pData),y - clc rts - .98 lda #E.SRC.INV.TYPE - sec .99 rts *--------------------------------------- @@ -192,18 +166,14 @@ FIO.ReadLine ldy #SRC.COUNT >PUSHW ZPLineBuf jsr FIO.ReadFromFile bcs .19 - tya beq .13 dey - lda (ZPLineBuf),y eor #C.CR beq .22 - iny - .22 lda #0 replace ending $0D with $00 .13 sta (ZPLineBuf),y @@ -225,7 +195,6 @@ FIO.ReadLine ldy #SRC.COUNT >STA.G SRC.LINENUM+1 pla >STA.G SRC.LINENUM - lda (ZPTmpBuf) LEN sec sbc #3 @@ -237,27 +206,21 @@ FIO.ReadLine ldy #SRC.COUNT >PUSHW ZPTmpBuf jsr FIO.ReadFromFile bcs .9 - >LDYA ZPTmpBuf >STYA ZPPtr1 - ldy #0 - .1 lda (ZPPtr1) inc ZPPtr1 bne .11 inc ZPPtr1+1 - .11 tax bmi .2 - sta (ZPLineBuf),y beq .8 Ending 00 iny bne .1 bra .99 - .2 cmp #$C0 REPEAT char? bne .5 @@ -265,35 +228,28 @@ FIO.ReadLine ldy #SRC.COUNT inc ZPPtr1 bne .3 inc ZPPtr1+1 - .3 tax lda (ZPPtr1) Get Repeat Char inc ZPPtr1 bne .4 inc ZPPtr1+1 - .4 sta (ZPLineBuf),y - iny beq .99 dex bne .4 bra .1 - .5 and #$3F Compute blank count tax lda #$20 - .6 sta (ZPLineBuf),y iny beq .99 - dex bne .6 bra .1 - .8 clc .9 rts @@ -311,10 +267,8 @@ FIO.ReadFromFile >SYSCALL FRead bcs .9 - tax $100 byte transfered ? beq .9 - lda #E.LINE.TOO.LONG sec .9 rts @@ -322,18 +276,15 @@ FIO.ReadFromFile FIO.FileClose ldy #SRC.COUNT lda (pData),y beq .8 - clc adc #SRC.hFILES-1 tay lda (pData),y >SYSCALL fclose - ldy #SRC.COUNT lda (pData),y dec sta (pData),y - .8 clc rts *--------------------------------------- diff --git a/BIN/ASM.S.MAC.txt b/BIN/ASM.S.MAC.txt index d785dcbe..78ccc0c0 100644 --- a/BIN/ASM.S.MAC.txt +++ b/BIN/ASM.S.MAC.txt @@ -5,11 +5,9 @@ MAC.Init >SYSCALL SListNew bcs .9 >STA.G MAC.hList - >LDYAI 256 >SYSCALL getmem bcs .9 - >STYA ZPMacroBuf txa >STA.G MAC.hBuf @@ -17,12 +15,10 @@ MAC.Init >SYSCALL SListNew >LDYAI 256 >SYSCALL getmem bcs .9 - >STYA ZPMacroStk txa >STA.G MAC.hStk - -.9 rts +.9 rts *--------------------------------------- MAC.Reset >STZ.G MAC.StkPtr >STA.G MAC.CtxID @@ -32,12 +28,10 @@ MAC.Quit >LDA.G MAC.hStk beq .1 >SYSCALL FreeMem - .1 >LDA.G MAC.hBuf beq .3 >SYSCALL FreeMem - .3 >LDA.G MAC.hList beq .8 >SYSCALL SListFree @@ -46,34 +40,27 @@ MAC.Quit >LDA.G MAC.hStk rts *--------------------------------------- MAC.AddChar tax - >LDA.G ASM.PASS If Pass#2, ignore bne .8 - >LDA.G MAC.BufPtr tay - txa sta (ZPMacroBuf),y >INC.G MAC.BufPtr - txa beq .1 cmp #C.CR bne .8 - .1 >LDA.G MAC.BufPtr tay lda #0 - >PUSHYA >PUSHW ZPMacroBuf >PUSHW.G MAC.ID >LDA.G MAC.hList >SYSCALL SListAddData rts - .8 clc MAC.AddChar.RTS rts *--------------------------------------- @@ -86,14 +73,12 @@ MAC.ReadLine >LDA.G MAC.StkPtr dey lda (ZPMacroStk),y sta ZPPtr1+1 pop mac ID - dey lda (ZPMacroStk),y sta ZPPtr2 dey lda (ZPMacroStk),y sta ZPPtr2+1 pop offset - dey lda (ZPMacroStk),y sta ZPMacroBuf @@ -103,7 +88,6 @@ MAC.ReadLine >LDA.G MAC.StkPtr tya >STA.G MAC.StkPtr - >PUSHW ZPPtr2 offset >PUSHWZ len = 0 (string mode) >PUSHW ZPLineBuf @@ -117,21 +101,16 @@ MAC.ReadLine >LDA.G MAC.StkPtr * clc adc ZPPtr2 sta ZPPtr2 - pla adc ZPPtr2+1 sta ZPPtr2+1 - >LDYA ZPMacroBuf >SYSCALL puts - >LDA.G MAC.StkPtr tay - lda ZPLinePtr+1 push args sta (ZPMacroStk),y iny - lda ZPLinePtr sta (ZPMacroStk),y iny @@ -139,22 +118,17 @@ MAC.ReadLine >LDA.G MAC.StkPtr MAC.Push lda ZPPtr2+1 push offset sta (ZPMacroStk),y iny - lda ZPPtr2 sta (ZPMacroStk),y - iny - + iny lda ZPPtr1+1 push MAC.ID sta (ZPMacroStk),y iny - lda ZPPtr1 sta (ZPMacroStk),y - iny - + iny tya >STA.G MAC.StkPtr - clc rts *--------------------------------------- @@ -166,61 +140,45 @@ MAC.Exec jsr SRC.GetNextChar skip '>' >SYSCALL SListLookup bcs .90 >STYA ZPPtr1 MAC.ID - txa * clc adc ZPLinePtr sta ZPLinePtr bcc .1 - inc ZPLinePtr+1 - .1 jsr SRC.GetChar bcs .8 - cmp #' ' bne .92 - jsr SRC.GetNextChar beq .8 eol.. - cmp #' ' some arg... bne .8 - .2 jsr SRC.GetNextChar comment....skip bcc .2 - .8 >LDA.G MAC.StkPtr cmp #MA.MAXDEPTH*8 beq .91 - stz ZPPtr2 stz ZPPtr2+1 offset = 0 - >INC.G MAC.CtxID >INC.G MAC.Depth - >LDA.G MAC.StkPtr tay - lda ZPLinePtr+1 push args sta (ZPMacroStk),y iny - lda ZPLinePtr sta (ZPMacroStk),y iny jmp MAC.Push - .90 lda #E.MACRO.INV sec rts - .91 lda #E.MACRO.TOO.MANY sec rts - .92 lda #E.SYNTAX.ERROR sec rts diff --git a/BIN/ASM.S.OUT.txt b/BIN/ASM.S.OUT.txt index 1bfee1e7..e5201f25 100644 --- a/BIN/ASM.S.OUT.txt +++ b/BIN/ASM.S.OUT.txt @@ -6,19 +6,14 @@ OUT.Init lda #PAGE.LEN rts *--------------------------------------- OUT.Reset ldx #4 - ldy #ASM.PC - .1 lda (pData),y pha iny dex bne .1 - ldx #4 - ldy #OUT.PC+3 - .2 pla sta (pData),y dey @@ -27,41 +22,31 @@ OUT.Reset ldx #4 >STZ.G OUT.Buf >STA.G OUT.bEquate - rts *--------------------------------------- OUT.PrintLineOn * clc * rts - >LDA.G ASM.LI.ON bpl .9 - >LDA.G ASM.MA.ON MACRO Mode ? bpl .1 - >LDA.G ASM.LI.MON bpl .9 bmi .8 - .1 >LDA.G ASM.DO.StackPtr within a DO/ELSE ? beq .2 - clc adc #ASM.DO.Stack-1 tay lda (pData),y TRUE ? bne .8 yes, print always - >LDA.G ASM.LI.CON FALSE, check CON flag... bpl .9 bmi .8 - -.2 - +.2 .8 clc rts - .9 sec rts *--------------------------------------- @@ -70,16 +55,13 @@ OUT.PrintLineErr jsr OUT.PrintLine.1 bcs .9 - .1 >PUSHB.G DIR.Byte >PUSHBI 1 >LDYA L.MSG.ERROR >SYSCALL printf - ldx ZPLinePtr cpx ZPLineBuf beq .4 - .3 phx lda #'-' >SYSCALL PutChar @@ -88,7 +70,6 @@ OUT.PrintLineErr dex cpx ZPLineBuf bne .3 - .4 lda #'^' phy >SYSCALL PutChar @@ -96,17 +77,13 @@ OUT.PrintLineErr bcs .9 .5 jmp OUT.PrintCR - .9 rts *--------------------------------------- OUT.PrintLine jsr OUT.PrintLineOn bcs OUT.Print.RTS - OUT.PrintLine.1 jsr OUT.PrintLineOutBuf bcs OUT.Print.RTS - >LDA.G SRC.COUNT - .1 dec bmi .2 pha @@ -114,14 +91,12 @@ OUT.PrintLine.1 jsr OUT.PrintLineOutBuf >SYSCALL putchar pla bra .1 - .2 >PUSHW.G SRC.LINENUM >PUSHBI 2 >LDYA L.MSG.LINENUM >SYSCALL printf >LDA.G MAC.Depth - .3 dec bmi .4 pha @@ -136,7 +111,6 @@ OUT.PrintLine.1 jsr OUT.PrintLineOutBuf *--------------------------------------- OUT.Print >SYSCALL printf bcs OUT.Print.RTS - jmp OUT.PrintCR OUT.Print.RTS rts @@ -144,25 +118,20 @@ OUT.Print.RTS rts OUT.PrintLineOutBuf >LDA.G OUT.bEquate bne OUT.PrintLineAcc - >LDA.G OUT.Buf beq .2 - tax clc adc #OUT.Buf tay - .1 >PUSHB (pData),y dey dex bne .1 - .2 ldy #OUT.PC+1 >PUSHB (pData),y dey >PUSHB (pData),y - >LDA.G OUT.Buf pha inc @@ -179,21 +148,17 @@ OUT.PrintLineOutBuf OUT.PrintLineAcc lda SRC.ACC.SIZE beq .2 - tax ldy #0 - .1 >PUSHB SRC.ACC,y iny dex bne .1 - lda SRC.ACC.SIZE .2 >PUSHA Byte Count asl tax - cpx #9 bcs * @@ -212,27 +177,20 @@ OUT.EmitByte phy jsr OUT.PrintLineOn bcs .1 - >LDA.G ASM.LI.XON bpl .1 - jsr OUT.PrintLineOutBuf jsr OUT.PrintCR - .1 jsr OUT.Reset - lda #0 ldy #OUT.Buf - .2 inc sta (pData),y clc adc #OUT.Buf tay - pla sta (pData),y - .8 >INC.G ASM.PC bne .80 >INC.G ASM.PC+1 @@ -240,7 +198,6 @@ OUT.EmitByte phy >INC.G ASM.PC+2 bne .80 >INC.G ASM.PC+3 - .80 plx ply clc @@ -252,10 +209,8 @@ OUT.PrintCR >PUSHBI 0 >DEBUG OUT.PrintCR1 >DEC.G OUT.LineCnt bne .8 - lda #PAGE.LEN sta (pData),y - * lda #$80 * >STA.G bPause .8 rts diff --git a/BIN/ASM.S.SRC.txt b/BIN/ASM.S.SRC.txt index ecec3424..5509b883 100644 --- a/BIN/ASM.S.SRC.txt +++ b/BIN/ASM.S.SRC.txt @@ -2,64 +2,49 @@ NEW AUTO 3,1 *--------------------------------------- SRC.ParseLine jsr OUT.Reset - jsr SRC.GetChar bcs .8 - cmp #'*' Comment? beq .8 cmp #';' Comment? beq .8 - >LDA.G ASM.DO.StackPtr beq .1 - clc adc #ASM.DO.Stack-1 tay lda (pData),y beq .8 - .1 >LDA.G ASM.MA.ON bmi SRC.ParseLine.MACRO jmp SRC.ParseLine.LABEL - .8 clc .9 rts *--------------------------------------- SRC.ParseLine.Macro >STZ.G MAC.BufPtr sta (ZPMacroBuf) - lda (ZPLinePtr) cmp #' ' No label, scan to DIR/OP if any bne .1 - jsr SRC.GetNextCharNB bcs .8 - lda #' ' Store ONE blank jsr MAC.AddChar bcs .90 - lda (ZPLinePtr) get back non blank char bra .2 - .1 jsr MAC.AddChar bcs .99 - jsr SRC.GetNextChar bcs .80 cmp #' ' bne .1 - jsr MAC.AddChar .90 bcs .99 - jsr SRC.GetNextCharNB bcs .80 - .2 cmp #'.' Directive ? bne .4 @@ -70,7 +55,6 @@ SRC.ParseLine.Macro beq .21 cmp #'e' bne .3 - .21 iny lda (ZPLinePtr),y beq .3 @@ -78,76 +62,56 @@ SRC.ParseLine.Macro beq .22 cmp #'m' bne .3 - .22 >STZ.G ASM.MA.ON - .8 clc rts .80 lda #C.CR jmp MAC.AddChar - .3 lda (ZPLinePtr) - .4 jsr MAC.AddChar bcs .99 - jsr SRC.GetNextChar bcs .80 cmp #' ' bne .4 - jsr SRC.GetNextChar bcs .8 cmp #' ' beq .80 Comments... - pha - lda #' ' jsr MAC.AddChar - pla bcs .99 - .5 jsr MAC.AddChar Store ARG.... bcs .99 - jsr SRC.GetNextChar bcs .80 cmp #' ' bne .5 - bra .80 End of Line - -.99 -SRC.ParseLine.RTS +.99 SRC.ParseLine.RTS rts *--------------------------------------- SRC.ParseLine.LABEL jsr SRC.GetChar cmp #' ' no label...go scan dir/opcode beq SRC.ParseLine.DirOp - tax save char... - cmp #'.' local symbol? beq .1 - cmp #':' private symbol? bne .8 - >LDA.G MAC.StkPtr beq SRC.ParseLine.InvLbl .1 >LDA.G SYM.bInGlobal Not relative to Global label... bpl SRC.ParseLine.InvLbl - jsr SRC.GetNextChar bcs SRC.ParseLine.InvLbl jsr SRC.GetDecimal bcs SRC.ParseLine.InvLbl - lda SRC.ACC+1 ora SRC.ACC+2 ora SRC.ACC+3 @@ -157,10 +121,8 @@ SRC.ParseLine.LABEL cpx #':' beq .2 - jsr SYM.NewLocalA bra .3 - .2 jsr SYM.NewPrivateA .3 bcs SRC.ParseLine.RTS @@ -168,28 +130,23 @@ SRC.ParseLine.LABEL .8 jsr SYM.NewOrGetGlobal bcs SRC.ParseLine.RTS -*--------------------------------------- +*--------------------------------------- SRC.ParseLine.DirOp jsr SRC.GetNextCharNB Scan for an Opcode... bcs SRC.ParseLine.Ok - cmp #'.' bne .5 - jsr SRC.GetNextChar bcs SRC.ParseLine.InvDir - jsr SRC.ParseLine.Dir bcs SRC.ParseLine.Err bra SRC.ParseLine.Ok .5 cmp #'>' bne SRC.ParseLine.OpCode - jsr MAC.Exec bcs SRC.ParseLine.Err bra SRC.ParseLine.Ok - SRC.ParseLine.Ok clc SRC.ParseLine.Err @@ -199,7 +156,6 @@ SRC.ParseLine.InvLbl lda #E.INV.LABEL sec rts - SRC.ParseLine.InvDir lda #E.INV.DIR sec @@ -210,7 +166,6 @@ SRC.ParseLine.Dir jsr SRC.GetKeyword bcs SRC.ParseLine.InvDir - jmp (J.DIRECTIVES,x) *--------------------------------------- SRC.ParseLine.OpCode @@ -221,7 +176,6 @@ SRC.ParseLine.OpCode ldy #1 ora (ZPOpDefPtr),y beq .9 - lda ZPOpDefPtr clc adc #2 @@ -229,68 +183,52 @@ SRC.ParseLine.OpCode lda ZPOpDefPtr+1 adc #0 sta ZPPtr2+1 - lda (ZPPtr2) tax - ldy #0 - .2 lda (ZPLinePtr),y beq .7 - cmp #'a' bcc .3 cmp #'z'+1 bcs .3 - eor #$20 - .3 iny cmp (ZPPtr2),y bne .7 - dex bne .2 lda (ZPLinePtr),y beq .8 End of Line, no AM - cmp #C.SPACE A space after opcode ? bne .7 - tya sec skip OP + ' ' adc ZPLinePtr sta ZPLinePtr bcc .5 - inc ZPLinePtr+1 - .5 jsr SRC.GetChar bcs .8 Nothing after OP ' ' cmp #C.SPACE OP ' ' ? beq .8 - bra SRC.ParseLine.AM - .7 lda ZPOpDefPtr clc adc (ZPOpDefPtr) tax - lda ZPOpDefPtr+1 ldy #1 adc (ZPOpDefPtr),y stx ZPOpDefPtr sta ZPOpDefPtr+1 bra .1 - .8 lda #$ff >STA.G SRC.AMID jsr SRC.ParseLine.AMCheck4OP bcs .99 jmp SRC.ParseLine.Emit - .9 lda #E.INV.OPCODE sec .99 rts @@ -300,70 +238,52 @@ SRC.ParseLine.AM .1 jsr SRC.IsAMReserved bcs .2 - jsr SRC.AddToBuf bra .7 - .2 jsr SRC.IsLetter Any register? bcs .6 no, try something else - >LDYA ZPRPtr Check in register table jsr SRC.GetKeyword bcs .6 - lda (ZPPtr1) get register len tax - .4 inc ZPPtr1 bne .5 inc ZPPtr1+1 - .5 lda (ZPPtr1) jsr SRC.AddToBuf dex bne .4 - bra .74 - .6 jsr EXP.Eval bcs .99 - >LDA.G EXP.Prefix beq .75 jsr SRC.AddToBuf .75 ldx SRC.ACC.SIZE bne .73 - ldx #2 FWREF ...assume 2 bytes... - .73 lda SRC.ACC-1,x bne .72 dex bne .73 - inx - .72 lda #'a' - .71 jsr SRC.AddToBuf dex bne .71 .74 jsr SRC.GetChar bcs .8 - cmp #C.SPACE bne .1 bra .8 - .7 jsr SRC.GetNextChar bcs .8 - cmp #C.SPACE bne .1 - .8 jsr SRC.ParseLine.AMCheck bcs .9 jsr SRC.ParseLine.AMCheck4OP @@ -390,15 +310,11 @@ SRC.ParseLine.AMCheck * >PUSHBI 6 * >LDYA L.MSG.ACC * >SYSCALL printf - * >LDYA L.SRC.AM.StrBuf * jsr DEBUG.PSTR - >LDYA ZPAMPtr Check if AM is valid for CPU >STYA ZPPtr1 - ldx #0 - .1 inx * phx * lda #'?' @@ -406,27 +322,21 @@ SRC.ParseLine.AMCheck * >LDYA ZPPtr1 * jsr DEBUG.PSTR * plx - lda (ZPPtr1) beq .9 - cmp SRC.AM.StrBuf bne .7 - tay - -.2 lda (ZPPtr1),y +.2 lda (ZPPtr1),y cmp SRC.AM.StrBuf,y bne .6 dey bne .2 - txa >STA.G SRC.AMID clc rts - .6 lda (ZPPtr1) .7 sec adc ZPPtr1 @@ -434,7 +344,6 @@ SRC.ParseLine.AMCheck bcc .1 inc ZPPtr1+1 bra .1 - .9 sec rts *--------------------------------------- @@ -445,7 +354,6 @@ SRC.ParseLine.AMCheck4OP adc #2 Skip nextLoHi bcc .11 inx - .11 sec skip LEN Byte ldy #2 LEN Byte adc (ZPOpDefPtr),y @@ -453,24 +361,20 @@ SRC.ParseLine.AMCheck4OP inx .10 sta ZPPtr1 stx ZPPtr1+1 - lda (ZPPtr1) AMID... .1 >CMP.G SRC.AMID beq .8 - lda ZPPtr1 Skip AMID,L,"39aa" ldx ZPPtr1+1 inc AMID.... bne .12 inx - .12 sec LEN byte... ldy #1 String... adc (ZPPtr1),y bcc .2 inx - .2 sta ZPPtr1 stx ZPPtr1+1 lda (ZPPtr1) @@ -479,7 +383,6 @@ SRC.ParseLine.AMCheck4OP lda #E.INV.AM.4.OC sec rts - .8 >LDYA ZPPtr1 >STYA ZPOpDefPtr clc @@ -492,11 +395,9 @@ SRC.ParseLine.Emit lda (ZPOpDefPtr),y sta SRC.ACCTMP+1 Char Count in AM iny - .4 lda (ZPOpDefPtr),y cmp #'a bcs .5 lowercase, go compute address - jsr SRC.IsDigit16 asl asl @@ -518,9 +419,7 @@ SRC.ParseLine.Emit clc rts - .5 bne .6 cmp #'a'.... - ldx SRC.ACCTMP inc SRC.ACCTMP lda SRC.ACC,x @@ -528,33 +427,25 @@ SRC.ParseLine.Emit .6 cmp #'r bne .7 - lda SRC.ACC.SIZE beq .50 Emit 00 if pending symbol (pass #1) - jsr SRC.ComputeRel8 bcs .91 bra .50 - .7 cmp #'l bne .90 lda SRC.ACC.SIZE bne .71 - jsr OUT.EmitByte Emit 00 00 if pending symbol (pass #1) bcs .9 lda #0 - bra .50 - .71 jsr SRC.ComputeRel16 bcs .91 - lda SRC.ACC jsr OUT.EmitByte bcs .9 - lda SRC.ACC+1 bra .50 @@ -564,7 +455,6 @@ SRC.ParseLine.Emit .90 lda #E.INV.T.FILE sec rts - .91 lda #E.RANGE sec rts @@ -576,35 +466,27 @@ SRC.AddToBuf inc SRC.AM.StrBuf *--------------------------------------- SRC.ExpandAddress ldy SRC.AM.StrBuf - .1 lda SRC.AM.StrBuf,y sta SRC.AM.StrBuf+1,y dey - cmp #'a' bne .1 - ldx #2 "aa" tya beq .8 - .2 lda SRC.AM.StrBuf,y cmp #'a' bne .8 - inx "aaa" .3 dey bne .2 - .8 inc SRC.AM.StrBuf rts *--------------------------------------- SRC.ComputeRel8 jsr SRC.ComputeRel - bcc .1 - * positive : check 0STYA ZPPtr1 KeyWord table ldx #0 Keyword.ID .1 phx - lda (ZPPtr1) beq .9 End Of table - tax KW len - ldy #0 .3 lda (ZPLinePtr),y beq .6 - jsr SRC.IsKeywordLetterUC bcs .6 - iny cmp (ZPPtr1),y bne .7 - dex bne .3 - lda (ZPLinePtr),y All chars match... beq .4 End of Line ? - jsr SRC.IsKeywordLetterUC bcc .7 Additional letters... - .4 lda ZPLinePtr found! clc adc (ZPPtr1) skip KW in source line sta ZPLinePtr bcc .5 inc ZPLinePtr+1 - .5 plx Keyword.ID clc rts -.6 - +.6 .7 lda (ZPPtr1) sec Add keyword Len+1 adc ZPPtr1 sta ZPPtr1 bcc .8 - inc ZPPtr1+1 - .8 plx Keyword.ID inx inx bra .1 - .9 plx sec rts @@ -971,7 +783,7 @@ SRC.IsAMReserved sec rts .8 clc - rts + rts *--------------------------------------- SRC.IsMODReserved ldx SRC.MOD.RESERVED @@ -981,9 +793,8 @@ SRC.IsMODReserved bne .1 sec rts - .8 clc - rts + rts *--------------------------------------- SRC.IsEXPReserved ldx SRC.EXP.RESERVED @@ -993,10 +804,9 @@ SRC.IsEXPReserved bne .1 sec rts - SRC.IsEXPReserved.8 clc - rts + rts *--------------------------------------- SRC.IsKeywordLetterUC cmp #'.' @@ -1013,12 +823,9 @@ SRC.IsKeywordLetterUC cmp #'a' bcc .9 cmp #'z'+1 - eor #$20 - rts CC if lowercase - -.9 sec +.9 sec .99 rts *--------------------------------------- SRC.IsLetterOrDigit @@ -1034,9 +841,8 @@ SRC.IsLetter cmp #'A' bcc .9 cmp #'z'+1 rts CC if lowercase - -.9 sec -SRC.IsLetterRTS rts +.9 sec +SRC.IsLetterRTS rts *--------------------------------------- SRC.IsDigit16 jsr SRC.IsDigit10 bcc .8 @@ -1044,22 +850,18 @@ SRC.IsDigit16 jsr SRC.IsDigit10 bcc .9 cmp #'F'+1 bcc .1 - cmp #'a' bcc .9 cmp #'f'+1 bcs .9 eor #$20 - -.1 +.1 * clc sbc #'A'-11 cc so A->10 (11-CC) clc - -.8 and #$0F +.8 and #$0F rts - .9 sec rts *--------------------------------------- @@ -1067,7 +869,6 @@ SRC.IsDigit10 cmp #'0' bcc .9 cmp #'9'+1 rts cc if ok, cs if not - .9 sec rts *--------------------------------------- @@ -1075,7 +876,6 @@ SRC.IsDigit8 cmp #'0' bcc .9 cmp #'7'+1 rts cc if ok, cs if not - .9 sec rts *--------------------------------------- @@ -1084,9 +884,7 @@ SRC.GetNextCharNB bcs .9 cmp #' ' beq SRC.GetNextCharNB - clc - .9 rts *--------------------------------------- SRC.GetNextCharUC @@ -1097,7 +895,6 @@ SRC.GetNextCharUC cmp #'z'+1 bcs .8 eor #$20 to Uppercase - .8 clc .9 rts *--------------------------------------- @@ -1105,20 +902,15 @@ SRC.GetNextChar lda (ZPLinePtr) beq SRC.GetChar.ERR cmp #$0D beq SRC.GetChar.ERR - inc ZPLinePtr bne SRC.GetChar - inc ZPLinePtr+1 - SRC.GetChar lda (ZPLinePtr) beq SRC.GetChar.ERR cmp #$0D beq SRC.GetChar.ERR - clc rts - SRC.GetChar.ERR sec rts *--------------------------------------- @@ -1139,7 +931,6 @@ SRC.ACC10 lda SRC.ACC ACC*2-> ACC & ACCTMP sta SRC.ACC+3 sta SRC.ACCTMP+3 bcs .9 - ldx #2 .1 asl SRC.ACC ACC=ACC*4 rol SRC.ACC+1 @@ -1148,7 +939,6 @@ SRC.ACC10 lda SRC.ACC ACC*2-> ACC & ACCTMP bcs .9 dex bne .1 - lda SRC.ACC CC from ROL SRC.ACC+3 adc SRC.ACCTMP sta SRC.ACC @@ -1161,8 +951,7 @@ SRC.ACC10 lda SRC.ACC ACC*2-> ACC & ACCTMP lda SRC.ACC+3 adc SRC.ACCTMP+3 sta SRC.ACC+3 CS if overflow - -.9 rts +.9 rts *--------------------------------------- DEBUG.PSTR >PUSHYA >PUSHBI 2 diff --git a/BIN/ASM.S.SYM.txt b/BIN/ASM.S.SYM.txt index 6f05a035..2ac841d0 100644 --- a/BIN/ASM.S.SYM.txt +++ b/BIN/ASM.S.SYM.txt @@ -18,15 +18,12 @@ SYM.Init >SYSCALL SListNew bcs .9 >STA.G SYM.hList - >LDYAI 256 >SYSCALL getmem bcs .9 - >STYA ZPSymbolBuf txa >STA.G SYM.hGlobalBuf - .9 rts *--------------------------------------- SYM.Reset >STZ.G SYM.bInGlobal @@ -34,13 +31,10 @@ SYM.Reset >STZ.G SYM.bInGlobal *--------------------------------------- SYM.Quit >LDA.G SYM.hGlobalBuf beq .3 - >SYSCALL FreeMem - .3 >LDA.G SYM.hList beq SYM.Quit.8 >SYSCALL SListFree - SYM.Quit.8 clc rts *--------------------------------------- @@ -48,11 +42,10 @@ SYM.Dump.End >PUSHW ZPPtr2 >PUSHBI 2 >LDYA L.MSG.SUMMARY jmp OUT.Print -SYM.Dump.RTS rts +SYM.Dump.RTS rts *--------------------------------------- SYM.Dump >LDA.G ASM.LI.ON bpl SYM.Quit.8 - >LDYA L.MSG.SYMBOLS >SYSCALL puts @@ -67,9 +60,7 @@ SYM.Dump >LDA.G ASM.LI.ON >LDA.G SYM.hList >SYSCALL SListGetByID bcs SYM.Dump.End - >STYA ZPPtr2 Save Next ID - >PUSHWZ Start >PUSHWI $ffff End >PUSHW ZPSymbolBuf @@ -78,27 +69,21 @@ SYM.Dump >LDA.G ASM.LI.ON >SYSCALL SListGetData bcs SYM.Dump.RTS - ldy #SYMG.SIZE Get Symbol Size lda (ZPSymbolBuf),y - tax beq .3 phx - .2 iny lda (ZPSymbolBuf),y >PUSHA dex bne .2 - pla Byte Count asl tax - .3 >PUSHA - ldy L.MSG.EQU0,x lda L.MSG.EQU0+1,x >SYSCALL printf @@ -113,45 +98,37 @@ SYM.Dump >LDA.G ASM.LI.ON beq .7 jsr SYM.Dump.LP - .7 jsr OUT.PrintCR - jmp .1 + jmp .1 *--------------------------------------- SYM.Dump.LP ldy #SYMG .4 lda (ZPSymbolBuf),y beq .8 - phy iny - ldx #4 - .5 iny lda (ZPSymbolBuf),y >PUSHA dex bne .5 - ply iny lda (ZPSymbolBuf),y tax beq .55 >PUSHA - .55 dey lda (ZPSymbolBuf),y >PUSHA phy - txa beq .6 >PUSHBI 6 >LDYA L.MSG.PSYMBOL bra .66 - .6 >PUSHBI 5 >LDYA L.MSG.LSYMBOL .66 >SYSCALL printf @@ -161,7 +138,6 @@ SYM.Dump.LP ldy #SYMG tay bra .4 - .8 rts *--------------------------------------- SYM.NewOrGetGlobal @@ -177,38 +153,28 @@ SYM.NewGlobal jsr SYM.StoreGlobal bcs .9 Already Defined >STYA.G SYM.GlobalID txa - adc ZPLinePtr sta ZPLinePtr bcc .1 - inc ZPLinePtr+1 - .1 jsr SYM.PC2Acc - jsr SYM.Acc2Global - lda #SYMG - >STA.G SYM.GlobalPtr tay - lda #0 sta (ZPSymbolBuf),y - lda #$ff >STA.G SYM.bInGlobal - * >PUSHW.G SYM.GlobalID * >PUSHBI 2 * >LDYA L.MSG.WORD * >SYSCALL printf clc rts - .9 lda #E.SYMBOL.REDEF sec -.99 rts +.99 rts *--------------------------------------- SYM.GetGlobal >PUSHW ZPLinePtr Pass #2: should be already defined... >LDA.G SYM.hList @@ -220,9 +186,7 @@ SYM.GetGlobal >PUSHW ZPLinePtr Pass #2: should be already defined... adc ZPLinePtr sta ZPLinePtr bcc .1 - inc ZPLinePtr+1 - .1 >PUSHWZ Start >PUSHWI $ffff End >PUSHW ZPSymbolBuf @@ -230,12 +194,11 @@ SYM.GetGlobal >PUSHW ZPLinePtr Pass #2: should be already defined... >LDA.G SYM.hList >SYSCALL SListGetData bcs .99 - lda #$ff >STA.G SYM.bInGlobal -* clc +* clc rts - + .9 lda #E.UNDEF.SYMBOL sec .99 rts @@ -245,16 +208,12 @@ SYM.LookupGlobal >LDA.G SYM.hList >SYSCALL SListLookup bcs .9 - >STYA ZPPtr1 - txa adc ZPLinePtr sta ZPLinePtr bcc .1 - inc ZPLinePtr+1 - .1 >LDA.G SYM.GlobalID cmp ZPPtr1 bne .3 @@ -262,9 +221,7 @@ SYM.LookupGlobal lda (pData),y cmp ZPPtr1+1 bne .3 - ldy #SYMG-1 - .2 lda (ZPSymbolBuf),y sta SRC.ACC.F,y dey @@ -280,7 +237,6 @@ SYM.LookupGlobal >LDA.G SYM.hList >SYSCALL SListGetData rts - .9 lda #E.UNDEF.SYMBOL sec rts @@ -296,17 +252,14 @@ SYM.StoreGlobal >LDA.G ASM.PASS lda #0 cpy #SYMG beq .1 - lda (ZPSymbolBuf) ora #SYMG.F.LOCALS sta (ZPSymbolBuf) - lda #0 sta (ZPSymbolBuf),y iny bne .1 inc - .1 >PUSHYA >PUSHW ZPSymbolBuf @@ -314,13 +267,10 @@ SYM.StoreGlobal >LDA.G ASM.PASS >LDA.G SYM.hList >SYSCALL SListAddData bcs .9 - lda #0 >STA.G SYM.bInGlobal >STA.G MAC.CtxID - rts - .8 clc .9 rts *--------------------------------------- @@ -334,7 +284,6 @@ SYM.UpdateGlobal *--------------------------------------- SYM.PC2Acc ldy #ASM.PC+3 ldx #3 - .1 lda (pData),y sta SRC.ACC,x dey @@ -344,12 +293,10 @@ SYM.PC2Acc ldy #ASM.PC+3 lda #2 sta SRC.ACC.SIZE stz SRC.ACC.F - rts *--------------------------------------- SYM.Acc2Global ldy #SYMG-1 - -.2 lda SRC.ACC.F,y +.2 lda SRC.ACC.F,y sta (ZPSymbolBuf),y dey bpl .2 @@ -365,13 +312,11 @@ SYM.NewPrivateA sec .HS 90 BCC SYM.NewLocalA clc - ror ZPPtr1 tax Save Local ID >LDA.G SYM.bInGlobal not in a global label bpl .91 - >LDA.G ASM.PASS Pass #2: should be already defined... bne .8 @@ -381,30 +326,23 @@ SYM.NewLocalA clc >LDA.G SYM.GlobalPtr cmp #252 6*42 beq .90 - ldy #ASM.PC+4 - .1 dey lda (pData),y pha cpy #ASM.PC - bne .1 - + bne .1 lda #0 bit ZPPtr1 bpl .11 local, Ctx = 0 - >LDA.G MAC.CtxID Get Macro Context ID .11 pha - >LDA.G SYM.GlobalPtr tay - txa Get Back ID sta (ZPSymbolBuf),y ldx #5 MAC ID + PC (4) - .2 pla iny sta (ZPSymbolBuf),y @@ -416,18 +354,15 @@ SYM.NewLocalA clc sta (ZPSymbolBuf),y tya >STA.G SYM.GlobalPtr - lda (ZPSymbolBuf) ora #SYMG.F.LOCALS sta (ZPSymbolBuf) - .8 clc rts -.91 lda #E.INV.LABEL +.91 lda #E.INV.LABEL sec rts - .90 lda #E.TOO.MANY.LOCAL sec rts @@ -439,12 +374,10 @@ SYM.NewLocalA clc SYM.GetLocalX lda (ZPSymbolBuf) and #SYMG.F.LOCALS beq .9 - ldy #SYMG .1 lda (ZPSymbolBuf),y beq .9 - txa cmp (ZPSymbolBuf),y bne .4 @@ -457,7 +390,6 @@ SYM.GetLocalX lda (ZPSymbolBuf) bne .3 ldx #0 - .2 iny lda (ZPSymbolBuf),y sta SRC.ACC,x @@ -467,7 +399,6 @@ SYM.GetLocalX lda (ZPSymbolBuf) lda #2 sta SRC.ACC.SIZE - clc rts @@ -477,7 +408,6 @@ SYM.GetLocalX lda (ZPSymbolBuf) adc #SYML tay bra .1 - .9 lda #E.UNDEF.SYMBOL sec rts diff --git a/BIN/ASM.S.txt b/BIN/ASM.S.txt index 7a748d58..82afcaa6 100644 --- a/BIN/ASM.S.txt +++ b/BIN/ASM.S.txt @@ -207,15 +207,12 @@ J.EXP.OP .DA EXP.OP.EOR ^!|&<=>+-*/ CS.INIT ldy #S.PS.ARGC lda (pPs),y beq .99 - lda #1 >SYSCALL ArgV >SYSCALL RealPath - txa ldy #SRC.hFILENAME sta (pData),y - jsr FIO.Init bcs .9 @@ -224,7 +221,6 @@ CS.INIT ldy #S.PS.ARGC jsr MAC.Init bcs .9 - jsr OUT.Init >LDYAI 256 @@ -240,10 +236,8 @@ CS.INIT ldy #S.PS.ARGC >STYA ZPTmpBuf txa >STA.G SRC.hTmpBuf - clc rts - .99 >PUSHBI 0 >LDYA L.MSG.HELP >SYSCALL printf @@ -255,7 +249,6 @@ CS.RUN ldy #S.PS.hStdIn lda (pPS),y >SYSCALL feof bcs .99 - tay bne .13 @@ -264,7 +257,6 @@ CS.RUN ldy #S.PS.hStdIn cmp #$03 Ctrl-C beq .99 Abort....beq=CS - cmp #$13 Ctrl-S bne .11 @@ -275,17 +267,14 @@ CS.RUN ldy #S.PS.hStdIn bpl .12 clc rts - .13 >LDA.G bPause bpl .11 clc .99 rts - .11 >STZ.G bPause .12 >LDA.G SRC.COUNT root file is already opened? bne .10 - >LDA.G ASM.PASS inc >PUSHA @@ -295,35 +284,26 @@ CS.RUN ldy #S.PS.hStdIn ldy #SRC.hFILENAME lda (pData),y - >SYSCALL GetMemPtr - jsr FIO.OpenFile bcs .99 - jsr DIR.Reset jsr SYM.Reset jsr MAC.Reset - .10 >LDYA ZPLineBuf >STYA ZPLinePtr - >LDA.G MAC.StkPtr beq .20 - jsr MAC.ReadLine bcc .2 cmp #E.EMPTYKEY bne .9 >DEC.G MAC.Depth - .20 jsr FIO.ReadLine bcc .2 cmp #MLI.E.EOF End Of File? bne .9 - jsr FIO.FileClose - >LDA.G SRC.COUNT end of root file ? bne .8 no continue back to previous file @@ -335,21 +315,16 @@ CS.RUN ldy #S.PS.hStdIn sta (pData),y clc rts - .1 jsr SYM.Dump >LDYA L.MSG.END >SYSCALL puts - lda #0 End of assembly, exit with no error sec rts - .2 jsr SRC.ParseLine bcs .9 - jsr OUT.PrintLine - .8 clc rts @@ -370,25 +345,17 @@ CS.QUIT jsr FIO.FileClose jsr MAC.Quit jsr SYM.Quit - >LDA.G ASM.T.hMem beq .1 - >SYSCALL FreeMem - .1 >LDA.G SRC.hFILENAME beq .2 - >SYSCALL FreeMem - .2 >LDA.G SRC.hLineBuf beq .3 - >SYSCALL FreeMem - .3 >LDA.G SRC.hTmpBuf beq .8 - >SYSCALL FreeMem .8 clc diff --git a/BIN/ATBROWSE.S.txt b/BIN/ATBROWSE.S.txt index 56f166f0..dfc3b4e9 100644 --- a/BIN/ATBROWSE.S.txt +++ b/BIN/ATBROWSE.S.txt @@ -28,7 +28,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -46,17 +46,14 @@ CS.INIT clc CS.RUN >STZ.G P.GetInfo Sync lda #ATGetInfo >STA.G P.GetInfo+1 - jsr A2osX.ATKCALL bcc .10 - pha >LDYA L.MSG.NOATK >SYSCALL printf pla sec -.99 rts - +.99 rts .10 >LDA.G P.GetInfo+$E NODE >PUSHA >PUSHW.G P.GetInfo+$8 NET @@ -66,40 +63,29 @@ CS.RUN >STZ.G P.GetInfo Sync >STZ.G P.LookupName Sync lda #ATLookupName >STA.G P.LookupName+1 - >LDYA L.SEARCH.STRING >STYA.G P.LookupName+$08 Entry Name Ptr lda #4 >STA.G P.LookupName+$C RetInt >STA.G P.LookupName+$D RetCnt - >LDYAI 1024 >STYA.G P.LookupName+$10 BufLen - >SYSCALL getmem bcs .99 - >STYA.G P.LookupName+$12 BufPtr - >STYA ZPPTR1 - txa >STA.G hBuf - lda #16 >STA.G P.LookupName+$16 MaxMatch - jsr A2osX.ATKCALL bcs .99 - >LDA.G P.LookupName+$17 beq .8 - >LDYA L.MSG.DUMP0 >SYSCALL printf bcs .9 - .1 lda ZPPTR1 clc adc #5 @@ -107,19 +93,15 @@ CS.RUN >STZ.G P.GetInfo Sync lda ZPPTR1+1 adc #0 sta ZPPTR2+2 - >PUSHW ZPPTR2 ldy #4 - .2 >PUSHB (ZPPTR1),y dey bpl .2 - >LDYA L.MSG.DUMP >SYSCALL printf bcs .9 - lda ZPPTR2 sec adc (ZPPTR2) @@ -127,10 +109,8 @@ CS.RUN >STZ.G P.GetInfo Sync lda ZPPTR2+1 adc #0 sta ZPPTR1+1 - >DEC.G P.LookupName+$17 bne .2 - lda #0 .8 sec .9 rts diff --git a/BIN/ATLOGON.S.txt b/BIN/ATLOGON.S.txt index ce02ddf7..beab4420 100644 --- a/BIN/ATLOGON.S.txt +++ b/BIN/ATLOGON.S.txt @@ -27,7 +27,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -43,17 +43,13 @@ CS.RUN stz K.MLI.PARAMS Sync sta K.MLI.PARAMS+1 >MLICALL MLIATALK bcc .10 - pha >LDYA L.MSG.NOATK >SYSCALL printf pla sec -.99 rts - -.10 - - lda #0 +.99 rts +.10 lda #0 .8 sec .9 rts *-------------------------------------- diff --git a/BIN/BMP2PIX.S.txt b/BIN/BMP2PIX.S.txt index d5429924..93754fd8 100644 --- a/BIN/BMP2PIX.S.txt +++ b/BIN/BMP2PIX.S.txt @@ -24,7 +24,7 @@ S.BMP .EQ $36 *-------------------------------------- .DUMMY .OR ZPBIN -ZS.START +ZS.START ZPPTR1 .BS 2 ZPInputBuf .BS 2 ZPInputBufPtr .BS 2 @@ -64,7 +64,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -82,50 +82,40 @@ CS.RUN .1 >INC.G ArgCount >SYSCALL ArgV bcs .7 - >STYA ZPPtr1 - lda (ZPPtr1) cmp #'-' bne .4 - ldy #1 lda (ZPPtr1),y ldx OptionList - .2 cmp OptionList,x beq .3 dex bne .2 - .99 >PUSHBI 0 >LDYA L.MSG.USAGE >SYSCALL printf lda #E.SYN sec rts - .3 ldy OptionVars-1,x lda #$80 sta (pData),y bra .1 - .4 >LDA.G hInputFile bne .5 jsr CS.RUN.OpenInput bcc .1 scan for any other args rts - .5 >LDA.G hOutputFile bne .99 jsr CS.RUN.CreateOutput bcc .1 scan for any other args .9 rts - .7 >LDA.G hOutputFile beq .99 - >LDA.G BMP.Header+S.BMP.BPP cmp #1 beq CS.RUN.1 @@ -137,12 +127,10 @@ CS.RUN.1 lda #S.BM.F.BBP1 * >LDA.G PIX.Header+S.BM.W * sta ZPBMPRowBytes * sta ZPPIXRowBytes - * iny * lda (pData),y * sta ZPBMPRowBytes+1 * sta ZPPIXRowBytes+1 - * lda ZPBMPRowBytes * and #%00011111 * beq .1 @@ -151,9 +139,7 @@ CS.RUN.1 lda #S.BM.F.BBP1 * clc * adc #%00100000 * bcc .1 - * inc ZPBMPRowBytes+1 -* *.1 lsr ZPBMPRowBytes+1 * ror * lsr ZPBMPRowBytes+1 @@ -161,7 +147,6 @@ CS.RUN.1 lda #S.BM.F.BBP1 * lsr ZPBMPRowBytes+1 * ror * sta ZPBMPRowBytes - * lda ZPPIXRowBytes * and #%00000111 * beq .2 @@ -170,10 +155,9 @@ CS.RUN.1 lda #S.BM.F.BBP1 * clc * adc #%00001000 * bcc .2 - * inc ZPPIXRowBytes+1 - -*.2 lsr ZPPIXRowBytes+1 + *.2 + lsr ZPPIXRowBytes+1 * ror * lsr ZPPIXRowBytes+1 * ror @@ -181,7 +165,6 @@ CS.RUN.1 lda #S.BM.F.BBP1 * ror * sta ZPPIXRowBytes * >STA.G PIX.Header+S.BM.RowBytes - * lda ZPInputBufPtr * clc * adc ZPInputBufLen @@ -189,15 +172,12 @@ CS.RUN.1 lda #S.BM.F.BBP1 * lda ZPInputBufPtr+1 * adc ZPInputBufLen+1 * sta ZPInputDataPtr+1 - * jsr CS.RUN.WRITE.HDR * bcs CS.RUN.RTS - *CS.RUN.1.LOOP inc ZPLineCount * bne .1 * inc ZPLineCount+1 * beq .8 - *.1 lda ZPInputDataPtr * sec * sbc ZPBMPRowBytes @@ -205,39 +185,27 @@ CS.RUN.1 lda #S.BM.F.BBP1 * lda ZPInputDataPtr+1 * sbc ZPBMPRowBytes+1 * sta ZPInputDataPtr+1 - * >LDYA ZPBufPtr * >STYA ZPPTR1 - * ldy #0 - *.2 lda (ZPInputDataPtr),y * tax * lda TWIST,x * sta (ZPPTR1) * inc ZPPTR1 * bne .3 - * inc ZPPTR1+1 - *.3 iny * cpy ZPPIXRowBytes * bne .2 - * >PUSHW ZPPIXRowBytes * >PUSHW ZPOutputBufPtr * >LDA.G hOutputFile * >SYSCALL FWrite * bcs CS.RUN.RTS - - - * bra CS.RUN.1.LOOP - - *.8 >LDYA L.MSG.DONE * >SYSCALL puts - * lda #0 * sec CS.RUN.RTS rts @@ -248,20 +216,16 @@ CS.RUN.24 lda #S.BM.F.BBP4 >LDA.G BMP.Header+S.BMP.W asl sta ZPInputRowBytes - >LDA.G BMP.Header+S.BMP.W+1 rol sta ZPInputRowBytes+1 - lda ZPInputRowBytes clc >ADC.G BMP.Header+S.BMP.W pha - lda ZPInputRowBytes+1 >ADC.G BMP.Header+S.BMP.W+1 tax - pla bit #%00000011 beq .1 @@ -271,40 +235,31 @@ CS.RUN.24 lda #S.BM.F.BBP4 bcc .1 inx - .1 sta ZPInputRowBytes stx ZPInputRowBytes+1 - >LDYA ZPInputRowBytes >SYSCALL getmem bcs CS.RUN.RTS - >STYA ZPInputBuf txa >STA.G hInputBuf - >LDA.G PIX.Header+S.BM.W+1 lsr tax >LDA.G PIX.Header+S.BM.W ror bcc .2 - inc bne .2 inx - .2 sta ZPOutputRowBytes stx ZPOutputRowBytes+1 >STA.G PIX.Header+S.BM.RowBytes * txa * >STA.G PIX.Header+S.BM.RowBytes+1 - jsr CS.RUN.GetOutputBuf bcs CS.RUN.RTS - jsr DEBUG.ClrScr - lda #$ff sta ZPCntY @@ -312,15 +267,11 @@ CS.RUN.24.LOOP inc ZPLineCount bne .1 inc ZPLineCount+1 beq .8 - .1 inc ZPCntY - lda #$ff sta ZPCntX - jsr CS.RUN.ReadInput bcs .9 - lda ZPOutputBuf sec sbc ZPOutputRowBytes @@ -333,39 +284,31 @@ CS.RUN.24.LOOP inc ZPLineCount bne .3 inc ZPPixelCount+1 beq CS.RUN.24.LOOP - .3 inc ZPCntX - ldx #2 ldy #0 - .4 lda (ZPInputBufPtr),y sta ZPPixel24,x iny dex bpl .4 - lda ZPInputBufPtr clc adc #3 sta ZPInputBufPtr bcc .5 inc ZPInputBufPtr+1 - .5 jsr CS.RUN.GetNearestColor pha jsr DEBUG.PLOT - lda ZPCntX lsr tay - pla bcs .6 sta (ZPOutputBuf),y bra .2 - .6 asl asl asl @@ -376,35 +319,29 @@ CS.RUN.24.LOOP inc ZPLineCount .8 jsr CS.RUN.WriteOutput bcs .9 - lda #0 sec .9 rts *-------------------------------------- CS.RUN.GetNearestColor stz ZPPixelIndex16 - lda #$ff sta ZPPixelBest sta ZPPixelBest+1 sta ZPPixelBest+2 - ldy #63 .30 stz ZPPixelScore stz ZPPixelScore+1 stz ZPPixelScore+2 - ldx #2 .40 lda PALETTE.RGB-1,y sec sbc ZPPixel24,x bcs .5 - eor #$ff inc - .5 phx sta ZBTmpB1 @@ -418,31 +355,25 @@ CS.RUN.GetNearestColor bcc .2 clc adc ZBTmpB1 - .2 ror ror ZBTmpW dex bne .1 - sta ZBTmpW+1 - lda ZPPixelScore clc adc ZBTmpW sta ZPPixelScore - lda ZPPixelScore+1 adc ZBTmpW+1 sta ZPPixelScore+1 bcc .3 inc ZPPixelScore+2 - .3 plx dey dex bpl .40 - lda ZPPixelBest cmp ZPPixelScore lda ZPPixelBest+1 @@ -450,14 +381,12 @@ CS.RUN.GetNearestColor lda ZPPixelBest+2 sbc ZPPixelScore+2 bcc .8 - lda ZPPixelScore sta ZPPixelBest lda ZPPixelScore+1 sta ZPPixelBest+1 lda ZPPixelScore+2 sta ZPPixelBest+2 - tya lsr lsr @@ -465,9 +394,8 @@ CS.RUN.GetNearestColor .8 dey bpl .30 - lda ZPPixelIndex16 -CS.RUN.GetIndexInPalette.RTS +CS.RUN.GetIndexInPalette.RTS rts *-------------------------------------- CS.RUN.OpenInput @@ -477,7 +405,6 @@ CS.RUN.OpenInput >LDYA ZPPtr1 >SYSCALL fopen bcs CS.RUN.GetIndexInPalette.RTS - >STA.G hInputFile >PUSHWI S.BMP @@ -485,62 +412,51 @@ CS.RUN.OpenInput >LDA.G hInputFile >SYSCALL FRead bcs CS.RUN.GetIndexInPalette.RTS - >LDA.G BMP.Header+S.BMP.SIG cmp #'B' bne .99 - iny lda (pData),y cmp #'M' bne .99 - >LDA.G BMP.Header+S.BMP.BPP+1 bne .99 dey lda (pData),y cmp #1 beq .1 - cmp #24 bne .99 - .1 >PUSHA >LDA.G BMP.Header+S.BMP.H >STA.G PIX.Header+S.BM.H pha eor #$ff sta ZPLineCount - >LDA.G BMP.Header+S.BMP.H+1 >STA.G PIX.Header+S.BM.H+1 >PUSHA eor #$ff sta ZPLineCount+1 - pla >PUSHA - >LDA.G BMP.Header+S.BMP.W >STA.G PIX.Header+S.BM.W pha - >LDA.G BMP.Header+S.BMP.W+1 >STA.G PIX.Header+S.BM.W+1 >PUSHA pla >PUSHA - >PUSHBI 5 >LDYA L.MSG.HEADER.OK >SYSCALL printf .9 rts - .99 >LDYA L.MSG.HEADER.KO >SYSCALL puts lda #E.IBIN sec - rts + rts *-------------------------------------- CS.RUN.ReadInput >PUSHW ZPInputRowBytes @@ -548,10 +464,8 @@ CS.RUN.ReadInput >LDA.G hInputFile >SYSCALL FRead bcs .9 - >LDYA ZPInputBuf >STYA ZPInputBufPtr - >LDA.G BMP.Header+S.BMP.W eor #$ff sta ZPPixelCount @@ -568,30 +482,25 @@ CS.RUN.CreateOutput >SYSCALL FOpen bcs .9 >STA.G hOutputFile -.9 rts +.9 rts *-------------------------------------- CS.RUN.GetOutputBuf stz ZPPtr1 stz ZPPtr1+1 - ldy ZPLineCount ldx ZPLineCount+1 - .1 iny bne .2 inx beq .8 - .2 lda ZPPtr1 clc adc ZPOutputRowBytes sta ZPPtr1 - lda ZPPtr1+1 adc ZPOutputRowBytes+1 sta ZPPtr1+1 bra .1 - .8 >LDYA ZPPtr1 >SYSCALL Getmem bcs .9 @@ -605,7 +514,6 @@ CS.RUN.GetOutputBuf clc adc ZPOutputBuf sta ZPOutputBuf - lda ZPPtr1+1 >STA.G OutputDataLen+1 adc ZPOutputBuf+1 @@ -620,12 +528,10 @@ CS.RUN.WriteOutput >LDA.G hOutputFile >SYSCALL FWrite bcs .9 - >PUSHW.G OutputDataLen >PUSHW ZPOutputBuf >LDA.G hOutputFile >SYSCALL FWrite - .9 rts *-------------------------------------- CS.DOEVENT sec @@ -638,32 +544,26 @@ CS.QUIT >LDA.G hOutputBuf .1 >LDA.G hInputBuf beq .2 >SYSCALL FreeMem - .2 >LDA.G hOutputFile beq .3 >SYSCALL fclose - .3 >LDA.G hInputFile beq .8 >SYSCALL fclose - .8 clc rts *-------------------------------------- DEBUG.ClrScr sta SETMIXED sta CLRTEXT - ldx #19 - .1 lda SCR.BASEL,x sta ZPPTR1 lda SCR.BASEH,x sta ZPPTR1+1 lda #0 - ldy #39 .2 sta SETPAGE2 @@ -673,7 +573,6 @@ DEBUG.ClrScr sta SETMIXED dey bpl .2 - dex bpl .1 rts @@ -681,11 +580,9 @@ DEBUG.ClrScr sta SETMIXED DEBUG.PLOT php sei pha - lda ZPCntX cmp #80 bcs .9 - lsr tay @@ -695,11 +592,9 @@ DEBUG.PLOT php plx lda PALETTE.AUX,x pha - .1 lda ZPCntY cmp #40 bcs .9 - lda #39 sec sbc ZPCntY @@ -709,21 +604,17 @@ DEBUG.PLOT php sta ZPPTR1 lda SCR.BASEH,x sta ZPPTR1+1 - pla bcc .2 - asl asl asl asl - .2 ora (ZPPTR1),y sta (ZPPTR1),y sta CLRPAGE2 plp rts - .9 pla plp rts diff --git a/BIN/CAT.S.txt b/BIN/CAT.S.txt index 78ab370e..16ed4b34 100644 --- a/BIN/CAT.S.txt +++ b/BIN/CAT.S.txt @@ -44,7 +44,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -64,45 +64,36 @@ CS.RUN lda ArgCount >SYSCALL ArgV bcs .7 - >STYA ZPPtr1 lda (ZPPtr1) cmp #'-' bne .4 - ldy #1 lda (ZPPtr1),y ldx OptionList - .2 cmp OptionList,x beq .3 dex bne .2 - .99 >PUSHBI 0 >LDYA L.MSG.USAGE >SYSCALL printf lda #E.SYN sec .9 rts - .3 ldy OptionVars-1,x lda #$80 sta 0,y bra .1 - .4 inc FileCount bra .1 scan for any other args - .7 lda FileCount beq .99 - >LDYAI 256 >SYSCALL GetMem bcs .9 - >STYA ZPBufPtr stx hBuf *-------------------------------------- @@ -110,16 +101,13 @@ CS.RUN.LOOP ldy #S.PS.hStdIn lda (pPS),y >SYSCALL feof bcs .90 IO error - tay bne .10 no char >SYSCALL GetChar bcs .9 IO error - cmp #$03 Ctrl-C beq .9 Abort.... - cmp #$13 Ctrl-S bne .10 @@ -127,29 +115,22 @@ CS.RUN.LOOP ldy #S.PS.hStdIn eor #$ff sta bPause bne CS.RUN.LOOP - .10 lda bPause bne CS.RUN.LOOP Pause... .11 lda hFILE bne .2 - .1 inc ArgIndex lda ArgIndex >SYSCALL ArgV bcs .99 No more arg...the end! - >STYA ZPPtr1 - lda (ZPPtr1) cmp #'-' beq .1 An option, skip... - >LDYA ZPPtr1 - jsr CS.RUN.OPEN .90 bcs .9 - sta hFILE .2 >PUSHWI 254 Leave room for CRLF @@ -162,12 +143,9 @@ CS.RUN.LOOP ldy #S.PS.hStdIn jsr CS.RUN.PRINT bcc CS.RUN.LOOP rts - .7 cmp #MLI.E.EOF bne .9 - jsr CS.RUN.CLOSE - jmp CS.RUN.LOOP .99 lda #0 Exit with no Error @@ -175,13 +153,10 @@ CS.RUN.LOOP ldy #S.PS.hStdIn rts *-------------------------------------- CS.RUN.OPEN pha - stz bPrintedBlankLine Reset this flag for the new file - >PUSHWZ Aux type >PUSHBI S.FI.T.TXT >PUSHBI O.RDONLY+O.TEXT - pla >SYSCALL FOpen rts @@ -189,37 +164,28 @@ CS.RUN.OPEN pha CS.RUN.PRINT inc LineNum bne .10 inc LineNum+1 - .10 lda bSuppressBlankLine bpl .2 - lda (ZPBufPtr) bne .1 Empty line ? lda bPrintedBlankLine bmi .8 - lda #$ff sta bPrintedBlankLine bra .2 - .1 stz bPrintedBlankLine - .2 jsr CS.RUN.PRINTNUM bcs .99 - lda bPrintAll bmi .3 ldy #$ff - .20 iny lda (ZPBufPtr),y beq .21 - cmp #C.SPACE bcs .20 - lda #C.SPACE sta (ZPBufPtr),y bra .20 @@ -229,29 +195,23 @@ CS.RUN.PRINT inc LineNum rts .3 stz ByteIndex - .4 ldy ByteIndex lda (ZPBufPtr),y beq .7 - cmp #C.SPACE bcc .5 - >SYSCALL putchar .99 bcs .9 bra .62 .8 clc rts - .5 tax >LDYA L.ASCII >STYA ZPPtr1 - .6 dex bmi .61 - lda ZPPtr1 sec adc (ZPPtr1) @@ -259,22 +219,19 @@ CS.RUN.PRINT inc LineNum bcc .6 inc ZPPtr1+1 bra .6 - .61 >PUSHW ZPPtr1 >PUSHBI 2 >LDYA L.MSG.CTRLCHAR >SYSCALL printf bcs .9 - .62 inc ByteIndex bne .4 - .7 >PUSHBI 2 >LDYA L.MSG.CRLF >SYSCALL printf -.9 rts +.9 rts *-------------------------------------- CS.RUN.PRINTNUM clc lda bLineNum @@ -293,10 +250,8 @@ CS.QUIT lda hBuf CS.RUN.CLOSE lda hFILE beq .8 - stz hFILE >SYSCALL FClose - .8 clc rts *-------------------------------------- diff --git a/BIN/CHMOD.S.txt b/BIN/CHMOD.S.txt index 0fb268e8..3f2f08e3 100644 --- a/BIN/CHMOD.S.txt +++ b/BIN/CHMOD.S.txt @@ -58,28 +58,23 @@ CS.RUN >INC.G ArgIndex >SYSCALL ArgV bcs .8 >STYA ZPPtr1 - lda (ZPPtr1) cmp #'-' bne .4 - ldy #1 lda (ZPPtr1),y ldx OptionList - .2 cmp OptionList,x beq .3 dex bne .2 - .9 >PUSHBI 0 >LDYA L.MSG.USAGE >SYSCALL printf lda #E.SYN sec .99 rts - .3 ldy OptionVars-1,x lda #$80 sta (pData),y @@ -91,24 +86,18 @@ CS.RUN >INC.G ArgIndex >LDA.G ArgIndex >STA.G StrMode bra CS.RUN - .5 >LDA.G hSrcBasePath bne .9 - >LDYA ZPPtr1 jsr InitSrcDirYA bcc CS.RUN rts - .8 >LDA.G StrMode beq .9 - jsr CS.RUN.Str2Mode bcs .9 - >LDA.G hSrcBasePath beq .9 - >LDYAI 256 >SYSCALL getmem bcs .99 @@ -120,16 +109,12 @@ CS.RUN.LOOP ldy #S.PS.hStdIn lda (pPS),y >SYSCALL feof bcs .99 - tay bne .1 - >SYSCALL GetChar bcs .99 - cmp #$03 Ctrl-C beq .99 Abort.... - cmp #$13 Ctrl-S bne .1 @@ -137,20 +122,16 @@ CS.RUN.LOOP ldy #S.PS.hStdIn eor #$ff sta (pData),y bne CS.RUN.LOOP - .1 >LDA.G bPause bne CS.RUN.LOOP Pause... jsr GetEntry bcs .9 - ldy #S.STAT.P.DRIVE lda (ZPFileStat),y ProDOS Device ? beq .5 - jsr CS.RUN.DEV bcc CS.RUN.LOOP rts - .5 ldy #S.STAT.P.TYPE lda (ZPFileStat),y cmp #$0F Directory ? @@ -158,102 +139,77 @@ CS.RUN.LOOP ldy #S.PS.hStdIn jsr CS.RUN.DIR bcs .99 - bra .8 - + bra .8 .6 jsr CS.RUN.FILE bcs .99 - bra .8 - + bra .8 .9 jsr LeaveSubDir bcs .90 jsr BasePath.. - .8 jsr GetNextEntry jmp CS.RUN.LOOP - .90 lda #0 sec .99 rts *-------------------------------------- CS.RUN.DEV lda #E.BADPATH - sec + sec rts *-------------------------------------- CS.RUN.DIR >LDA.G bRecurse bpl .8 - lda (ZPFileName) cmp #'.' beq .8 - jsr CS.RUN.GetFilePath - >PUSHW ZPFullPath - >PUSHBI 2 >LDYA L.MSG.DIR >SYSCALL printf bcs .9 - >PUSHW ZPMode >LDYA ZPFullPath >SYSCALL chmod jsr CS.RUN.CheckErr - >LDYA ZPFileName jsr EnterSubDirYA rts - .8 clc .9 rts *-------------------------------------- CS.RUN.FILE jsr FilterMatch bcs .8 no match, skip.... - jsr CS.RUN.GetFilePath - >PUSHW ZPFullPath - >PUSHBI 2 >LDYA L.MSG.FILE >SYSCALL printf bcs .9 - >PUSHW ZPMode >LDYA ZPFullPath >SYSCALL chmod - jsr CS.RUN.CheckErr - .8 clc .9 rts *-------------------------------------- CS.RUN.Str2Mode >SYSCALL ArgV >STYA ZPPtr1 - ldy #$ff - .1 iny lda (ZPPtr1),y bne .1 - cpy #3 bne .9 - stz ZPMode stz ZPMode+1 - dey - .2 lda (ZPPtr1),y - cmp #'0' bcc .9 cmp #'7'+1 bcs .9 - asl ZPMode rol ZPMode+1 asl ZPMode @@ -266,13 +222,11 @@ CS.RUN.Str2Mode >SYSCALL ArgV sta ZPMode bcc .3 inc ZPMode+1 - .3 dey bpl .2 clc rts - .9 sec rts *-------------------------------------- @@ -280,14 +234,11 @@ CS.RUN.CheckErr bcs .1 >LDYA L.MSG.OK >SYSCALL puts rts - .1 pha >PUSHA >PUSHBI 1 >LDYA L.MSG.ERR - >SYSCALL printf - >LDA.G bContinue eor #$80 asl @@ -298,11 +249,8 @@ CS.RUN.GetFilePath >LDA.G hSrcBasePath >SYSCALL GetMemPtr >PUSHYA - >LDYA ZPFullPath - >SYSCALL StrCpy - >PUSHW ZPFileName >LDYA ZPFullPath >SYSCALL StrCat @@ -313,15 +261,12 @@ CS.DOEVENT sec *-------------------------------------- CS.QUIT jsr LeaveSubDir bcc CS.QUIT - >LDA.G hFilter beq .1 >SYSCALL FreeMem - .1 >LDA.G hSrcFullPath beq .8 >SYSCALL FreeMem - .8 clc rts *-------------------------------------- diff --git a/BIN/CHTYP.S.txt b/BIN/CHTYP.S.txt index bc86b775..c16312f2 100644 --- a/BIN/CHTYP.S.txt +++ b/BIN/CHTYP.S.txt @@ -51,46 +51,37 @@ CS.INIT >SYSCALL ArgV bcs .7 >STYA ZPPtr1 - lda (ZPPtr1) cmp #'-' bne .4 - ldy #1 lda (ZPPtr1),y ldx OptionList - .2 cmp OptionList,x beq .3 dex bne .2 - .99 >PUSHBI 0 >LDYA L.MSG.USAGE >SYSCALL printf lda #E.SYN sec rts - .3 ldy OptionVars-1,x lda #$80 sta (pData),y bra .1 - .4 ldy #index lda (pData),y bne .5 - >LDYA ZPPtr1 jsr InitSrcDirYA bcc .1 rts - -.5 ldy #HexFileType +.5 ldy #HexFileType lda (pData),y bne .99 - jsr GetHexFileType bcs .99 bra .1 @@ -99,17 +90,15 @@ CS.INIT lda (pData),y beq .99 , no src ? ERROR - ldy #HexFileType + ldy #HexFileType lda (pData),y beq .99 we also have a TYPE - >LDYAI 256 >SYSCALL getmem bcs .99 >STYA ZPFullPath txa >STA.G hSrcFullPath - clc rts *-------------------------------------- @@ -117,16 +106,12 @@ CS.RUN ldy #S.PS.hStdIn lda (pPS),y >SYSCALL feof bcs .99 - tay bne .10 - >SYSCALL GetChar bcs .99 - cmp #$03 Ctrl-C beq .92 Abort.... - cmp #$13 Ctrl-S bne .10 @@ -134,36 +119,28 @@ CS.RUN ldy #S.PS.hStdIn eor #$ff sta (pData),y bne .80 - .10 >LDA.G bPause bne .80 Pause... - jsr GetEntry bcs .9 - jsr FilterMatch bcs .8 no match, skip.... - ldy #S.STAT.P.DRIVE lda (ZPFileStat),y ProDOS Device ? bne CS.RUN.DEV - ldy #S.STAT.P.TYPE lda (ZPFileStat),y cmp #$0F Directory ? bne CS.RUN.FILE jmp CS.RUN.DIR - .9 jsr LeaveSubDir bcs .92 jsr BasePath.. - .8 jsr GetNextEntry .80 clc rts - .92 lda #0 sec .99 rts @@ -171,36 +148,29 @@ CS.RUN ldy #S.PS.hStdIn CS.RUN.DIR CS.RUN.DEV .8 jsr GetNextEntry - clc -.9 rts + clc.9 + rts *-------------------------------------- CS.RUN.FILE jsr CS.RUN.GetFilePath - >PUSHW ZPFullPath - >PUSHBI 2 >LDYA L.MSG.FILE >SYSCALL printf bcs .9 - ldy #HexFileType >PUSHB (pData),y >LDYA ZPFullPath >SYSCALL ChTyp jsr CS.RUN.CheckErr - >LDA.G bRecurse bpl .8 - lda (ZPFileName) cmp #'.' beq .8 - >LDYA ZPFileName jsr EnterSubDirYA rts - .8 jsr GetNextEntry clc .9 rts @@ -209,14 +179,11 @@ CS.RUN.CheckErr bcs .1 >LDYA L.MSG.OK >SYSCALL puts rts - .1 pha >PUSHA >PUSHBI 1 >LDYA L.MSG.ERR - >SYSCALL printf - >LDA.G bContinue eor #$80 asl @@ -227,11 +194,8 @@ CS.RUN.GetFilePath >LDA.G hSrcBasePath >SYSCALL GetMemPtr >PUSHYA - >LDYA ZPFullPath - >SYSCALL StrCpy - >PUSHW ZPFileName >LDYA ZPFullPath >SYSCALL StrCat @@ -242,15 +206,12 @@ CS.DOEVENT sec *-------------------------------------- CS.QUIT jsr LeaveSubDir bcc CS.QUIT - >LDA.G hFilter beq .1 >SYSCALL FreeMem - .1 >LDA.G hSrcFullPath beq .8 >SYSCALL FreeMem - .8 clc rts *-------------------------------------- @@ -262,11 +223,9 @@ GetHexFileType ldy #$ff cpy #3 bne .9 - lda (ZPPtr1) cmp #'0' bne .1 - ldy #1 lda (ZPPtr1),y jsr IsDigit16 @@ -276,12 +235,10 @@ GetHexFileType ldy #$ff asl asl >STA.G HexFileType - ldy #2 lda (ZPPtr1),y jsr IsDigit16 bcs .9 - >ORA.G HexFileType sta (pData),y clc @@ -290,7 +247,6 @@ GetHexFileType ldy #$ff .1 ldx #0 >LDYA L.PRODOS.FT.TXT >STYA ZPPtr2 - .2 ldy #2 .21 lda (ZPPtr1),y @@ -299,17 +255,14 @@ GetHexFileType ldy #$ff cmp #'z'+1 bcs .4 eor #$20 - .4 cmp (ZPPtr2),y bne .5 dey bpl .21 - lda PRODOS.FT.ID,x >STA.G HexFileType clc rts - .5 clc lda ZPPtr2 adc #3 @@ -320,7 +273,6 @@ GetHexFileType ldy #$ff inx cpx #PRODOS.FT.COUNT bne .2 - .9 sec rts *--------------------------------------- @@ -328,27 +280,22 @@ IsDigit16 cmp #'0' bcc .9 cmp #'9'+1 bcc .8 - cmp #'A' bcc .9 cmp #'F'+1 bcc .1 - cmp #'a' bcc .9 cmp #'f'+1 bcs .9 eor #$20 - -.1 +.1 * clc sbc #'A'-11 cc so A->10 (11-CC) clc - -.8 and #$0F +.8 and #$0F rts - .9 sec rts *-------------------------------------- diff --git a/BIN/CMP.S.txt b/BIN/CMP.S.txt index 7bd7470b..a4df14ed 100644 --- a/BIN/CMP.S.txt +++ b/BIN/CMP.S.txt @@ -50,7 +50,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -67,72 +67,57 @@ CS.RUN lda ArgIndex >SYSCALL ArgV bcs .7 - >STYA ZPPtr1 lda (ZPPtr1) cmp #'-' bne .2 - jsr CS.RUN.CheckOpt bcc .1 - .99 >PUSHBI 0 >LDYA L.MSG.USAGE >SYSCALL printf lda #E.SYN sec .9 rts - .2 lda hFile1 bne .3 - jsr CS.RUN.OPEN bcs .9 sta hFile1 - >LDYAI 256 >SYSCALL GetMem bcs .9 - >STYA ZPBufPtr1 stx hBuf1 bra .1 - .3 lda hFile2 bne .4 - jsr CS.RUN.OPEN bcs .9 sta hFile2 - >LDYAI 256 >SYSCALL GetMem bcs .9 - >STYA ZPBufPtr2 stx hBuf2 bra .1 .4 bit bSkip1 bmi .5 - jsr CS.RUN.SEEK bcs .9 sec ror bSkip1 bra .1 - .5 bit bSkip2 bmi .99 - sta bSkip2 jsr CS.RUN.SEEK bcs .9 sec ror bSkip2 jmp .1 - .7 lda hFile2 beq .99 lda hFile1 @@ -142,16 +127,13 @@ CS.RUN.LOOP ldy #S.PS.hStdIn lda (pPS),y >SYSCALL feof bcs .9 IO error - tay bne .1 no char >SYSCALL GetChar bcs .9 IO error - cmp #$03 Ctrl-C beq .9 Abort.... - cmp #$13 Ctrl-S bne .1 @@ -159,7 +141,6 @@ CS.RUN.LOOP ldy #S.PS.hStdIn eor #$ff sta bPause bne CS.RUN.LOOP - .1 lda bPause bne CS.RUN.LOOP Pause... @@ -168,40 +149,31 @@ CS.RUN.LOOP ldy #S.PS.hStdIn cmp #MLI.E.EOF bne .9 bra .99 - .2 >STYA BufCnt jsr CS.RUN.READ2 - bcc .20 cmp #MLI.E.EOF bne .9 bra .99 - .20 cpy BufCnt pha sbc BufCnt+1 pla bcc .3 >STYA BufCnt - .3 ldy #0 .4 lda (ZPBufPtr1),y cmp (ZPBufPtr2),y beq .8 - lda #$E0 sta bDiff - bit bVerbose bpl .5 - jsr CS.RUN.Print bcs .9 - .5 bit bAll bpl .99 - .8 iny cpy BufCnt bne .4 @@ -209,7 +181,6 @@ CS.RUN.LOOP ldy #S.PS.hStdIn bne CS.RUN.LOOP inc Offset+1 bra CS.RUN.LOOP - .99 lda bDiff .9 sec rts @@ -217,7 +188,6 @@ CS.RUN.LOOP ldy #S.PS.hStdIn CS.RUN.OPEN >PUSHWZ Aux type >PUSHBI 0 Type >PUSHBI O.RDONLY - >LDYA ZPPtr1 >SYSCALL FOpen rts @@ -227,17 +197,14 @@ CS.RUN.SEEK >LDYA ZPPtr1 bcs .9 >PULLL SeekOfs - lda bSkip1 bmi .1 - >PUSHBI SEEK.SET >PUSHL SeekOfs lda hFile1 >SYSCALL fseek bcs .9 - .1 >PUSHBI SEEK.SET >PUSHL SeekOfs lda hFile2 @@ -264,7 +231,6 @@ CS.RUN.Print phy >PUSHA >PUSHW Offset >PUSHBI 5 - >LDYA L.MSG.DIFF >SYSCALL printf ply @@ -273,7 +239,6 @@ CS.RUN.Print phy CS.QUIT lda hFile2 beq .1 >SYSCALL FClose - .1 lda hFile1 beq .2 >SYSCALL FClose @@ -285,7 +250,6 @@ CS.QUIT lda hFile2 .3 lda hBuf1 beq .8 >SYSCALL FreeMem - .8 clc rts *-------------------------------------- @@ -304,7 +268,6 @@ CS.RUN.CheckOpt ldy #1 sec rts - .3 ldy OptionVars,x lda #$ff sta 0,y diff --git a/BIN/CSH.I.txt b/BIN/CSH.I.txt index c37727bd..e4e87ba2 100644 --- a/BIN/CSH.I.txt +++ b/BIN/CSH.I.txt @@ -29,7 +29,7 @@ CSH.PREOPS >PSTR "+" *-------------------------------------- CSH.POSTOPS >PSTR "++" >PSTR "--" - .HS 00 + .HS 00 *-------------------------------------- * Assignment Operators: = += -= *= /= %= <<= >>= &= ^= |= *-------------------------------------- @@ -114,7 +114,6 @@ CSH.FN >PSTR "printf" >PSTR "getchar" .DA #CSH.T.CHAR returned value .DA #0 - .DA #0 *-------------------------------------- MAN diff --git a/BIN/CSH.S.CORE.txt b/BIN/CSH.S.CORE.txt index a448185a..7fc11848 100644 --- a/BIN/CSH.S.CORE.txt +++ b/BIN/CSH.S.CORE.txt @@ -5,7 +5,6 @@ NEW CSH.Init >SYSCALL SListNew bcs .9 >STA.G CSH.hSymbols - >LDYAI 256 >SYSCALL GetMem bcs .9 @@ -19,14 +18,11 @@ CSH.Init >SYSCALL SListNew >STYA ZPCSHStack txa >STA.G CSH.hStack - lda #$0 >STA.G CSH.ConstPtr >STA.G CSH.StackPtr - sta (ZPCSHConst) sta (ZPCSHStack) - * clc .9 rts *-------------------------------------- @@ -38,29 +34,22 @@ CSH.Quit >LDA.G CSH.hSymbols >LDA.G CSH.hStack jsr .7 - >LDA.G CSH.hConst jsr .7 - .7 beq CSH.Quit.RTS >SYSCALL FreeMem - CSH.Quit.RTS rts *-------------------------------------- CSH.Run jsr CSH.GetCharNB bcs CSH.Quit.RTS - + CSH.Run.1 cmp #'#' bne .3 comments ... - .1 jsr CSH.GetNextChar bcs .2 - cmp #C.CR bne .1 - .2 jmp CSH.GetNextChar Skip CR and exit - .3 cmp #C.CR beq .2 @@ -69,47 +58,36 @@ CSH.Run.1 cmp #'#' jsr CSH.CheckStack must be something on stack.... bcs .9 - jsr CSH.GetNextCharNB Skip '}' - jsr CSH.Pop was expected.... - jsr CSH.Pop get stacked Cmd... tax jmp (J.CSH.KW.END,x) - .4 jsr CSH.IsLetter bcc .5 - bra .99 error, todo : PREOPS ++ --..... - .5 jsr CSH.SavePtr Save Ptr, in case of while,for.... >LDYA L.CSH.KW jsr CSH.LookupID bcs .6 not an internal CSH keyword.... - jsr CSH.KW.JMP bcs .9 - bra .8 .6 jsr CSH.GetVar bcs .7 >STYA ZPVarID - jsr CSH.GetCharNB bcs .9 cmp #'=' TODO: all AOPS bne .99 - jsr CSH.GetNextChar Skip = bcs .99 - lda #0 Any Type jsr CSH.ExpEval bcs .9 @@ -117,27 +95,20 @@ CSH.Run.1 cmp #'#' >LDYA ZPVarID X = Exp Type jsr CSH.SetVarValueFromStack bcs .9 - jsr CSH.GetChar cmp #';' bne .99 - bra .8 - .7 lda #0 no return value type check required jsr CSH.fCall bcs .9 .8 jsr CSH.GetNextCharNB Skip ; bcs .9 - cmp #C.CR beq .80 - jmp CSH.Run.1 - .80 jmp CSH.GetNextChar Skip CR - .99 lda #CSH.E.SYNTAX sec .9 rts @@ -153,24 +124,20 @@ CSH.IF jsr CSH.GetCharNB bcs .9 cmp #'(' bne .9 - jsr CSH.GetNextCharNB bcs .9 lda #0 Any var type jsr CSH.ExpEval bcs .99 - jsr CSH.GetCharNB bcs .99 cmp #')' bne .9 - jsr CSH.GetNextCharNB skip ')' bcs .99 cmp #'{' bne .9 - jsr CSH.GetNextCharNB Skip '{' bcs .99 @@ -186,21 +153,16 @@ CSH.IF jsr CSH.GetCharNB >LDA.G CSH.BufPtrSave jsr CSH.Push pla - .1 jsr CSH.Push bcs .99 - lda #'}' Tell '}' is expected at the end of block jsr CSH.Push bcs .99 rts - .6 jsr CSH.SkipBlock bcc .99 - - .9 lda #CSH.E.SYNTAX sec .99 rts @@ -249,36 +211,28 @@ CSH.SIGNED jsr CSH.GetChar bcs .9 cmp #C.SPACE bne .9 - jsr CSH.GetNextCharNB bcs .9 - >LDYA L.CSH.STYPES jsr CSH.LookupID bcs .9 - jmp (J.CSH.STYPES,x) - .9 lda #CSH.E.SYNTAX sec - rts + rts *-------------------------------------- CSH.UNSIGNED jsr CSH.GetChar bcs .9 cmp #C.SPACE bne .9 - jsr CSH.GetNextCharNB bcs .9 - >LDYA L.CSH.STYPES jsr CSH.LookupID bcs .9 - jmp (J.CSH.UTYPES,x) - .9 lda #CSH.E.SYNTAX sec rts @@ -299,13 +253,10 @@ CSH.ULONG ldx #CSH.T.ULONG CSH.FLOAT ldx #CSH.T.FLOAT CSH.TYPE stx ZPVarType - jsr CSH.GetChar bcs .9 - cmp #C.SPACE bne .9 - jsr CSH.GetNextCharNB bcs .9 @@ -316,7 +267,6 @@ CSH.TYPE stx ZPVarType bcs .99 OOM or DUP >STYA ZPVarID - jsr CSH.GetCharNB bcs .9 cmp #';' @@ -324,40 +274,32 @@ CSH.TYPE stx ZPVarType ldx ZPVarType jsr CSH.SIZEOF - .1 dec pStack dec bne .1 - ldx ZPVarType bra .7 - .2 cmp #'=' bne .9 - jsr CSH.GetNextCharNB Skip = bcs .9 - lda ZPVarType jsr CSH.ExpEval bcs .99 - .7 >LDYA ZPVarID jsr CSH.AddVarValueFromStack X= Type, Add value to this var bcs .99 - jsr CSH.GetChar bcs .9 cmp #';' bne .9 - .8 clc rts .90 lda #CSH.E.DUP sec rts - + .9 lda #CSH.E.SYNTAX sec .99 rts @@ -376,10 +318,8 @@ CSH.fCall ldx ZPPtr1 phx ldx ZPPtr2+1 local : variadic size phx - sta ZPPtr2 save Type stz ZPPtr2+1 Reset VARIADIC byte count - >LDYA L.CSH.FN jsr CSH.LookupFn phx X = function index @@ -392,20 +332,16 @@ CSH.fCall ldx ZPPtr1 cmp #'(' bne .52 - jsr CSH.GetNextCharNB skip '(' .10 bcs .90 lda ZPPtr2 bne .11 - lda (ZPPtr1) sta ZPPtr2 bra .1 expected type is 0, no check - .11 cmp (ZPPtr1) Get Return value Type bne .91 - .1 inc ZPPtr1 advance to arg list type bne .2 inc ZPPtr1+1 @@ -415,56 +351,43 @@ CSH.fCall ldx ZPPtr1 *-------------------------------------- .3 eor #CSH.T.VARIADIC if VARIADIC, don't advance to next arg and assume type = 0 beq .4 - eor #CSH.T.VARIADIC restore type... - .4 jsr CSH.ExpEval A=0 if VARIADIC bcs .9 X = Var Type lda (ZPPtr1) get current arg type eor #CSH.T.VARIADIC bne .5 - jsr CSH.SIZEOF X = Var Type * clc adc ZPPtr2+1 sta ZPPtr2+1 Add to byte count bra .51 - .5 inc ZPPtr1 bne .51 inc ZPPtr1+1 - .51 jsr CSH.GetCharNB bcs .90 - cmp #',' bne .6 jsr CSH.GetNextCharNB Skip , - lda (ZPPtr1) bne .3 Another ARG.... .52 bra .90 extra args....error - .6 cmp #')' bne .90 - lda (ZPPtr1) beq .8 no more arg after ')', exit - eor #CSH.T.VARIADIC bne .90 missing arg >PUSHB ZPPtr2+1 push VARIADIC byte count - bra .8 - .7 jsr CSH.GetCharNB bcs .90 - cmp #')' bne .90 @@ -480,15 +403,12 @@ CSH.fCall ldx ZPPtr1 sta ZPPtr1+1 pla sta ZPPtr1 - phy jsr .80 plx rts - .90 lda #CSH.E.SYNTAX .HS 2C BIT ABS - .91 lda #CSH.E.TMISMATCH sec @@ -505,8 +425,7 @@ CSH.fCall ldx ZPPtr1 .99 rts -.80 jmp (J.CSH.EXEC,x) - +.80 jmp (J.CSH.EXEC,x) *-------------------------------------- * Input: * ZPFileBufPtr, A = Expected type @@ -524,13 +443,11 @@ CSH.ExpEval ldx ZPPtr1 phx sta ZPPtr2 - .10 lda #$ff sta ZPPtr2+1 Reset BOP1 jsr CSH.GetCharNB bcs .33 - .20 jsr CSH.IsLetter Fnc or Var ? bcs .2 @@ -542,17 +459,14 @@ CSH.ExpEval ldx ZPPtr1 bcs .29 stx ZPPtr2 store real var type - bra .11 - + bra .11 .1 lda ZPPtr2 var type jsr CSH.fCall X = function index bcs .99 stx ZPPtr2 store real var type bra .11 - .2 jsr CSH.IsDigit10 number ? bcs .3 - ldx ZPPtr2 bne .22 @@ -561,70 +475,53 @@ CSH.ExpEval ldx ZPPtr1 .22 jsr CSH.GetNumOnStack .29 bcs .99 - .11 jsr CSH.GetCharNB bcs .90 - cmp #',' beq .8 cmp #')' beq .8 cmp #';' beq .8 - jsr CSH.IsOPChar .33 bcs .90 >LDYA L.CSH.BOPS jsr CSH.LookupOP bcs .90 - lda ZPPtr2+1 previous OP... bpl .5 go check precedence - stx ZPPtr2+1 jsr CSH.GetCharNB bcc .20 go check for an ARG bra .90 - .3 cmp #'"' String literal bne .90 - jsr CSH.AddContCharP bcs .99 jmp .11 - .5 cpx ZPPtr2+1 - bcs .6 - + bcs .6 * new OP has precedence, stack ACC - - jmp .10 - -* Old OP has precedence, compute ACC=ARG ACC +* Old OP has precedence, compute ACC=ARG ACC .6 lda ZPPtr2 Var Type ldx ZPPtr2+1 BOP jsr CSH.BOPExec bcs .99 - jsr CSH.GetCharNB bcs .90 jmp .10 - .8 ldx ZPPtr2+1 bmi .80 - lda ZPPtr2 Var Type jsr CSH.BOPExec bcc .80 bcs .99 - .90 lda #CSH.E.SYNTAX - .99 sec .HS 90 BCC .80 clc @@ -638,26 +535,21 @@ CSH.ExpEval ldx ZPPtr1 sty ZPPtr1+1 ply sty ZPPtr1 - rts *-------------------------------------- CSH.AddContCharP ldy #0 - .1 jsr CSH.GetNextChar bcs .9 cmp #C.CR beq .9 - cmp #'"' beq .2 sta (ZPCSHConst),y iny bra .1 - .2 lda #0 sta (ZPCSHConst),y - >PUSHW ZPCSHConst Push PTR on stack tya @@ -665,14 +557,11 @@ CSH.AddContCharP adc ZPCSHConst sta ZPCSHConst bcc .3 - inc ZPCSHConst+1 - .3 jsr CSH.GetNextChar Skip " clc rts - .9 lda #CSH.E.SYNTAX sec rts @@ -691,7 +580,6 @@ CSH.LookupID clc >STYA ZPPtr1 ror >STA.G CSH.LookupOpt - jsr CSH.GetIDLen bra CSH.Lookup @@ -700,20 +588,14 @@ CSH.LookupOP >STYA ZPPtr1 jsr CSH.GetOPLen CSH.Lookup phy Y = len - ldx #0 - .1 lda (ZPPtr1) beq .9 Ending 0, not found.... - pla pha Get Back Len - cmp (ZPPtr1) Same Len ? bne .4 - tay - .2 lda (ZPPtr1),y .3 dey @@ -722,7 +604,6 @@ CSH.Lookup phy Y = len tya bne .2 - pla Found keyword... clc adc ZPFileBufPtr ..advance Ptr to char after it.. @@ -736,28 +617,22 @@ CSH.Lookup phy Y = len tay lda ZPPtr1+1 adc #0 - clc Y,A = F() def, X = F() index .8 rts .4 inx inx - lda (ZPPtr1) jsr CSH.ZPPtr1AddAp1 - >LDA.G CSH.LookupOpt bpl .1 - ldy #$ff .6 iny lda (ZPPtr1),y bne .6 - tya jsr CSH.ZPPtr1AddAp1 bra .1 - .9 pla sec rts @@ -777,25 +652,20 @@ CSH.GetNumOnStack .10 cpx #CSH.T.FLOAT bcc .1 bne .99 - >PUSHWI ZPFileBufPtr >LDYA ZPFileBufPtr >SYSCALL StrToF clc rts - .1 >PUSHBI 10 >PUSHWI ZPFileBufPtr >LDYA ZPFileBufPtr - phx cpx #CSH.T.UCHAR bcc .2 - >SYSCALL StrToUL bra .3 - .2 >SYSCALL StrToL .3 plx @@ -807,7 +677,6 @@ CSH.GetNumOnStack cmp #2 bne .4 - ldy #1 >PULLA sta (pStack),y @@ -815,7 +684,6 @@ CSH.GetNumOnStack sta (pStack),y clc rts - .4 >PULLA inc pStack inc pStack @@ -834,19 +702,15 @@ CSH.AddVar >PUSHW ZPFileBufPtr >LDA.G CSH.hSymbols >SYSCALL SListNewKey bcs .9 - pha txa * clc adc ZPFileBufPtr sta ZPFileBufPtr bcc .1 - inc ZPFileBufPtr+1 clc - .1 pla - .9 rts *-------------------------------------- * Y,A = VarID, X=Type @@ -860,7 +724,6 @@ CSH.AddVarValueFromStack CSH.SetVarValueFromStack clc php - pha phy stx ZPVarData X = type @@ -870,13 +733,11 @@ CSH.SetVarValueFromStack tax ldy #1 - .1 >PULLA sta ZPVarData,y iny dex bne .1 - >PUSHBI 0 Datalen HI pla inc @@ -891,9 +752,8 @@ CSH.SetVarValueFromStack >SYSCALL SListAddData rts - .2 >SYSCALL SListSetData - rts + rts *-------------------------------------- CSH.GetVar >PUSHW ZPFileBufPtr >LDA.G CSH.hSymbols @@ -907,10 +767,8 @@ CSH.GetVar >PUSHW ZPFileBufPtr adc ZPFileBufPtr sta ZPFileBufPtr bcc .1 - inc ZPFileBufPtr+1 clc - .1 pla Y,A = VarID .9 rts *-------------------------------------- @@ -926,28 +784,23 @@ CSH.GetVarValueOnStack >PUSHWI ZPVarData pla >PUSHYA KeyID - >LDA.G CSH.hSymbols >SYSCALL SListGetData bcs .9 ldx ZPVarType beq .1 - cpx ZPVarData bne .99 - .1 ldx ZPVarData beq * jsr CSH.SIZEOF tay - .2 lda ZPVarData,y >PUSHA dey bne .2 - clc X = Var Type .9 rts @@ -962,15 +815,11 @@ CSH.TMISSMATCH lda #CSH.E.TMISMATCH *-------------------------------------- CSH.IsValue0 cpx #CSH.T.FLOAT bcc .1 char,int,long - ldy CSH.TYPESIZE,x - lda ZPVarData,y bne .9 - .8 clc rts - .1 jsr CSH.SIZEOF tax @@ -980,10 +829,8 @@ CSH.IsValue0 cpx #CSH.T.FLOAT inc pStack dex bne .2 - tax beq .8 - .9 sec rts *-------------------------------------- @@ -1002,7 +849,6 @@ CSH.BOPS.ADDu8 clc sta (pStack) clc rts - CSH.BOPS.ADDi16 CSH.BOPS.ADDu16 clc @@ -1015,7 +861,6 @@ CSH.BOPS.ADDu16 clc sta (pStack),y clc rts - CSH.BOPS.ADDi32 CSH.BOPS.ADDu32 >FPU ADD32 clc @@ -1038,7 +883,6 @@ CSH.BOPS.SUBu8 sec inc pStack clc rts - CSH.BOPS.SUBi16 CSH.BOPS.SUBu16 sec @@ -1046,7 +890,6 @@ CSH.BOPS.SUBu16 sec lda (pStack),y sbc (pStack) sta (pStack),y - iny lda (pStack),y ldy #1 @@ -1056,7 +899,6 @@ CSH.BOPS.SUBu16 sec sta (pStack),y clc rts - CSH.BOPS.SUBi32 CSH.BOPS.SUBu32 >FPU SUB32 clc @@ -1068,19 +910,15 @@ CSH.BOPS.SUBf >FPU FSUB *-------------------------------------- CSH.BOPS.MUL cmp #CSH.T.FLOAT beq .8 - - clc rts .8 >FPU FMULT clc rts - *-------------------------------------- CSH.BOPS.DIV cmp #CSH.T.FLOAT beq .8 - clc rts @@ -1118,10 +956,8 @@ CSH.CheckStack tax txa cmp (ZPCSHStack),y bne .9 - clc rts - .9 lda #CSH.E.SYNTAX sec rts @@ -1154,31 +990,27 @@ CSH.Pop >LDA.G CSH.StackPtr .9 lda #CSH.E.SYNTAX sec - rts + rts *-------------------------------------- * CHAR related Subs..... *-------------------------------------- CSH.GetOPLen ldy #0 - .1 iny lda (ZPFileBufPtr),y beq .8 jsr CSH.IsOPChar bcc .1 - .8 tya rts *-------------------------------------- CSH.GetIDLen ldy #0 - .1 iny lda (ZPFileBufPtr),y beq .8 jsr CSH.IsLetterOrDigit bcc .1 - .8 tya rts *-------------------------------------- @@ -1193,13 +1025,10 @@ CSH.SkipBlock ldy #0 not in "", TOTO:skip comments .1 jsr CSH.GetNextCharNB bcs .9 - cmp #'{' bne .2 - tya bmi .1 - inx bra .1 @@ -1208,22 +1037,18 @@ CSH.SkipBlock ldy #0 not in "", TOTO:skip comments tya bmi .1 - dex bne .1 clc rts - .3 cmp #'"' bne .1 tya eor #$ff tay bra .1 - jmp CSH.GetNextCharNB skip '}' - -.9 rts +.9 rts *-------------------------------------- CSH.GetCharNB jsr CSH.GetChar bcs CSH.GetNextCharNB.RTS @@ -1245,7 +1070,7 @@ CSH.CheckCharNB cmp #C.SPACE cmp #C.TAB beq .9 clc -.9 rts +.9 rts *-------------------------------------- CSH.GetNextChar inc ZPFileBufPtr bne CSH.GetChar @@ -1255,7 +1080,6 @@ CSH.GetChar lda (ZPFileBufPtr) beq .9 clc rts - .9 lda #MLI.E.EOF sec rts @@ -1268,9 +1092,8 @@ CSH.IsOPChar ldx #CSH.OPChars.Cnt-1 bpl .1 sec rts - .8 clc - rts + rts *--------------------------------------- CSH.IsLetterOrDigit jsr CSH.IsDigit10 @@ -1280,10 +1103,8 @@ CSH.IsLetter cmp #'_' bne .1 clc rts - .1 cmp #'A' bcc .9 - cmp #'Z'+1 bcc CSH.IsLetterRTS @@ -1293,14 +1114,12 @@ CSH.IsLetter cmp #'_' rts CC if lowercase .9 sec - -CSH.IsLetterRTS rts +CSH.IsLetterRTS rts *--------------------------------------- CSH.IsDigit10 cmp #'0' bcc .9 cmp #'9'+1 rts cc if ok, cs if not - .9 sec rts *-------------------------------------- @@ -1309,7 +1128,6 @@ CSH.IsDigit10 cmp #'0' CSH.SIZEOF txa and #CSH.Q.PPPOINTER bne .2 - txa and #$f phx @@ -1317,14 +1135,13 @@ CSH.SIZEOF txa lda CSH.TYPESIZE,x plx rts - .2 lda #2 rts *-------------------------------------- * EXEC *-------------------------------------- EXEC.printf >SYSCALL printf2 - rts + rts *-------------------------------------- EXEC.puts >PULLYA >SYSCALL puts diff --git a/BIN/CSH.S.txt b/BIN/CSH.S.txt index 3c9300b3..2c99386a 100644 --- a/BIN/CSH.S.txt +++ b/BIN/CSH.S.txt @@ -77,28 +77,23 @@ CS.RUN >PUSHWI K.VER >LDYA L.MSG.GREETINGS >SYSCALL printf bcs CS.INIT.RTS - jsr CS.RUN.ARGS bcs CS.INIT.RTS jsr CSH.Init bcs CS.INIT.RTS - .1 >SLEEP >LDA.G bDebug bpl .2 jsr PrintDebugMsg - .2 >LDA.G bTrace bpl .3 - >LDYA ZPFileBufPtr jsr PrintTraceMsg .3 jsr CSH.Run bcc .1 - cmp #MLI.E.EOF beq .8 @@ -107,7 +102,6 @@ CS.RUN >PUSHWI K.VER pla sec rts - .8 lda #0 Exit Code = Success sec rts @@ -122,50 +116,41 @@ CS.RUN.ARGS inc ArgIndex lda (ZPPtr1) cmp #'-' bne .4 - ldy #1 lda (ZPPtr1),y ldx #OptionVars-OptionList-1 - .1 cmp OptionList,x beq .2 dex bpl .1 bra .90 - .2 ldy OptionVars,x lda #$ff sta (pData),y bra CS.RUN.ARGS - .4 >LDA.G hFileBuf bne .90 - >PUSHWZ Aux type >PUSHBI S.FI.T.TXT >PUSHBI O.RDONLY >LDYA ZPPtr1 >SYSCALL LoadTxtFile bcs .9 - txa >STA.G hFileBuf >SYSCALL GetMemPtr >STYA ZPFileBuf >STYA ZPFileBufPtr bra CS.RUN.ARGS - .7 >LDA.G hFileBuf beq .90 clc rts - .90 >PUSHBI 0 >LDYA L.MSG.USAGE >SYSCALL printf - lda #E.SYN sec QUIT Process @@ -180,7 +165,6 @@ CS.QUIT jsr CSH.Quit *-------------------------------------- PrintErrMsg >LDYA ZPFileBuf >STYA ZPPtr1 - stz ZPPtr2 stz ZPPtr2+1 Line counter @@ -190,17 +174,14 @@ PrintErrMsg >LDYA ZPFileBuf .2 >LDYA ZPPtr1 >STYA ZPPtr3 save line start - .20 lda (ZPPtr1) beq .4 EoF inc ZPPtr1 bne .3 inc ZPPtr1+1 - .3 cmp #C.CR bne .20 Scan until EoL - ldx ZPPtr1 cpx ZPFileBufPtr lda ZPPtr1+1 @@ -209,29 +190,22 @@ PrintErrMsg >LDYA ZPFileBuf .4 >LDA.G bTrace bmi .5 - jsr PrintTraceMsg.3 - .5 lda ZPPtr3 cmp ZPFileBufPtr bne .6 - lda ZPPtr3+1 cmp ZPFileBufPtr+1 beq .8 - .6 >PUSHBI '-' ldy #S.PS.hStdErr lda (pPS),y >SYSCALL fputc - inc ZPPtr3 bne .5 inc ZPPtr3+1 bra .5 - .8 >PUSHW ZPPtr2 Line counter - >PUSHBI 2 >PUSHW L.MSG.ERR ldy #S.PS.hStdErr @@ -245,14 +219,12 @@ PrintDebugMsg >PUSHW pStack >LDYA L.MSG.DEBUG >SYSCALL printf rts -*-------------------------------------- +*-------------------------------------- PrintTraceMsg >STYA ZPPtr3 - PrintTraceMsg.3 >PUSHBI '>' ldy #S.PS.hStdErr lda (pPS),y >SYSCALL fputc - ldy #$ff .1 iny @@ -260,7 +232,6 @@ PrintTraceMsg.3 >PUSHBI '>' beq .8 cmp #C.CR beq .8 - phy >PUSHA ldy #S.PS.hStdErr @@ -268,7 +239,6 @@ PrintTraceMsg.3 >PUSHBI '>' >SYSCALL fputc ply bra .1 - .8 >PUSHBI 0 >PUSHW L.MSG.ECHOCRLF ldy #S.PS.hStdErr diff --git a/BIN/CUT.S.txt b/BIN/CUT.S.txt index cd0842cc..d285046b 100644 --- a/BIN/CUT.S.txt +++ b/BIN/CUT.S.txt @@ -42,7 +42,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -57,60 +57,47 @@ CS.INIT clc CS.RUN stz ArgCount lda #C.SPACE sta Separator - .10 jsr CS.RUN.NextArg bcs .8 - lda (ZPPtr1) cmp #'-' beq .1 - lda ArgCount sta ArgIndex bra .10 - .1 ldy #1 lda (ZPPtr1),y ldx OptionList - .2 cmp OptionList,x beq .3 dex bne .2 bra .97 - .3 txa lsr beq .98 -H cmp #4 -S bne .4 - jsr CS.RUN.NextArg bcs .97 lda (ZPPtr1) sta Separator - bra .10 - .4 sta OptionIdx - jsr CS.RUN.NextArg bcs .97 - >SYSCALL atoi bcs .97 tax bne .97 - tya ldx OptionIdx sta FieldNum-1,x bra .10 scan for any other args - .97 lda #E.SYN -.98 pha +.98 pha >PUSHBI 0 >LDYA L.MSG.USAGE >SYSCALL printf @@ -121,34 +108,26 @@ CS.RUN stz ArgCount .8 >LDYAI 256 >SYSCALL GetMem bcs .9 - >STYA ZPBufPtr stx hBuf - lda ArgIndex beq .80 - >SYSCALL ArgV >PUSHYA >LDYA ZPBufPtr >SYSCALL strcpy - bra CS.RUN.OUT - .80 ldy #S.PS.hStdIn lda (pPS),y tax - lda OF.Table.hFD-1,x >SYSCALL GetMemPtr >STYA ZPPtr1 lda (ZPPtr1) cmp #S.FD.T.PIPE bne .97 - >PUSHWI 256 >PUSHW ZPBufPtr - ldy #S.PS.hStdIn lda (pPS),y @@ -156,26 +135,20 @@ CS.RUN stz ArgCount bcc CS.RUN.OUT cmp #MLI.E.EOF bne .9 - CS.RUN.OUT lda FieldNum beq CS.RUN.OUT.MN - ldy #$ff - .1 iny skip spaces lda (ZPBufPtr),y beq CS.RUN.PRINTCR - cmp Separator beq .1 - dec FieldNum beq .4 - .2 iny skip token lda (ZPBufPtr),y beq CS.RUN.PRINTCR - + eor Separator bne .2 bra .1 @@ -189,12 +162,10 @@ CS.RUN.OUT lda FieldNum beq .8 eor Separator bne .6 - sta (ZPBufPtr),y .8 >LDYA ZPBufPtr >SYSCALL puts - lda #0 Exit with no Error sec rts @@ -203,7 +174,6 @@ CS.RUN.PRINTCR >PUSHBI 0 >LDYA L.MSG.CRLF >SYSCALL printf bcs .9 - lda #0 sec .9 rts @@ -212,32 +182,26 @@ CS.RUN.OUT.MN ldy #$ff ldx StartChar beq .2 - .1 iny lda (ZPBufPtr),y beq CS.RUN.PRINTCR dex bne .1 - .2 ldx EndChar beq .8 - .3 iny lda (ZPBufPtr),y beq .8 cpy EndChar bne .3 - lda #0 sta (ZPBufPtr),y - .8 ldy StartChar jsr CS.RUN.AddYToBufPtr >LDYA ZPBufPtr >SYSCALL puts - lda #0 Exit with no Error sec rts @@ -246,7 +210,6 @@ CS.RUN.NextArg inc ArgCount lda ArgCount >SYSCALL ArgV bcs .9 - >STYA ZPPtr1 .9 rts @@ -258,7 +221,6 @@ CS.RUN.AddYToBufPtr sta ZPBufPtr bcc .8 lda ZPBufPtr+1 - .8 rts *-------------------------------------- CS.QUIT lda hBuf diff --git a/BIN/DNSINFO.S.txt b/BIN/DNSINFO.S.txt index 7d30de76..12014c41 100644 --- a/BIN/DNSINFO.S.txt +++ b/BIN/DNSINFO.S.txt @@ -32,7 +32,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.EVENT @@ -51,38 +51,31 @@ L.MSG.USAGE .DA MSG.USAGE CS.INIT >LDYA L.LIBTCPIP >SYSCALL LoadLib bcs .9 - sta hLIBTCPIP .9 rts *-------------------------------------- CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ? >STYA ZPPTR1 - lda (ZPPTR1) Configured ? bmi CS.RUN.IPOK - >LDYA L.MSG.IPKO >SYSCALL puts lda #E.SYN sec rts - CS.RUN.IPOK ldy #S.PS.ARGC lda (pPs),y bne .1 jmp CS.RUN.DUMP - .1 cmp #2 beq CS.RUN.ADD - >PUSHBI 0 >LDYA L.MSG.USAGE - >SYSCALL printf lda #E.SYN - sec + sec rts *-------------------------------------- CS.RUN.ADD >PUSHEA.G DST.IP+3 @@ -95,14 +88,12 @@ CS.RUN.ADD >PUSHEA.G DST.IP+3 >SYSCALL ArgV >SYSCALL sscanf bcs .9 - >PUSHEA.G DST.IP lda #1 >SYSCALL ArgV >PUSHYA >LIBCALL hLIBTCPIP,LIBTCPIP.DNS.ADD bcs .99 - lda #0 tell TSKMGR that all done ok, but sec we do not want to stay in memory rts @@ -118,26 +109,21 @@ CS.RUN.DUMP >LIBCALL hLIBTCPIP,LIBTCPIP.DNS.GetCache lda #K.DNSCACHE.SIZE >STA.G EntryCount - .1 lda (ZPPTR1) beq .6 ldy #S.DNSCACHE.TTL+4 - -.2 dey +.2 dey lda (ZPPTR1),y >PUSHA cpy #S.DNSCACHE.TTL bne .2 - ldy #S.DNSCACHE.IP+4 - .3 dey lda (ZPPTR1),y >PUSHA cpy #S.DNSCACHE.IP bne .3 - ldy #S.DNSCACHE.hNAME lda (ZPPTR1),y >SYSCALL GetMemPtr @@ -149,13 +135,10 @@ CS.RUN.DUMP >LIBCALL hLIBTCPIP,LIBTCPIP.DNS.GetCache >PUSHB (ZPPTR1),y ldx #0 - lda (ZPPTR1) Entry Status bmi .5 - asl tax - .5 >PUSHW L.MSG1.Status,x >PUSHBI 14 >LDYA L.MSG1 @@ -167,7 +150,6 @@ CS.RUN.DUMP >LIBCALL hLIBTCPIP,LIBTCPIP.DNS.GetCache sta ZPPTR1 bcc .7 inc ZPPTR1+1 - .7 >DEC.G EntryCount bne .8 @@ -182,7 +164,6 @@ CS.EVENT sec CS.QUIT lda hLIBTCPIP beq .8 >SYSCALL UnloadLib - .8 clc rts *-------------------------------------- diff --git a/BIN/EDIT.S.BUF.txt b/BIN/EDIT.S.BUF.txt index 24e8fdbe..906cf04f 100644 --- a/BIN/EDIT.S.BUF.txt +++ b/BIN/EDIT.S.BUF.txt @@ -6,10 +6,8 @@ BUF.InsertClipboard ldy #hClipBoard lda (pData),y beq .8 - >SYSCALL GetMemPtr >STYA ClipboardPtr - jsr BUF.ComputeCOffset lda BufLen @@ -17,28 +15,22 @@ BUF.InsertClipboard ldy #ClipboardLen adc (pData),y pha - lda BufLen+1 iny adc (pData),y - ply jsr BUF.GetNewYA bcs .9 - >LDYA BUF.COffset jsr BUF.Start2YA jsr BUF.CopyClipboard - jsr BUF.CopyTail - .4 ldy #ClipboardLen lda (pData),y clc adc BufLen sta BufLen - iny lda (pData),y adc BufLen+1 @@ -53,7 +45,6 @@ BUF.InsertA sta TmpByte bne .10 clc rts - .10 lda BufLen clc adc #2 @@ -63,7 +54,6 @@ BUF.InsertA sta TmpByte ply jsr BUF.GetNewYA bcs .9 - >LDYA BUF.COffset jsr BUF.Start2YA @@ -72,17 +62,13 @@ BUF.InsertA sta TmpByte inc BufPtr bne .3 inc BufPtr+1 - .3 jsr BUF.CopyTail - .4 lda BufLen clc adc #1 sta BufLen bcc .9 - inc BufLen+1 - clc .9 rts *-------------------------------------- @@ -95,41 +81,33 @@ BUF.DelSel jsr BUF.GetSelLen tay lda BufLen+1 sbc SelLen+1 - iny bne .1 inc - .1 jsr BUF.GetNewYA bcs .9 >LDYA.G SelStart jsr BUF.Start2YA - lda BufPtrBackup clc adc SelLen sta BufPtrBackup - lda BufPtrBackup+1 adc SelLen+1 sta BufPtrBackup+1 - jsr BUF.CopyTail - lda BufLen sec sbc SelLen sta BufLen - lda BufLen+1 sbc SelLen+1 sta BufLen+1 jsr BUF.ResetSel - .8 clc -.9 rts +.9 rts *-------------------------------------- * Erase char at CurXY *-------------------------------------- @@ -147,16 +125,11 @@ BUF.DelCharAtCursor inc BufPtrBackup bne .4 inc BufPtrBackup+1 - .4 jsr BUF.CopyTail - lda BufLen bne .5 - dec BufLen+1 - .5 dec BufLen - jsr BUF.ResetSel pla Get back deleted char @@ -166,28 +139,21 @@ BUF.DelCharAtCursor BUF.SelToClipboard jsr BUF.GetSelLen bcs .8 - >LDA.G hClipBoard beq .1 - >SYSCALL FreeMem >STZ.G hClipBoard - .1 >LDYA SelLen >SYSCALL GetMem bcs .9 - >STYA ClipboardPtr txa >STA.G hClipBoard - ldy #hBuffer lda (pData),y >SYSCALL GetMemPtr - pha tya - * clc >ADC.G SelStart sta BufPtr @@ -195,35 +161,27 @@ BUF.SelToClipboard pla >ADC.G SelStart+1 sta BufPtr+1 - lda SelLen ldy #ClipBoardLen sta (pData),y eor #$ff tax - iny lda SelLen+1 sta (pData),y eor #$ff pha - ldy #0 - .2 inx bne .3 - pla inc beq .8 - pha - .3 lda (BufPtr),y sta (ClipboardPtr),y iny bne .2 - inc BufPtr+1 inc ClipboardPtr+1 bra .2 @@ -235,68 +193,50 @@ BUF.CopyClipboard >LDA.G ClipboardLen eor #$ff tax - iny lda (pData),y eor #$ff pha - ldy #0 - .1 inx bne .2 - pla inc beq .3 - pha - .2 lda (ClipboardPtr),y sta (BufPtr),y iny bne .1 - inc ClipboardPtr+1 inc BufPtr+1 bra .1 - .3 tya clc adc ClipboardPtr sta ClipboardPtr bcc BUF.CopyAddY - inc ClipboardPtr+1 - BUF.CopyAddY tya clc adc BufPtr sta BufPtr bcc .2 - inc BufPtr+1 - .2 rts *-------------------------------------- BUF.Start2YA eor #$ff pha - tya eor #$ff tax - ldy #0 - .1 inx bne .2 - pla inc beq .3 - pha - .2 lda (BufPtrBackup),y sta (BufPtr),y iny @@ -305,13 +245,11 @@ BUF.Start2YA eor #$ff inc BufPtrBackup+1 inc BufPtr+1 bra .1 - .3 tya clc adc BufPtrBackup sta BufPtrBackup bcc BUF.CopyAddY - inc BufPtrBackup+1 bra BUF.CopyAddY *-------------------------------------- @@ -320,10 +258,8 @@ BUF.CopyTail ldy #0 .1 lda (BufPtrBackup),y sta (BufPtr),y beq .8 - iny bne .1 - inc BufPtrBackup+1 inc BufPtr+1 bra .1 @@ -358,7 +294,6 @@ BUF.GetLine ldy #FileY+1 tax dey lda (pData),y - BUF.GetLineAX sta BUF.TmpLine1 stx BUF.TmpLine1+1 @@ -369,18 +304,14 @@ BUF.GetLineAX sta BUF.TmpLine1 lda (pData),y >SYSCALL GetMemPtr >STYA BufPtr - stz BUF.TmpLine2 stz BUF.TmpLine2+1 .1 ldy #0 - .2 lda (BufPtr),y beq .7 - cmp #C.CR beq .3 - iny bne .2 @@ -390,14 +321,12 @@ BUF.GetLineAX sta BUF.TmpLine1 lda BUF.TmpLine1+1 cmp BUF.TmpLine2+1 beq .8 - .4 tya sec adc BufPtr sta BufPtr bcc .5 inc BufPtr+1 - .5 tya sec adc BUF.LOffset @@ -409,39 +338,32 @@ BUF.GetLineAX sta BUF.TmpLine1 bne .1 inc BUF.TmpLine2+1 bra .1 - .7 lda BUF.TmpLine1 cmp BUF.TmpLine2 bne .9 lda BUF.TmpLine1+1 cmp BUF.TmpLine2+1 bne .9 - .8 clc Y = Line length rts - .9 sec rts *-------------------------------------- BUF.GetNewYA phy pha - >LDA.G hBufferBackup beq .1 >SYSCALL FreeMem - .1 >LDA.G hBuffer >STA.G hBufferBackup - >SYSCALL GetMemPtr >STYA BufPtrBackup - >STZ.G hBuffer + >STZ.G hBuffer pla ply >SYSCALL GetMem bcs .9 - >STYA BufPtr txa >STA.G hBuffer @@ -456,29 +378,24 @@ BUF.ResetSel lda #$ff sta (pData),y iny #SelEnd - inc sta (pData),y iny sta (pData),y - rts *-------------------------------------- BUF.CheckSelected lda BUF.COffset ldy #SelStart cmp (pData),y - lda BUF.COffset+1 iny sbc (pData),y bcc .9 CC:COffset < SelStart - iny #SelEnd lda (pData),y clc sbc BUF.COffset - iny lda (pData),y sbc BUF.COffset+1 @@ -495,7 +412,6 @@ BUF.GetSelLen ldy #SelEnd sta SelLen tax - ldy #SelEnd+1 lda (pData),y @@ -505,12 +421,9 @@ BUF.GetSelLen ldy #SelEnd bcc .9 bne .8 txa - beq .9 - .8 clc rts - .9 sec rts *-------------------------------------- diff --git a/BIN/EDIT.S.CTRL.txt b/BIN/EDIT.S.CTRL.txt index 8557c3b7..06e2d2e4 100644 --- a/BIN/EDIT.S.CTRL.txt +++ b/BIN/EDIT.S.CTRL.txt @@ -30,7 +30,6 @@ NEW *-------------------------------------- Prompt.Editor cmp #C.DEL beq Ctrl.DEL - cmp #C.SPACE bcc .3 @@ -56,7 +55,6 @@ Ctrl.DEL jsr BUF.ComputeCOffset jsr Ctrl.BS bcs .9 - jmp Ctrl.Z .8 clc @@ -64,32 +62,25 @@ Ctrl.DEL jsr BUF.ComputeCOffset *-------------------------------------- Ctrl.Invalid clc -Ctrl.Invalid.RTS +Ctrl.Invalid.RTS rts *-------------------------------------- Ctrl.A lda #PromptModeHelp >STA.G PromptMode - >LDYA L.MSG.HELP >STYA ZPPTR1 - stz .1+1 - .1 ldy #0 ldx #0 jsr GotoXY - lda (ZPPTR1) beq .8 - >PUSHW ZPPTR1 >PUSHBI 2 >LDYA L.MSG.HELPLINE >SYSCALL printf bcs Ctrl.Invalid.RTS - inc .1+1 - lda (ZPPTR1) sec adc ZPPTR1 @@ -122,7 +113,6 @@ Ctrl.E jsr BUF.ComputeCOffset *-------------------------------------- Ctrl.F lda #PromptModeFind >STA.G PromptMode - jmp SCRN.UpdateStatusBar *-------------------------------------- Ctrl.G ldy #FileX @@ -142,25 +132,21 @@ Ctrl.BS ldy #FileX dec sta (pData),y bra .3 - .1 ldy #FileY+1 lda (pData),y tax dey ora (pData),y beq .8 - lda (pData),y bne .2 dex .2 dec - jsr BUF.GetLineAX bcs .8 tya ldy #FileX sta (pData),y - sec ldy #FileY lda (pData),y @@ -170,9 +156,7 @@ Ctrl.BS ldy #FileX lda (pData),y sbc #0 sta (pData),y - .3 jmp SCRN.UpdateViewPort - .8 clc rts *-------------------------------------- @@ -190,13 +174,11 @@ Ctrl.LF ldy #FileY+1 inx .1 jsr BUF.GetLineAX bcs .8 - tya Y = line length ldy #FileX cmp (pData),y bcs .2 sta (pData),y - .2 ldy #FileY lda (pData),y inc @@ -206,9 +188,7 @@ Ctrl.LF ldy #FileY+1 lda (pData),y inc sta (pData),y - .3 jmp SCRN.UpdateViewPort - .8 clc rts *-------------------------------------- @@ -218,21 +198,17 @@ Ctrl.VT ldy #FileY+1 dey ora (pData),y beq .8 - lda (pData),y bne .1 dex .1 dec - jsr BUF.GetLineAX bcs .8 - tya Y = line length ldy #FileX cmp (pData),y bcs .2 sta (pData),y - .2 sec ldy #FileY lda (pData),y @@ -242,15 +218,12 @@ Ctrl.VT ldy #FileY+1 lda (pData),y sbc #0 sta (pData),y - jmp SCRN.UpdateViewPort - .8 clc rts *-------------------------------------- Ctrl.L jsr BUF.GetLine bcs .8 - tya Y = line length ldy #FileX sta (pData),y @@ -279,7 +252,6 @@ Ctrl.O ldy #FileY+1 tax dey lda (pData),y - ldy #ViewPortH sec sbc (pData),y @@ -287,19 +259,16 @@ Ctrl.O ldy #FileY+1 txa sbc #0 bcc .8 - ldy #FileY+1 sta (pData),y dey pla sta (pData),y - lda #0 ldy #FileX sta (pData),y jmp SCRN.UpdateViewPort - .8 pla jmp Ctrl.T *-------------------------------------- @@ -308,17 +277,14 @@ Ctrl.P ldy #FileY+1 tax dey lda (pData),y - ldy #ViewPortH clc adc (pData),y bcc .1 inx - .1 pha phx - jsr BUF.GetLineAX A,X = FileY+PAGE bcs .8 @@ -333,7 +299,6 @@ Ctrl.P ldy #FileY+1 dey pla sta (pData),y - jmp SCRN.UpdateViewPort .8 pla @@ -347,40 +312,30 @@ Ctrl.Q lda #$FF *-------------------------------------- Ctrl.R lda #PromptModeReplace >STA.G PromptMode - jmp SCRN.UpdateStatusBar *-------------------------------------- Ctrl.S lda #PromptModeSave >STA.G PromptMode - >LDA.G hFileName beq .2 - >SYSCALL GetMemPtr >STYA ZPPTR1 - ldy #$ff - .1 iny lda (ZPPTR1),y sta (pData),y - bne .1 - tya - .2 >STA.G PromptBufPtr jmp SCRN.UpdateStatusBar *-------------------------------------- Ctrl.T >STZ.G FileX >STZW.G FileY - jmp SCRN.UpdateViewPort *-------------------------------------- Ctrl.FS jsr BUF.GetLine bcs .8 - tya Y = line length ldy #FileX cmp (pData),y @@ -390,7 +345,6 @@ Ctrl.FS jsr BUF.GetLine inc sta (pData),y bra .3 - .1 ldy #FileY+1 lda (pData),y tax @@ -399,10 +353,8 @@ Ctrl.FS jsr BUF.GetLine inc bne .2 inx - .2 jsr BUF.GetLineAX bcs .8 - ldy #FileY CC lda (pData),y adc #1 @@ -411,13 +363,10 @@ Ctrl.FS jsr BUF.GetLine lda (pData),y adc #0 sta (pData),y - ldy #FileX lda #0 sta (pData),y - .3 jmp SCRN.UpdateViewPort - .8 clc rts *-------------------------------------- @@ -443,13 +392,10 @@ Ctrl.W jsr BUF.ComputeCOffset Y=line len clc lda (BufPtr),y beq .1 last line \0 ending - sec delete CR - .1 tya adc BUF.LOffset - ldy #SelEnd sta (pData),y lda BUF.LOffset+1 @@ -457,7 +403,6 @@ Ctrl.W jsr BUF.ComputeCOffset Y=line len iny sta (pData),y bra Ctrl.D - .8 Ctrl.W.RTS rts *-------------------------------------- @@ -466,7 +411,6 @@ Ctrl.X jsr BUF.SelToClipboard Ctrl.D jsr BUF.DelSel bcs Ctrl.W.RTS - jsr SCRN.CursorAdjust jsr SCRN.UpdateMain bcs Ctrl.W.RTS @@ -478,11 +422,9 @@ Ctrl.Y ldy #FileY+1 tax dey lda (pData),y - inc bne .1 inx - .1 jsr BUF.GetLineAX bcs .2 @@ -496,9 +438,7 @@ Ctrl.Y ldy #FileY+1 lda (pData),y inc sta (pData),y - bra Ctrl.Y - .2 jsr BUF.GetLine tya Y = line length @@ -511,11 +451,9 @@ Ctrl.Z jsr BUF.ComputeCOffset lda BUF.COffset eor BufLen bne .1 - lda BUF.COffset+1 eor BufLen+1 bne .1 - clc rts @@ -534,22 +472,17 @@ Prompt.Help >STZ.G PromptMode Prompt.Help.Upd jsr SCRN.UpdateStatusBar bcs .9 jmp SCRN.UpdateMain - -.9 -Prompt.Help.RTS rts +.9Prompt.Help.RTS + rts *-------------------------------------- Prompt.Find cmp #3 bne .1 >STZ.G PromptMode - jmp SCRN.UpdateStatusBar - .1 cmp #C.CR bne .2 - -.2 - +.2 clc .9 rts *-------------------------------------- @@ -557,16 +490,12 @@ Prompt.Replace cmp #3 bne .1 >STZ.G PromptMode - jsr SCRN.UpdateStatusBar bcs .9 rts - .1 cmp #C.CR bne .2 - -.2 - +.2 clc @@ -577,40 +506,30 @@ Prompt.Save cmp #3 Ctrl-C >STZ.G PromptMode bra .80 - .1 cmp #C.CR bne .2 - >LDA.G PromptBufPtr beq .8 - >LDYA pData >SYSCALL RealPath bcs .12 - phx - >LDA.G hFileName beq .11 >SYSCALL FreeMem .11 pla >STA.G hFileName - >STZ.G PromptMode - jsr SaveFile bcc .81 .12 jsr SCRN.UpdateStatusBarErrA bcs .9 rts - .2 cmp #C.DEL bne .3 - >LDA.G PromptBufPtr beq .8 - dec sta (pData),y @@ -618,17 +537,14 @@ Prompt.Save cmp #3 Ctrl-C lda #0 sta (pData),y bra .80 - .3 cmp #C.SPACE bcc .8 - pha >LDA.G PromptBufPtr tay pla cpy #PromptBufMax beq .8 - sta (pData),y iny lda #0 @@ -636,10 +552,8 @@ Prompt.Save cmp #3 Ctrl-C tya >STA.G PromptBufPtr bra .80 - .8 clc - rts - + rts .81 jsr SCRN.UpdateTopBar bcs .9 .80 jmp SCRN.UpdateStatusBar diff --git a/BIN/EDIT.S.SCRN.txt b/BIN/EDIT.S.SCRN.txt index 46e5c061..92d3215a 100644 --- a/BIN/EDIT.S.SCRN.txt +++ b/BIN/EDIT.S.SCRN.txt @@ -16,7 +16,6 @@ SCRN.Init >LDYAI 510+5+5+4+1 potentially 255*\\ NORM,INV,CEOL & \0 >LDYA L.SEQ.INIT >SYSCALL printf bcs .9 - lda #0 ldy #FileX @@ -46,19 +45,16 @@ SCRN.UpdateTopBar lda #1 jsr SCRN.InvLineA bcs .9 - >LDA.G hFileName beq .1 >SYSCALL GetMemPtr bra .2 - .1 >LDYA L.MSG.NEWFILE .2 >PUSHYA >PUSHBI 2 >LDYA L.MSG.TOPBAR >SYSCALL printf - .9 rts *-------------------------------------- SCRN.UpdateMain >LDA.G ScreenY @@ -69,43 +65,34 @@ SCRN.UpdateMain >LDA.G ScreenY lda #0 sta TmpByte - >LDA.G ViewPortH sta TmpCount - .1 lda TmpIndex ldx TmpIndex+1 - jsr BUF.GetLineAX Y = line length bcs .5 lda TmpByte jsr SCRN.UpdateLineAtALenY bcs SCRN.UpdateMain.9 - .3 inc TmpByte inc TmpIndex bne .4 inc TmpIndex+1 - .4 dec TmpCount bne .1 jmp SCRN.GotoCurXCurY - .5 ldx #0 ldy TmpByte jsr GotoXY bcs SCRN.UpdateMain.9 - >PUSHBI 0 >LDYA L.SEQ.CEOL >SYSCALL printf bcs SCRN.UpdateMain.9 - inc TmpByte dec TmpCount bne .5 - jmp SCRN.GotoCurXCurY SCRN.UpdateMain.9 @@ -133,75 +120,58 @@ SCRN.UpdateCurrentLine SCRN.UpdateLineAtALenY stz bSelected sty TmpLen - ldx #0 tay jsr GotoXY bcs SCRN.UpdateMain.9 - >LDYA LineBufPtr >STYA ZPPTR1 - >LDA.G ScreenW tax - >LDA.G ScreenX cmp TmpLen bcs .8 - tay - clc adc BUF.LOffset sta BUF.COffset lda #0 adc BUF.LOffset+1 sta BUF.COffset+1 - tya * clc adc BufPtr sta BufPtr bcc .1 - inc BufPtr+1 .1 lda (BufPtr) beq .8 - cmp #C.CR beq .8 jsr BUF.CheckSelected eor bSelected bpl .5 - jsr SCRN.ToggleSel - .5 lda (BufPtr) cmp #'\' beq .50 cmp #'%' bne .51 - .50 pha lda #'\' jsr SCRN.ToLineBuf pla - .51 jsr SCRN.ToLineBuf - inc BufPtr bne .6 inc BufPtr+1 - .6 inc BUF.COffset bne .7 inc BUF.COffset+1 - .7 dex bne .1 - .8 bit bSelected bpl .80 jsr SCRN.ToggleSel @@ -213,27 +183,21 @@ SCRN.UpdateLineAtALenY jsr SCRN.ToLineBuf iny bra .81 - .82 sta (ZPPTR1) - >PUSHBI 0 >LDYA LineBufPtr >SYSCALL printf .9 rts *-------------------------------------- SCRN.ToggleSel ldy #0 - lda bSelected eor #$ff sta bSelected - bpl .1 - ldy #6 .1 lda SEQ.NORM,y beq .8 - jsr SCRN.ToLineBuf iny bra .1 @@ -253,7 +217,6 @@ SCRN.UpdateStatusBar >LDYA L.MSG.GOTOXY >SYSCALL printf bcs .9 - >PUSHBI 0 >LDYA L.SEQ.INV >SYSCALL printf @@ -261,30 +224,25 @@ SCRN.UpdateStatusBar >LDA.G PromptMode bne .2 - >LDA.G FileY tax iny lda (pData),y inx bne .1 - inc .1 >PUSHA txa >PUSHA - >LDA.G FileX inc >PUSHA - >PUSHW BufLen >PUSHBI 5 >LDYA L.MSG.STATUSBAR >SYSCALL printf bcs .9 - lda #58 jsr SCRN.ClearEOLA bcs .9 @@ -300,17 +258,14 @@ SCRN.UpdateStatusBar beq .3 >PUSHW pData lda #2 - .3 >PUSHA >LDA.G ScreenH jsr SCRN.InvLineA bcs .9 - ldy #PromptMode lda (pData),y tax - >LDYA L.MSG.STATUSBAR,x >SYSCALL printf bcs .9 @@ -322,7 +277,6 @@ SCRN.UpdateStatusBarErrA lda (pData),y dec jsr SCRN.InvLineA - pla >PUSHA >PUSHBI 1 @@ -333,9 +287,7 @@ SCRN.UpdateStatusBarErrA SCRN.CursorAdjust .1 jsr BUF.ComputeCOffset bcc .8 - >DECW.G FileY - >STZ.G FileX bra .1 @@ -350,13 +302,11 @@ SCRN.ClearEOLA pha bcs .8 inc pha - lda #' ' >SYSCALL PutChar bcc .1 plx rts - .8 clc .9 rts *-------------------------------------- @@ -373,20 +323,16 @@ SCRN.InvLineA sta .2+1 >LDYA L.SEQ.INV >SYSCALL printf bcs .9 - ldy #ScreenW lda (pData),y .1 pha - lda #' ' >SYSCALL PutChar pla bcs .9 - dec bne .1 - lda #1 >PUSHA .2 lda #$ff @@ -394,8 +340,7 @@ SCRN.InvLineA sta .2+1 >PUSHBI 2 >LDYA L.MSG.GOTOXY >SYSCALL printf - -.9 rts +.9 rts *-------------------------------------- SCRN.GotoCurXCurY ldy #CurX @@ -404,7 +349,6 @@ SCRN.GotoCurXCurY ldy #CurY lda (pData),y tay - GotoXY txa inc >PUSHA @@ -420,24 +364,20 @@ GotoXY.RTS rts SCRN.UpdateViewPort lda #$ff sta bNotRepaint - .1 ldy #FileX lda (pData),y ldy #ScreenX cmp (pData),y bcs .2 out of left border ? - ldy #ScreenX yes lda (pData),y dec sta (pData),y stz bNotRepaint bra .1 - .2 clc ldy #ScreenX lda (pData),y - ldy #ScreenW adc (pData),y dec @@ -450,20 +390,17 @@ SCRN.UpdateViewPort sta (pData),y stz bNotRepaint bra .2 - .3 ldy #FileY+1 lda (pData),y tax dey lda (pData),y A,X = FileY - ldy #ScreenY cmp (pData),y iny txa sbc (pData),y bcs .4 out of top border ? - ldy #ScreenY move viewport up one line.... lda (pData),y sbc #0 CC from BCS @@ -472,31 +409,26 @@ SCRN.UpdateViewPort lda (pData),y sbc #0 sta (pData),y - bit bNotRepaint bpl .3 jsr SCRN.scrollDn ...and move content one line down bcs GotoXY.RTS - .4 ldy #ScreenY+1 lda (pData),y tax dey lda (pData),y - ldy #ViewPortHm1 clc adc (pData),y bcc .41 inx - .41 ldy #FileY A,X = screen bottom cmp (pData),y txa iny FileY > screen bottom ? sbc (pData),y bcs .5 CS : fileY>= screen bottom - * clc from BCS ldy #ScreenY move viewport down one line.... lda (pData),y @@ -506,14 +438,11 @@ SCRN.UpdateViewPort lda (pData),y adc #0 sta (pData),y - bit bNotRepaint bpl .4 - jsr SCRN.scrollUp ...and move content one line up bcs .9 bra .4 - .5 sec ldy #FileX lda (pData),y @@ -521,7 +450,6 @@ SCRN.UpdateViewPort sbc (pData),y ldy #CurX sta (pData),y - sec ldy #FileY lda (pData),y @@ -529,16 +457,12 @@ SCRN.UpdateViewPort sbc (pData),y ldy #CurY sta (pData),y - bit bNotRepaint bmi .6 - jsr SCRN.UpdateMain bcs .9 - .6 jsr SCRN.UpdateStatusBar bcs .9 - jmp SCRN.GotoCurXCurY .9 rts *-------------------------------------- @@ -546,7 +470,6 @@ SCRN.scrollUp ldy #CurX lda (pData),y inc >PUSHA - ldy #CurY lda (pData),y inc @@ -556,7 +479,6 @@ SCRN.scrollUp ldy #CurX >LDYA L.SEQ.SCROLLUP >SYSCALL printf bcs .9 - ldy #ScreenY+1 lda (pData),y tax @@ -569,7 +491,6 @@ SCRN.scrollUp ldy #CurX inx .1 jsr BUF.GetLineAX bcs .9 - ldy #ViewPortHm1 lda (pData),y jmp SCRN.UpdateLineAtALenY @@ -580,7 +501,6 @@ SCRN.scrollDn ldy #CurX lda (pData),y inc >PUSHA - ldy #CurY lda (pData),y inc @@ -598,7 +518,6 @@ SCRN.scrollDn ldy #CurX lda (pData),y jsr BUF.GetLineAX bcs .9 - lda #0 jmp SCRN.UpdateLineAtALenY .9 rts diff --git a/BIN/EDIT.S.txt b/BIN/EDIT.S.txt index cb63253d..13d02192 100644 --- a/BIN/EDIT.S.txt +++ b/BIN/EDIT.S.txt @@ -57,7 +57,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -127,53 +127,39 @@ CS.RUN >PUSHBI 0 >LDYA L.SEQ.DETECT >SYSCALL printf Send Query for term W & H bcs CS.RUN.RTS - .1 >SYSCALL GetChar bcs CS.RUN.RTS - jsr CharIn - >LDA.G ScreenW Wait for Response from terminal for W & H beq .1 - lda #1 >SYSCALL ArgV bcs .2 No arg, new file.... - >SYSCALL RealPath txa >STA.G hFileName - jsr LoadFile bcc .3 if CS, Failed to load file, keep name, but new file.... cmp #E.OOM beq CS.RUN.RTS - .2 >LDYAI 1 buffer size = 0 (+ 1 for ending 0) >SYSCALL GetMem0 bcs CS.RUN.RTS - txa >STA.G hBuffer BufLen already set to 0 - .3 lda #$ff >STA.G bSaved - jsr SCRN.Init bcs CS.RUN.RTS - CS.RUN.LOOP >SYSCALL GetChar bcs CS.RUN.RTS I/O error - jsr CharIn bcs .9 - >LDA.G bCancel bpl CS.RUN.LOOP lda #0 - .9 pha >PUSHBI 0 >LDYA L.SEQ.RESET @@ -190,15 +176,12 @@ CS.QUIT ldy #hLineBuffer ldy #hBuffer jsr .8 - ldy #hBufferBackup jsr .8 - ldy #hClipBoard jsr .8 ldy #hFileName - .8 lda (pData),y beq .9 >SYSCALL FreeMem @@ -212,7 +195,6 @@ CharIn tax asl txa bcc .1 Not in ESC mode - cmp #'[' beq .8 @@ -220,19 +202,16 @@ CharIn tax lda (pData),y inc sta (pData),y - clc adc #EscBuffer tay txa sta (pData),y - cmp #64 bcc .8 jsr CharIn.Esc bcs .8 Not translated, exit - .1 cmp #C.ESC bne .2 @@ -243,7 +222,6 @@ CharIn tax .8 clc rts - .2 pha >LDA.G PromptMode tax @@ -251,41 +229,30 @@ CharIn tax jmp (J.PROMPT,x) *-------------------------------------- CharIn.Esc >STZ.G bEscMode - ldy #EscBuffer lda (pData),y clc adc #EscBuffer tay - lda (pData),y - ldx EscChars - .1 cmp EscChars,x beq .2 dex bne .1 - cmp #'R' Response to cursor position query? beq .3 - sec rts - .2 lda EscAscii,x clc rts - .3 stz TmpByte - ldy #EscBuffer+1 - .4 lda (pData),y cmp #';' beq .5 - and #$0f pha lda TmpByte @@ -301,7 +268,6 @@ CharIn.Esc >STZ.G bEscMode sta TmpByte iny bra .4 - .5 phy lda TmpByte @@ -314,17 +280,12 @@ CharIn.Esc >STZ.G bEscMode dec ldy #ViewPortHm1 Remove 1 more to store offsert to last line of viewport sta (pData),y - ply - stz TmpByte - iny - .6 lda (pData),y cmp #'R' beq .7 - and #$0f pha lda TmpByte @@ -340,11 +301,9 @@ CharIn.Esc >STZ.G bEscMode sta TmpByte iny bra .6 - .7 lda TmpByte ldy #ScreenW sta (pData),y - sec rts *-------------------------------------- @@ -352,9 +311,7 @@ LoadFile >PUSHWZ Aux type >PUSHBI S.FI.T.TXT >PUSHBI O.RDONLY >LDA.G hFileName - >SYSCALL GetMemPtr - >SYSCALL LoadTXTFile bcs .9 @@ -364,48 +321,37 @@ LoadFile >PUSHWZ Aux type >SYSCALL GetMemPtr >STYA BufPtr >STYA BufPtrBackup - stz BufLen stz BufLen+1 ldy #0 ldx #0 - .1 lda (BufPtrBackup),y beq .8 cpx #C.CR bne .2 - cmp #C.LF beq .5 - .2 cmp #C.SPACE bcs .3 - cmp #C.CR bne .5 - .3 sta (BufPtr) inc BufPtr bne .4 inc BufPtr+1 - .4 inc BufLen bne .5 inc BufLen+1 - .5 tax set previous char iny bne .1 - inc BufPtrBackup+1 bra .1 - .8 sta (BufPtr) clc - .9 jmp BUF.ResetSel *-------------------------------------- SaveFile >PUSHWZ Aux type @@ -416,15 +362,11 @@ SaveFile >PUSHWZ Aux type >SYSCALL FOpen bcs .9 - pha - >PUSHW BufLen - >LDA.G hBuffer >SYSCALL GetMemPtr >PUSHYA - pla pha @@ -438,11 +380,9 @@ SaveFile >PUSHWZ Aux type pla sec rts - .1 pla - >SYSCALL FClose - -.9 rts + >SYSCALL FClose.9 + rts *-------------------------------------- .INB USR/SRC/BIN/EDIT.S.BUF .INB USR/SRC/BIN/EDIT.S.CTRL diff --git a/BIN/ETCONFIG.S.txt b/BIN/ETCONFIG.S.txt index 79fe58aa..b17a2569 100644 --- a/BIN/ETCONFIG.S.txt +++ b/BIN/ETCONFIG.S.txt @@ -44,7 +44,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -93,7 +93,6 @@ CS.RUN >LIBCALL hLIBETALK,LIBETALK.GETCFG >STYA pETKCFG ldy #S.ETKCFG-1 - .1 lda (pETKCFG),y sta ETKCFG,y dey @@ -101,13 +100,11 @@ CS.RUN >LIBCALL hLIBETALK,LIBETALK.GETCFG lda ETKCFG+S.NETCFG.DevID bne CS.RUN.SETUP - >LDYA L.MSG.NODEV >SYSCALL puts lda #MLI.E.NODEV sec rts - CS.RUN.SETUP jsr CS.RUN.PROBE jsr CS.RUN.DUMP @@ -119,7 +116,6 @@ CS.RUN.SETUP jsr CS.RUN.PROBE CS.RUN.DUMP >PUSHEA.G DIB lda ETKCFG+S.NETCFG.DevID >SYSCALL GetDevStatus - >LEA.G DCB.NIC >STYA IOCTL+S.IOCTL.BUFPTR lda #S.IOCTL.STATCODE.GETDCB @@ -129,10 +125,8 @@ CS.RUN.DUMP >PUSHEA.G DIB >PUSHBI IOCTL.STATUS lda ETKCFG+S.NETCFG.DevID >SYSCALL IOCTL - CS.RUN.DUMPNIC ldy #DCB.NIC+S.DCB.NIC.MAC+5 ldx #6 - .1 lda (pData),y >PUSHA dey @@ -150,24 +144,19 @@ CS.RUN.DUMPNIC ldy #DCB.NIC+S.DCB.NIC.MAC+5 adc /S.FD.DEV >PUSHYA - lda ETKCFG+S.NETCFG.DevID >PUSHA >PUSHBI 11 >LDYA L.MSG1.DEV >SYSCALL printf - >LDA.G DCB.NIC+S.DCB.NIC.FLAGS and #S.DCB.NIC.FLAGS.ARPOFFLOAD beq .2 - lda #1 - .2 >PUSHA >PUSHBI 1 >LDYA L.MSG1.DEV.ARP >SYSCALL printf - >LDA.G DCB.NIC+S.DCB.NIC.FLAGS and #S.DCB.NIC.FLAGS.IPOFFLOAD @@ -183,36 +172,28 @@ CS.RUN.DUMPNIC ldy #DCB.NIC+S.DCB.NIC.MAC+5 >LDA.G DCB.NIC+S.DCB.NIC.LINK and #S.DCB.NIC.LINK.OK bne CS.RUN.LINK - >LDYA L.MSG1.LINK.KO >SYSCALL puts bra CS.RUN.DUMPNET - CS.RUN.LINK >LDYA L.MSG1.LINK.OK >SYSCALL puts - >PUSHBI 0 >LDYA L.MSG1.LINKSPEED >SYSCALL printf - >LDA.G DCB.NIC+S.DCB.NIC.SPEED and #$0F tax - .4 phx lda #'0' >SYSCALL PutChar plx dex bne .4 - >LDA.G DCB.NIC+S.DCB.NIC.LINK and #S.DCB.NIC.LINK.FD bne .5 - >LDYA L.MSG1.DPLX.HD bra .6 - .5 >LDYA L.MSG1.DPLX.FD .6 >SYSCALL puts @@ -221,12 +202,9 @@ CS.RUN.DUMPNET >PUSHBI 0 >SYSCALL printf lda ETKCFG+S.ETKCFG.NodID beq .11 - >LDYA L.MSG2.C bra .10 - .11 >LDYA L.MSG2.U - .10 >SYSCALL puts >PUSHB ETKCFG+S.ETKCFG.NodID @@ -235,20 +213,16 @@ CS.RUN.DUMPNET >PUSHBI 0 >PUSHBI 3 >LDYA L.MSG2.ADDR >SYSCALL printf - >PUSHB ETKCFG+S.ETKCFG.Router >PUSHW ETKCFG+S.ETKCFG.NetID - >PUSHBI 3 >LDYA L.MSG2.ROUTER >SYSCALL printf - >PUSHW L.ETKCFG.OBJECT >PUSHBI 2 >LDYA L.MSG2.OBJECT >SYSCALL printf - lda #0 tell TSKMGR that all done ok, but sec we do not want to stay in memory rts @@ -263,7 +237,6 @@ CS.RUN.PROBE >PUSHBI 0 sta AARP.PRB.SHA,x dex bpl .20 - lda #0 * lda #$58 sta AARP.PRB.SPA+2 @@ -281,21 +254,17 @@ CS.RUN.PROBE >PUSHBI 0 * lda #$3A bne .1 inc - .1 cmp #$FE bcc .2 eor #$80 bne .2 inc - .2 sta AARP.PRB.SPA+3 sta AARP.PRB.TPA+3 sta ETKCFG+S.ETKCFG.NodID - lda #PROBE.MAX >STA.G PROBE.CNT - .3 >LDYA L.AARP.PRB >STYA IOCTL+S.IOCTL.BUFPTR >LDYAI AARP.PRB.LEN @@ -304,12 +273,9 @@ CS.RUN.PROBE >PUSHBI 0 >PUSHBI IOCTL.WRITE lda ETKCFG+S.NETCFG.DevID >SYSCALL IOCTL - >SLEEP - >DEC.G PROBE.CNT bne .3 - >LDYA L.DDP.GetNetInfo >STYA IOCTL+S.IOCTL.BUFPTR >LDYAI DDP.GetNetInfo.LEN @@ -318,10 +284,8 @@ CS.RUN.PROBE >PUSHBI 0 >PUSHBI IOCTL.WRITE lda ETKCFG+S.NETCFG.DevID >SYSCALL IOCTL - >LDYA L.MSG.PROBE.OK >SYSCALL puts - clc rts *-------------------------------------- @@ -329,10 +293,8 @@ CFG.EtcFiles >LDYAI 256 >SYSCALL GetMem bcc .1 rts - .1 >STYA ZPTmpPtr1 stx CFG.hBuf1 - >LDYA L.HOSTNAME jsr CFG.Read.PrintF jsr CFG.Read.HOSTNAME @@ -347,14 +309,12 @@ CFG.EtcFiles >LDYAI 256 >SYSCALL sprintf lda #11 sta ETKCFG+S.ETKCFG.OBJECT - .4 >PUSHW L.ETKCFG >LIBCALL hLIBETALK,LIBETALK.SETCFG lda CFG.hBuf1 >SYSCALL freemem - -.9 rts +.9 rts *-------------------------------------- CFG.Read.PrintF >PUSHYA >PUSHBI 2 @@ -367,28 +327,22 @@ CFG.Read.HOSTNAME jsr CFG.Read.Open jsr CFG.Read.Result bcs .9 - .1 jsr CFG.Read.GetS bcs .8 - lda (ZPTmpPtr1) beq .1 empty line... cmp #'# beq .1 comment... - ldy #0 .2 lda (ZPTmpPtr1),y beq .8 end of name sta ETKCFG+S.ETKCFG.OBJECT,y - iny cpy #32 bne .2 - .8 tya sta ETKCFG+S.ETKCFG.OBJECT - clc .HS B0 BCS .9 sec @@ -401,35 +355,28 @@ CFG.Read.Result bcc .1 >SYSCALL printf sec rts - .1 >LDYA L.MSG.CFG.OK >SYSCALL puts rts *-------------------------------------- CFG.Read.Open stz CFG.hCfgFile - pha - >PUSHWZ >PUSHBI S.FI.T.TXT >PUSHBI O.RDONLY - pla >SYSCALL fopen bcs .9 - sta CFG.hCfgFile -* clc -.9 rts +* clc +.9 rts *-------------------------------------- CFG.Read.Close php pha - -CFG.Read.Close2 - lda CFG.hCfgFile + +CFG.Read.Close2 lda CFG.hCfgFile beq .8 >SYSCALL fclose - .8 pla plp rts @@ -442,20 +389,16 @@ CFG.Read.GetS >PUSHWI 255 *-------------------------------------- CS.DOEVENT lda (pEvent) bpl .9 is it a TIMER event? - >LDA.G TimeOut beq .9 - dec sta (pData),y - .9 sec do not discard TIMER event rts *-------------------------------------- CS.QUIT lda hLIBETALK beq .8 >SYSCALL UnloadLib - .8 clc rts *-------------------------------------- @@ -550,7 +493,7 @@ DDP.GetNetInfo .HS 090007FFFFFF S.ETH.DSTMAC .HS 00.00.00.00 .HS 00 Zone Len .BS DDP.GetNetInfo+60-* -DDP.GetNetInfo.LEN .EQ 60 +DDP.GetNetInfo.LEN .EQ 60 *-------------------------------------- IOCTL .BS S.IOCTL *-------------------------------------- diff --git a/BIN/FNT2FON.S.txt b/BIN/FNT2FON.S.txt index e11846fc..9d6f9e9f 100644 --- a/BIN/FNT2FON.S.txt +++ b/BIN/FNT2FON.S.txt @@ -35,7 +35,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -53,57 +53,45 @@ CS.INIT .1 >INC.G Count >SYSCALL ArgV bcs .7 - >STYA ZPPtr1 - lda (ZPPtr1) cmp #'-' bne .4 - ldy #1 lda (ZPPtr1),y ldx OptionList - .2 cmp OptionList,x beq .3 dex bne .2 - .99 >LDYA L.MSG.USAGE >SYSCALL printf lda #E.SYN sec rts - .3 ldy OptionVars-1,x lda #$80 sta (pData),y bra .1 - .4 >LDA.G hInputBuf bne .5 jsr CS.INIT.OPENINPUT bcc .1 scan for any other args rts - .5 >LDA.G hOutputFile bne .99 jsr CS.INIT.CREATEOUTPUT bcc .1 scan for any other args rts - .7 >LDA.G hOutputFile beq .99 - >LDYAI 8192 max 256x256 pixels >SYSCALL getmem bcs CS.INIT.RTS - >STYA ZPCharBufPtr txa >STA.G hCharBuf - .8 clc CS.INIT.RTS rts *-------------------------------------- @@ -114,33 +102,25 @@ CS.INIT.OPENINPUT >LDYA ZPPtr1 >SYSCALL LoadFile bcs CS.INIT.RTS - >PUSHYA - txa >STA.G hInputBuf >SYSCALL GetMemPtr >STYA ZPInputBufPtr - >LDYA L.MSG.FILE.OK - >SYSCALL printf - + >SYSCALL printf ldy #S.FNT.dfVersion lda (ZPInputBufPtr),y bne .99 - iny lda (ZPInputBufPtr),y cmp #2 beq .1 - cmp #3 bne .99 - .1 asl *2 = Entry Len in Tbl >STA.G FNT.Version pha - ldy #S.FNT.dfAscent lda (ZPInputBufPtr),y >STA.G FON.Header+S.FON.Ascent @@ -158,17 +138,15 @@ CS.INIT.OPENINPUT pla >PUSHA - >LDYA L.MSG.HEADER.OK >SYSCALL printf clc rts - .99 >LDYA L.MSG.HEADER.KO >SYSCALL printf lda #E.IBIN sec - rts + rts *-------------------------------------- CS.INIT.CREATEOUTPUT >PUSHWZ Aux type @@ -178,16 +156,13 @@ CS.INIT.CREATEOUTPUT >SYSCALL FOpen bcs .9 >STA.G hOutputFile - >LDYAI 256 >SYSCALL getmem bcs .9 - >STYA ZPOutPutBufPtr txa >STA.G hOutPutBuf - -.9 rts +.9 rts *-------------------------------------- CS.RUN ldy #S.FNT.dfBreakChar lda (ZPInputBufPtr),y @@ -209,10 +184,8 @@ CS.RUN ldy #S.FNT.dfBreakChar >STA.G FON.Header+S.FON.First >STA.G CharIndex >PUSHA - >LDYA L.MSG.RANGE >SYSCALL printf - >LDA.G FON.Header+S.FON.Last sec >SBC.G FON.Header+S.FON.First @@ -227,7 +200,6 @@ CS.RUN ldy #S.FNT.dfBreakChar iny sta (pData),y ply - >SYSCALL getmem bcs .9 >STYA ZPOutPutTblPtr @@ -239,14 +211,11 @@ CS.RUN ldy #S.FNT.dfBreakChar >ADC.G FileOffset sta (pData),y sta ZPOutPutCharOfs - iny - lda /S.FON adc (pData),y sta (pData),y sta ZPOutPutCharOfs+1 - >LEA.G FileOffset >PUSHYA >PUSHBI SYS.FSeek.SET @@ -254,13 +223,11 @@ CS.RUN ldy #S.FNT.dfBreakChar >SYSCALL FSeek bcc .1 .9 rts - .1 >LDA.G FNT.Version ldx #S.FNT.dfCharTable2 cmp #4 beq .2 ldx #S.FNT.dfCharTable3 - .2 txa clc adc ZPInputBufPtr @@ -268,7 +235,6 @@ CS.RUN ldy #S.FNT.dfBreakChar lda #0 adc ZPInputBufPtr+1 sta ZPInputTblPtr+1 - CS.RUN.LOOP >SLEEP >SYSCALL GetChar @@ -276,10 +242,8 @@ CS.RUN.LOOP >SLEEP cmp #$03 Ctrl-C beq .9 Abort.... - cmp #$13 Ctrl-S bne .3 - >LDA.G bPause eor #$FF sta (pData),y @@ -296,18 +260,15 @@ CS.RUN.LOOP >SLEEP lda (ZPInputTblPtr),y adc ZPInputBufPtr+1 sta ZPInputBMPtr+1 - jsr CS.RUN.GetChar jsr CS.RUN.ShiftLChar jsr CS.RUN.CutRChar jsr CS.RUN.DumpChar jsr CS.RUN.StoreChar bcs .9 - >INC.G CharIndex >DEC.G CharCount beq .8 - lda ZPInputTblPtr clc >ADC.G FNT.Version @@ -315,16 +276,12 @@ CS.RUN.LOOP >SLEEP bcc CS.RUN.LOOP inc ZPInputTblPtr+1 bra CS.RUN.LOOP - .8 jsr CS.RUN.FlushOutPutBuf bcs .9 - jsr CS.RUN.WriteBMAndTbl bcs .9 - >LDYA L.MSG.DONE >SYSCALL printf - lda #0 sec .9 rts @@ -345,13 +302,10 @@ CS.RUN.GetChar lda (ZPInputTblPtr) Get Char PixW and #7 beq .1 inx - .1 txa >STA.G CharByteW >STA.G CharOutByteW - lda #0 0 -> A -> CharByteW - .2 pha clc adc ZPCharBufPtr @@ -359,9 +313,7 @@ CS.RUN.GetChar lda (ZPInputTblPtr) Get Char PixW lda #0 adc ZPCharBufPtr+1 sta ZPPTR1+1 - >LDA.G FON.Header+S.FON.PixH - tax .3 lda (ZPInputBMPtr) Get one source byte @@ -369,7 +321,6 @@ CS.RUN.GetChar lda (ZPInputTblPtr) Get Char PixW inc ZPInputBMPtr bne .4 inc ZPInputBMPtr+1 - .4 tay lda TWIST,y sta (ZPPTR1) @@ -379,7 +330,6 @@ CS.RUN.GetChar lda (ZPInputTblPtr) Get Char PixW sta ZPPTR1 bcc .5 inc ZPPTR1+1 - .5 dex bne .3 @@ -387,7 +337,6 @@ CS.RUN.GetChar lda (ZPInputTblPtr) Get Char PixW inc >CMP.G CharByteW bne .2 - clc rts *-------------------------------------- @@ -402,50 +351,38 @@ CS.RUN.DumpChar >LDA.G CharOutByteW >PUSHA >LDYA L.MSG.DUMP >SYSCALL printf - lda ZPCharBufPtr sta ZPPTR1 lda ZPCharBufPtr+1 sta ZPPTR1+1 >LDA.G FON.Header+S.FON.PixH - .1 pha lda #'|' >SYSCALL PutChar - >LDA.G CharOutPixW >STA.G Count ldy #0 - .2 lda (ZPPTR1),y phy - ldx #8 - .4 lsr pha lda #' ' bcc .5 lda #'O' - .5 phx >SYSCALL PutChar plx - >DEC.G Count beq .6 - pla Get back BYTE - dex bne .4 - ply iny bra .2 - .6 pla pla @@ -455,7 +392,6 @@ CS.RUN.DumpChar >LDA.G CharOutByteW >SYSCALL PutChar lda #10 >SYSCALL PutChar - lda ZPPTR1 clc >ADC.G CharByteW @@ -466,103 +402,83 @@ CS.RUN.DumpChar >LDA.G CharOutByteW .7 pla dec bne .1 - rts *-------------------------------------- CS.RUN.ShiftLChar >LDA.G bNoShrink bmi .9 - .1 lda ZPCharBufPtr sta ZPPTR1 lda ZPCharBufPtr+1 sta ZPPTR1+1 - >LDA.G FON.Header+S.FON.PixH tax lda #0 pha - .2 pla ora (ZPPTR1) pha - lda ZPPTR1 clc >ADC.G CharByteW sta ZPPTR1 bcc .3 inc ZPPTR1+1 - .3 dex bne .2 - pla beq .9 No pixel in first COL, must be SPACE or BREAK - - lsr + lsr bcs .9 - lda ZPCharBufPtr sta ZPPTR1 lda ZPCharBufPtr+1 sta ZPPTR1+1 - >LDA.G FON.Header+S.FON.PixH tax .4 >LDA.G CharByteW tay clc - .5 dey lda (ZPPTR1),y ror sta (ZPPTR1),y tya bne .5 - lda ZPPTR1 clc >ADC.G CharByteW sta ZPPTR1 bcc .6 inc ZPPTR1+1 - .6 dex bne .4 - >DEC.G CharOutPixW and #7 bne .1 >DEC.G CharOutByteW bra .1 - .9 rts *-------------------------------------- CS.RUN.CutRChar >LDA.G bNoShrink bmi .9 - .1 lda ZPCharBufPtr sta ZPPTR1 lda ZPCharBufPtr+1 sta ZPPTR1+1 - >LDA.G FON.Header+S.FON.PixH tax >LDA.G CharOutByteW tay dey - lda #0 pha - .2 pla ora (ZPPTR1),y pha - phy lda ZPPTR1 clc @@ -574,11 +490,9 @@ CS.RUN.CutRChar >LDA.G bNoShrink .3 ply dex bne .2 - pla bmi .9 Bit 7 is colored....exit bne .4 - tya No bits in this COL beq .9 was COL 0.....SPACE or BREAK @@ -588,7 +502,6 @@ CS.RUN.CutRChar >LDA.G bNoShrink asl >STA.G CharOutPixW bra .1 - .4 pha >LDA.G CharOutByteW asl @@ -596,14 +509,11 @@ CS.RUN.CutRChar >LDA.G bNoShrink asl tax pla - .5 dex asl bpl .5 - txa >STA.G CharOutPixW - pha lsr lsr @@ -613,62 +523,48 @@ CS.RUN.CutRChar >LDA.G bNoShrink and #7 beq .7 inx - .7 txa >STA.G CharOutByteW - .9 rts *-------------------------------------- CS.RUN.StoreChar lda ZPOutPutCharOfs sta (ZPOutPutTblPtr) - lda ZPOutPutCharOfs+1 ldy #1 sta (ZPOutPutTblPtr),y - lda ZPOutPutTblPtr clc adc #2 sta ZPOutPutTblPtr bcc .1 - inc ZPOutPutTblPtr+1 - .1 >LDA.G CharOutPixW jsr CS.RUN.WriteByte bcs .99 - >LDA.G CharOutByteW jsr CS.RUN.WriteByte bcs .99 - lda ZPCharBufPtr sta ZPPTR1 lda ZPCharBufPtr+1 sta ZPPTR1+1 - >LDA.G FON.Header+S.FON.PixH pha .2 >LDA.G CharOutByteW tax - ldy #0 - .3 lda (ZPPTR1),y jsr CS.RUN.WriteByte bcs .9 - iny dex bne .3 - pla dec beq .8 pha - lda ZPPTR1 clc >ADC.G CharByteW @@ -676,10 +572,8 @@ CS.RUN.StoreChar bcc .2 inc ZPPTR1+1 bra .2 - -.8 clc +.8 clc rts - .9 plx .99 rts *-------------------------------------- @@ -689,7 +583,6 @@ CS.RUN.WriteByte pha >LDA.G OutPutPtr tay - pla sta (ZPOutPutBufPtr),y tya @@ -698,7 +591,6 @@ CS.RUN.WriteByte tay clc bne .8 - >PUSHWI 256 >PUSHW ZPOutPutBufPtr >LDA.G hOutputFile @@ -721,41 +613,34 @@ CS.RUN.FlushOutPutBuf tay lda #0 >PUSHYA - >PUSHW ZPOutPutBufPtr >LDA.G hOutputFile >SYSCALL FWrite - .8 rts *-------------------------------------- CS.RUN.WriteBMAndTbl ldy #FileOffset ldx #4 lda #0 - .1 sta (pData),y iny dex bne .1 - >LEA.G FileOffset >PUSHYA >PUSHBI SYS.FSeek.SET >LDA.G hOutputFile >SYSCALL FSeek bcs .9 - >PUSHWI S.FON >PUSHEA.G FON.Header >LDA.G hOutputFile >SYSCALL FWrite bcs .9 - >LDA.G FON.Header+S.FON.Last sec >SBC.G FON.Header+S.FON.First inc - asl pha lda #0 @@ -769,7 +654,6 @@ CS.RUN.WriteBMAndTbl >LDA.G hOutputFile >SYSCALL FWrite - clc .9 rts *-------------------------------------- @@ -783,7 +667,6 @@ CS.QUIT >LDA.G hOutPutBuf .1 >LDA.G hOutputFile beq .2 >SYSCALL fclose - .2 >LDA.G hInputBuf beq .3 >SYSCALL FreeMem diff --git a/BIN/FORMAT.S.txt b/BIN/FORMAT.S.txt index 5bbd691e..e150a3e5 100644 --- a/BIN/FORMAT.S.txt +++ b/BIN/FORMAT.S.txt @@ -56,17 +56,13 @@ CS.INIT ldy #S.PS.ARGC beq .90 .1 >INC.G ArgIndex - >SYSCALL ArgV bcc .11 jmp .8 - .11 >STYA ZPPtr1 - lda (ZPPtr1) cmp #'-' bne .4 - ldy #1 lda (ZPPtr1),y beq .90 @@ -75,24 +71,19 @@ CS.INIT ldy #S.PS.ARGC bcc .20 cmp #'9'+1 bcs .20 - and #$0F >STA.G CatSize bra .1 - .20 ldx OptionList - .2 cmp OptionList,x beq .3 dex bne .2 .90 bra .99 - .3 ldy OptionVars-1,x lda #$80 sta (pData),y bra .1 - .4 >LDA.G hDevID bne .5 Already have a dev...go get VolName @@ -102,17 +93,13 @@ CS.INIT ldy #S.PS.ARGC >STYA ZPPtrFD txa >STA.G hDevID - >LDYA ZPPtr1 >STYA ZPPtrDevName bra .1 - .5 ldy #$ff - .6 iny lda (ZPPtr1),y beq .61 - cpy #15 beq .99 VolName too long @@ -125,32 +112,27 @@ CS.INIT ldy #S.PS.ARGC >SYSCALL LoadLib bcs .9 sta hLIBBLKDEV - clc .9 rts - .99 >PUSHBI 0 >LDYA L.MSG.USAGE >SYSCALL printf lda #E.SYN sec - rts + rts *-------------------------------------- CS.RUN jsr CS.RUN.InitCat bcs .9 - jsr CS.RUN.BuildCat bcs .9 jsr CS.RUN.WriteCat bcs .9 - >LDYA L.MSG.OK >SYSCALL puts lda #0 sec rts - .9 pha >PUSHA >PUSHBI 1 @@ -175,7 +157,6 @@ CS.RUN.InitCat >LDA.G CatSize >LEA.G VolName >SYSCALL sprintf rts - .8 clc rts *-------------------------------------- @@ -184,23 +165,18 @@ CS.RUN.BuildCat >PUSHEA.G DIB >SYSCALL GetDevStatus bcs .99 - >LDA.G DIB+S.DIB.SIZE iny ora (pData),y bne .1 - >PUSHBI 0 >LDYA L.MSG.NOSIZE >SYSCALL printf lda #MLI.E.IO sec rts - - .1 >PUSHEA.G VolName >PUSHW.G DIB+S.DIB.SIZE - >PUSHW ZPPtrDevName >PUSHBI 6 @@ -219,17 +195,13 @@ CS.RUN.BuildCat >PUSHEA.G DIB >STA.G BlkCnt pla ply - >SYSCALL GetMem0 BufferSize bcs .9 - phx >STYA.G IOCTL+S.IOCTL.BUFPTR pla >STA.G hBuf - jsr .7 - >PUSHEA.G VolName >PUSHW.G IOCTL+S.IOCTL.BUFPTR >LIBCALL hLIBBLKDEV,LIBBLKDEV.BuildProDOSCat @@ -246,19 +218,14 @@ CS.RUN.WriteCat >PUSHEA.G IOCTL >SYSCALL IOCTL bcs .9 - lda #'.' >SYSCALL PutChar - >LDA.G IOCTL+S.IOCTL.BUFPTR+1 inc inc sta (pData),y - >INC.G IOCTL+S.IOCTL.BLKNUM - >SLEEP - >DEC.G BlkCnt bne CS.RUN.WriteCat .9 rts @@ -269,12 +236,9 @@ CS.DOEVENT sec CS.QUIT >LDA.G hBuf beq .1 >SYSCALL FreeMem - .1 lda hLIBBLKDEV beq .8 - >SYSCALL UnloadLib - .8 clc rts *-------------------------------------- diff --git a/BIN/GREP.S.txt b/BIN/GREP.S.txt index 20cb5a66..7af2ca42 100644 --- a/BIN/GREP.S.txt +++ b/BIN/GREP.S.txt @@ -44,7 +44,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -60,17 +60,13 @@ CS.INIT clc CS.RUN stz ArgIndex stz ArgPattern stz hFile - .10 jsr CS.RUN.NextArg bcs .8 - lda (ZPPtr1) cmp #'-' beq .1 - lda ArgPattern bne .11 - lda ArgIndex sta ArgPattern >LDYA ZPPtr1 @@ -84,31 +80,26 @@ CS.RUN stz ArgIndex jsr CS.RUN.OPEN bcs .9 sta hFile - bra .10 - + bra .10 + .1 ldy #1 lda (ZPPtr1),y ldx #OptionList.Cnt-1 - .2 cmp OptionList,x beq .3 dex bpl .2 - bra .97 - .3 txa beq .98 lsr tax - lda #$80 sta bIgnoreCase-1,x bra .10 scan for any other args - .97 lda #E.SYN -.98 pha +.98 pha >PUSHBI 0 >LDYA L.MSG.USAGE >SYSCALL printf @@ -118,11 +109,9 @@ CS.RUN stz ArgIndex .8 lda hFile bne .80 - ldy #S.PS.hStdIn lda (pPS),y tax - lda OF.Table.hFD-1,x >SYSCALL GetMemPtr >STYA ZPPtr1 @@ -133,48 +122,38 @@ CS.RUN stz ArgIndex .80 >LDYAI 256 >SYSCALL GetMem bcs .9 - >STYA ZPBufPtr stx hBuf - stz LineNum stz LineNum+1 - CS.RUN.LOOP >SLEEP >PUSHWI 256 >PUSHW ZPBufPtr lda hFile bne .1 - ldy #S.PS.hStdIn lda (pPS),y .1 >SYSCALL fgets bcs .9 - inc LineNum bne .2 inc LineNum+1 - .2 jsr CS.RUN.PRINT bcc CS.RUN.LOOP rts - .9 cmp #MLI.E.EOF bne .99 - lda #0 Exit with no Error .99 sec rts *-------------------------------------- CS.RUN.OPEN pha - >PUSHWZ Aux type >PUSHBI S.FI.T.TXT >PUSHBI O.RDONLY+O.TEXT - pla >SYSCALL FOpen bcs .9 @@ -184,10 +163,8 @@ CS.RUN.OPEN pha *-------------------------------------- CS.RUN.PRINT >LDYA ZPBufPtr >STYA ZPPtr1 - .1 lda (ZPPtr1) beq .8 - ldy #$ff .2 iny @@ -196,18 +173,14 @@ CS.RUN.PRINT >LDYA ZPBufPtr lda (ZPPatternPtr),y bne .8 - .3 lda (ZPPatternPtr),y beq .6 - jsr CS.RUN.toUpper sta char - lda (ZPPtr1),y jsr CS.RUN.toUpper cmp char beq .2 - inc ZPPtr1 bne .1 inc ZPPtr1+1 @@ -221,7 +194,6 @@ CS.RUN.PRINT >LDYA ZPBufPtr >LDYA L.MSG.NUMLINE >SYSCALL printf bcs .9 - .7 >LDYA ZPBufPtr >SYSCALL puts rts @@ -233,14 +205,12 @@ CS.RUN.NextArg inc ArgIndex lda ArgIndex >SYSCALL ArgV bcs .9 - >STYA ZPPtr1 .9 rts *-------------------------------------- CS.RUN.toUpper bit bIgnoreCase bpl .9 - cmp #'a' bcc .9 cmp #'z'+1 @@ -258,8 +228,7 @@ CS.QUIT lda hBuf beq .2 >SYSCALL FClose - -.2 +.2 .8 clc rts *-------------------------------------- diff --git a/BIN/GTEST.S.txt b/BIN/GTEST.S.txt index be01b6e9..692eea3f 100644 --- a/BIN/GTEST.S.txt +++ b/BIN/GTEST.S.txt @@ -57,10 +57,8 @@ CS.INIT clc *-------------------------------------- CS.RUN jsr GFX.Open bcs .9 - jsr LoadResources bcs .9 - >LDYA L.CB.RECT jsr GFX.Write.YA @@ -81,10 +79,8 @@ CS.RUN jsr GFX.Open lda hFontB sta CB.TEXTB+S.CB.hFont - >LDYA L.MESSAGEB >STYA CB.TEXTB+S.CB.TxtPtr - >LDYA L.CB.TEXTB >SYSCALL OSD bcs .9 @@ -116,14 +112,10 @@ CS.DOEVENT clc *-------------------------------------- CS.QUIT lda hFont beq .1 - >SYSCALL FreeStkObj - .1 lda hFontB beq .2 - >SYSCALL FreeStkObj - .2 lda CB.PIX+S.CB.SrcPtr beq .3 @@ -132,7 +124,6 @@ CS.QUIT lda hFont .3 lda hDevGFX beq .8 - * >DEBUG * >SYSCALL close * >DEBUG @@ -170,7 +161,6 @@ GFX.Open >PUSHBI 0 >LDYA L.DEVNAME.GFX >SYSCALL open bcs .9 - sta hDevGFX .9 rts *-------------------------------------- @@ -255,7 +245,6 @@ BM.Apple .DA #S.BM.F.BBP4 .DA 16 W .DA 7 H .DA BM.Apple.AND-BM.Apple - .HS 0006 green (8) .HS 6006 green (8) .HS EEEE yellow (15) @@ -263,7 +252,6 @@ BM.Apple .DA #S.BM.F.BBP4 .HS 8808 magenta (10) .HS 9999 violet (11) .HS 1001 Dark blue (4) - BM.Apple.AND .HS FFF0 .HS 0FF0 .HS 0000 diff --git a/BIN/HTTPGET.S.txt b/BIN/HTTPGET.S.txt index 63eed9ff..48408d60 100644 --- a/BIN/HTTPGET.S.txt +++ b/BIN/HTTPGET.S.txt @@ -41,7 +41,7 @@ CS.START cld .DA #0 .DA CS.END-CS.START Code Length To Relocate .DA DS.END-DS.START Data Segment to Allocate - .DA #16 SS + .DA #64 SS .DA #ZS.END-ZS.START Zero Page Size .DA 0 *-------------------------------------- @@ -75,25 +75,21 @@ CS.INIT >LDYA L.LIBTCPIP *-------------------------------------- CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ? >STYA ZPIPCfgPtr - lda (ZPIPCfgPtr) Configured ? bmi CS.RUN.IPOK - >LDYA L.MSG.IPKO >SYSCALL puts lda #E.SYN sec rts - + CS.RUN.IPOK ldy #S.IPCFG.IP+3 ldx #3 - .1 lda (ZPIPCfgPtr),y sta SA.LOCAL+S.SOCKADDR.ADDR,x dey dex bpl .1 - >INC.G ArgIndex >SYSCALL ArgV bcs .9 @@ -102,7 +98,6 @@ CS.RUN.IPOK ldy #S.IPCFG.IP+3 jsr Init.Timeout .2 >PUSHW L.SA.REMOTE.AD - >PUSHW ZPHostPtr >LIBCALL hLIBTCPIP,LIBTCPIP.HST.GETBYNAME bcc CS.RUN.HOSTOK @@ -115,44 +110,37 @@ CS.RUN.IPOK ldy #S.IPCFG.IP+3 >LDYA L.MSG.UNKNOWN >SYSCALL printf bra CS.RUN.ESYN - .9 >PUSHBI 0 >LDYA L.MSG.USAGE >SYSCALL printf CS.RUN.ESYN lda #E.SYN - sec + sec CS.RUN.RTS rts CS.RUN.HOSTOK >INC.G ArgIndex >SYSCALL ArgV bcc .10 jmp CS.RUN.PORTOK - .10 >STYA ZPPtr lda (ZPPtr) cmp #'-' beq .1 - - >LDYA ZPPtr + >LDYA ZPPtr >SYSCALL atoi bcs CS.RUN.RTS >STYA SA.REMOTE+S.SOCKADDR.PORT - >INC.G ArgIndex >SYSCALL ArgV bcs .8 - >STYA ZPPtr lda (ZPPtr) cmp #'-' bne CS.RUN.ESYN - .1 ldy #1 lda (ZPPtr),y cmp #'U' bne .2 - >INC.G ArgIndex >SYSCALL ArgV .9 bcs CS.RUN.ESYN @@ -161,37 +149,30 @@ CS.RUN.HOSTOK >INC.G ArgIndex >SYSCALL strlen >STYA ZPReqBufLen .8 bra CS.RUN.PORTOK - .2 cmp #'F' bne CS.RUN.ESYN - >INC.G ArgIndex >SYSCALL ArgV bcs CS.RUN.RTS pha - >PUSHWZ Aux type >PUSHBI S.FI.T.TXT >PUSHBI O.RDONLY pla >SYSCALL LoadTxtFile bcs .9 - >STYA ZPReqBufLen txa >STA.G hReqBuf >SYSCALL GetMemPtr >STYA ZPReqBufPtr - CS.RUN.PORTOK >PUSHW ZPHostPtr >PUSHW SA.REMOTE+S.SOCKADDR.PORT ldx #3 - .1 >PUSHB SA.REMOTE+S.SOCKADDR.ADDR,x dex bpl .1 - >PUSHBI 8 >LDYA L.MSG.HOSTOK >SYSCALL printf @@ -207,21 +188,17 @@ CS.RUN.OPENSKT >PUSHBI 0 no protocol pla >LIBCALL hLIBTCPIP,LIBTCPIP.Bind bcc .2 - .9 >LDYA L.MSG.SKTKO >SYSCALL puts lda #E.SYN - sec + sec rts - .2 >PUSHW L.SA.REMOTE >LDA.G hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.Connect bcs .9 - >LDYA L.MSG.SKTOK >SYSCALL puts - >LDYAI RESP.BUFSIZE >SYSCALL getmem bcs .9 @@ -231,19 +208,16 @@ CS.RUN.OPENSKT >PUSHBI 0 no protocol CS.RUN.GET jsr CS.RUN.ENCODE bcs .99 - * >PUSHW ZPEncodedBufLen * >PUSHW ZPEncodedBufPtr * ldy #S.PS.hStdOut * lda (pPs),y * >SYSCALL fwrite - jsr CS.RUN.REQUEST bcs .99 jsr CS.RUN.RESPONSE bcs .99 - .9 lda #0 sec .99 rts @@ -277,14 +251,11 @@ CS.RUN.ENCODE >LDYA ZPReqBufPtr inc ZPEncodedBufLen bne .1 inc ZPEncodedBufLen+1 - .1 inc ZPPtr bne .11 inc ZPPtr+1 - .11 jsr CS.RUN.TOENCODE bcc .10 - .3 lda ZPEncodedBufLen clc adc #2 @@ -296,7 +267,6 @@ CS.RUN.ENCODE >LDYA ZPReqBufPtr .4 >LDYA ZPEncodedBufLen >SYSCALL GetMem bcs .9 - >STYA ZPEncodedBufPtr >STYA ZPPtr txa @@ -304,25 +274,19 @@ CS.RUN.ENCODE >LDYA ZPReqBufPtr .5 lda (ZPReqBufPtr) beq .8 - inc ZPReqBufPtr bne .6 inc ZPReqBufPtr+1 - .6 jsr CS.RUN.TOENCODE bcc .7 - jsr CS.RUN.ADDBYTETOBUF bra .5 - .7 jsr CS.RUN.ADDTOBUF bra .5 - .8 clc -.9 rts +.9 rts *-------------------------------------- CS.RUN.TOENCODE ldx #URI.ToEncode.Cnt-1 - .1 cmp URI.ToEncode,x beq .9 CS dex @@ -356,10 +320,9 @@ CS.RUN.ADDTOBUF sta (ZPPtr) inc ZPPtr bne .8 inc ZPPtr+1 -.8 rts +.8 rts *-------------------------------------- CS.RUN.REQUEST jsr Init.Timeout - .10 >PUSHWI HTTP.GET1.LEN >PUSHW L.HTTP.GET1 @@ -367,11 +330,9 @@ CS.RUN.REQUEST jsr Init.Timeout bcc .1 tay bne .99 - >SLEEP jsr Wait.TimeOut bcc .10 - .99 lda #MLI.E.IO sec rts @@ -380,7 +341,6 @@ CS.RUN.REQUEST jsr Init.Timeout >PUSHW ZPEncodedBufPtr jsr .8 bcs .9 - >PUSHWI HTTP.GET2.LEN >PUSHW L.HTTP.GET2 jsr .8 @@ -403,7 +363,6 @@ CS.RUN.REQUEST jsr Init.Timeout CS.RUN.RESPONSE jsr Init.Timeout .1 >SLEEP - >PUSHWI RESP.BUFSIZE >PUSHW ZPRespBufPtr >LDA.G hSocket @@ -412,15 +371,11 @@ CS.RUN.RESPONSE jsr Init.Timeout tay bne .8 - >LDA.G bResponse bne .81 - jsr Wait.Timeout bcs .99 - bra .1 - .2 >PUSHYA len >PUSHW ZPRespBufPtr ldy #S.PS.hStdOut @@ -430,15 +385,12 @@ CS.RUN.RESPONSE jsr Init.Timeout >INC.G bResponse bra .1 - .8 cmp #MLI.E.IO SKT Close ? bne .9 - .80 >LDA.G bResponse beq .99 .81 clc rts - .99 lda #MLI.E.IO .9 sec @@ -446,13 +398,10 @@ CS.RUN.RESPONSE jsr Init.Timeout *-------------------------------------- CS.DOEVENT lda (pEvent) bpl .9 is it a TIMER event? - >LDA.G TimeOut beq .9 - dec sta (pData),y - .9 sec do not discard TIMER event rts *-------------------------------------- @@ -460,26 +409,18 @@ CS.QUIT >LDA.G hSocket beq .1 >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown - .1 >LDA.G hReqBuf beq .2 - >SYSCALL freemem - .2 >LDA.G hEncodedBuf beq .3 - >SYSCALL freemem - .3 >LDA.G hRespBuf beq .4 - >SYSCALL freemem - .4 lda hLIBTCPIP beq .8 >SYSCALL UnloadLib - .8 clc rts *-------------------------------------- diff --git a/BIN/IPCONFIG.S.DHCP.txt b/BIN/IPCONFIG.S.DHCP.txt index ddfc4663..c87b6fb6 100644 --- a/BIN/IPCONFIG.S.DHCP.txt +++ b/BIN/IPCONFIG.S.DHCP.txt @@ -6,11 +6,9 @@ AUTO 4,1 DHCP.INIT lda IPCFG+S.NETCFG.STATUS and #S.IPCFG.STATUS.OK bne .99 Already Configured, exit - stz IPCFG+S.NETCFG.STATUS ldx #3 - .1 lda A2osX.TIMER16,x sta DHCP.DISC.XID,x sta DHCP.REQ.XID,x @@ -24,7 +22,6 @@ DHCP.INIT lda IPCFG+S.NETCFG.STATUS sta DHCP.REQ.CHADDR,x dex bpl .2 - clc .9 rts @@ -40,28 +37,23 @@ DHCP.RUN >PUSHBI 0 no protocol >LIBCALL hLIBTCPIP,LIBTCPIP.Socket bcc .1 .9 jmp DHCP.RUN.KO - .1 >STA.G hSocket pha >PUSHW L.SA.LOCAL pla >LIBCALL hLIBTCPIP,LIBTCPIP.Bind bcs .9 - >PUSHWI S.SOCKET.O.BROADCAST >LDA.G hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.setsockopt - >PUSHW L.SA.REMOTE >LDA.G hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.Connect bcs .9 - >LDYA L.MSG.DHCP.CFG1 >SYSCALL puts jsr Init.Timeout - DHCP.RUN.SDISC >PUSHW L.SA.DEST >PUSHWI DHCP.DISC.LEN >PUSHW L.DHCP.DISC @@ -75,7 +67,6 @@ DHCP.RUN.SDISC >PUSHW L.SA.DEST sta IPCFG DHCP.RUN.ROFFER >SLEEP - jsr DHCP.RUN.SKT.RCVD bcc .1 jsr Wait.Timeout @@ -83,11 +74,8 @@ DHCP.RUN.ROFFER >SLEEP lda #1 jmp DHCP.RUN.KO - .1 jsr CheckDHCPOffer - bcs DHCP.RUN.ROFFER - lda #S.IPCFG.STATUS.ROFFER sta IPCFG @@ -96,7 +84,6 @@ DHCP.RUN.SREQ ldx #3 .1 >PUSHB IPCFG+S.IPCFG.DHCPSRVR,x dex bpl .1 - >PUSHBI 4 >LDYA L.MSG.DHCP.CFG2 >SYSCALL printf @@ -110,22 +97,18 @@ DHCP.RUN.SREQ ldx #3 lda #S.IPCFG.STATUS.SREQ sta IPCFG - DHCP.RUN.RACK >SLEEP - jsr DHCP.RUN.SKT.RCVD bcc .1 jsr Wait.Timeout bne DHCP.RUN.RACK lda #2 bra DHCP.RUN.KO - .1 jsr CheckDHCPAck bcs DHCP.RUN.RACK - -DHCP.RUN.OK lda #S.IPCFG.STATUS.OK + DHCP.RUN.OK + lda #S.IPCFG.STATUS.OK sta IPCFG - >PUSHW L.IPCFG >LIBCALL hLIBTCPIP,LIBTCPIP.SETCFG @@ -135,21 +118,18 @@ DHCP.RUN.OK lda #S.IPCFG.STATUS.OK >PUSHA dex bpl .1 - ldx #3 .2 lda IPCFG+S.IPCFG.IP,x >PUSHA dex bpl .2 - >PUSHBI 8 >LDYA L.MSG.DHCP.OK >SYSCALL printf lda #0 Leave with NO ERROR sec rts - DHCP.RUN.KO pha >PUSHA >PUSHBI 1 @@ -166,20 +146,18 @@ DHCP.RUN.SKT.RCVD >STA.G hFrame >SYSCALL GetMemPtr - >STYA ZPFrameBase + >STYA ZPFrameBase .9 rts *-------------------------------------- DHCP.QUIT >LDA.G hSocket beq .1 >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown - .1 clc rts *-------------------------------------- CheckDHCPOffer jsr CheckDHCPXID bcs .9 - lda ZPFrameBase clc adc #S.DHCP.OPTIONS @@ -188,43 +166,33 @@ CheckDHCPOffer jsr CheckDHCPXID lda ZPFrameBase+1 adc /S.DHCP.OPTIONS sta ZPFramePtr+1 - lda (ZPFramePtr) cmp #S.DHCP.OPTIONS.MSGTYPE bne .9 - ldy #2 lda (ZPFramePtr),y cmp #S.DHCP.OPTIONS.DHCPOffer bne .9 - * ldy #S.DHCP.YIADDR+11 Copy YIADDR,SIADDR+GIADDR * ldx #11 - *.1 lda (ZPFrameBase),y * sta DHCP.REQ.YIADDR,x * dey * dex * bpl .1 - ldy #S.DHCP.YIADDR+3 ldx #3 - .2 lda (ZPFrameBase),y sta DHCP.REQ.OPT.REQIP,x sta IPCFG+S.IPCFG.IP,x dey dex bpl .2 - ldy #S.DHCP.SIADDR+3 lda (ZPFrameBase),y bne .3 - ldy #S.IP.SRC+3 - .3 ldx #3 - .4 lda (ZPFrameBase),y sta IPCFG+S.IPCFG.DHCPSRVR,x sta DHCP.REQ.OPT.SVRIP,x @@ -235,24 +203,20 @@ CheckDHCPOffer jsr CheckDHCPXID .5 inc ZPFramePtr skip Option 53 (DHCPOffer:530102) bne .6 inc ZPFramePtr+1 - .6 lda (ZPFramePtr) sec adc ZPFramePtr add option len + 1 sta ZPFramePtr bcc .7 inc ZPFramePtr+1 - .7 lda (ZPFramePtr) cmp #S.DHCP.OPTIONS.END beq .8 jsr GetDHCPOption May override SVRIP bra .5 - .8 jsr CS.RUN.DISCARD clc rts - .9 jsr CS.RUN.DISCARD sec rts @@ -261,16 +225,12 @@ GetDHCPOption cmp #S.DHCP.OPTIONS.MASK bne .1 ldx #S.IPCFG.MASK bra GetDHCPOption.CopyIP - .1 cmp #S.DHCP.OPTIONS.GW bne .2 - ldx #S.IPCFG.GW bra GetDHCPOption.CopyIP - .2 cmp #S.DHCP.OPTIONS.DNS bne .3 - ldx #S.IPCFG.DNS1 bra GetDHCPOption.CopyIP @@ -279,27 +239,21 @@ GetDHCPOption cmp #S.DHCP.OPTIONS.MASK ldy #5 ldx #3 - .31 lda (ZPFramePtr),y sta DHCP.REQ.OPT.SVRIP,x dey dex bpl .31 rts - .4 cmp #S.DHCP.OPTIONS.DOMAIN bne .9 - ldy #1 - lda (ZPFramePtr),y Get String len cmp #45 bcc .6 lda #44 - .6 sta IPCFG+S.IPCFG.DOMAIN store len tax - .7 iny lda (ZPFramePtr),y sta IPCFG+S.IPCFG.DOMAIN-1,y @@ -314,25 +268,19 @@ GetDHCPOption.CopyIP cmp #9 bcc .1 lda #8 max 8 bytes (2 DNS) - .1 iny - .2 pha - lda (ZPFramePtr),y sta IPCFG,x iny inx - pla dec bne .2 - rts *-------------------------------------- CheckDHCPAck jsr CheckDHCPXID bcs .9 - lda ZPFrameBase clc adc #S.DHCP.OPTIONS @@ -341,20 +289,16 @@ CheckDHCPAck jsr CheckDHCPXID lda ZPFrameBase+1 adc /S.DHCP.OPTIONS sta ZPFramePtr+1 - lda (ZPFramePtr) cmp #S.DHCP.OPTIONS.MSGTYPE bne .9 - ldy #2 lda (ZPFramePtr),y cmp #S.DHCP.OPTIONS.DHCPAck bne .9 - jsr CS.RUN.DISCARD clc rts - .9 jsr CS.RUN.DISCARD sec rts @@ -365,17 +309,14 @@ CS.RUN.DISCARD >LDA.G hFrame *-------------------------------------- CheckDHCPXID ldy #S.DHCP.XID+3 ldx #3 - .1 lda (ZPFrameBase),y cmp DHCP.DISC.XID,x same XID ? bne .9 dey dex bpl .1 - clc rts - .9 sec rts *-------------------------------------- diff --git a/BIN/IPCONFIG.S.ETC.txt b/BIN/IPCONFIG.S.ETC.txt index 64621edb..2d07ad4a 100644 --- a/BIN/IPCONFIG.S.ETC.txt +++ b/BIN/IPCONFIG.S.ETC.txt @@ -7,10 +7,8 @@ CFG.EtcFiles >LDYAI 256 >SYSCALL GetMem bcc .1 rts - .1 >STYA ZPTmpPtr1 stx CFG.hBuf1 - >LDYA L.HOSTNAME jsr CFG.Read.PrintF jsr CFG.Read.HOSTNAME @@ -23,17 +21,14 @@ CFG.EtcFiles >LDYAI 256 >PUSHW L.CFG.DefaultHost >LDYA L.IPCFG.HOSTNAME >SYSCALL sprintf - .4 >LDYA L.TCPIP.CONF jsr CFG.Read.PrintF jsr CFG.Read.TCPIP.CONF lda IPCFG+S.IPCFG.IP beq .5 - lda #S.IPCFG.STATUS.OK sta IPCFG+S.NETCFG.STATUS - .5 >LDYA L.HOSTS jsr CFG.Read.PrintF jsr CFG.Read.HOSTS @@ -43,8 +38,7 @@ CFG.EtcFiles >LDYAI 256 lda CFG.hBuf1 >SYSCALL freemem - -.9 rts +.9 rts *-------------------------------------- CFG.Read.PrintF >PUSHYA >PUSHBI 2 @@ -57,25 +51,20 @@ CFG.Read.HOSTNAME jsr CFG.Read.Open jsr CFG.Read.Result bcs .9 - .1 jsr CFG.Read.GetS bcs .8 - lda (ZPTmpPtr1) beq .1 empty line... cmp #'# beq .1 comment... - ldy #0 .2 lda (ZPTmpPtr1),y sta IPCFG+S.IPCFG.HOSTNAME,y beq .8 end of name - iny cpy #15 bne .2 - .8 clc .HS B0 BCS .9 sec @@ -86,15 +75,12 @@ CFG.Read.TCPIP.CONF jsr CFG.Read.Open jsr CFG.Read.Result bcs .9 - .1 jsr CFG.Read.GetS bcs .8 - lda (ZPTmpPtr1) beq .1 empty line... cmp #'# beq .1 comment... - ldy #$ff .2 iny @@ -102,12 +88,10 @@ CFG.Read.TCPIP.CONF beq .3 cmp #' ' bne .2 - .3 lda L.CFG.Keywords sta ZPTmpPtr2 lda L.CFG.Keywords+1 sta ZPTmpPtr2+1 - ldx #0 .4 phy save keyword len @@ -115,39 +99,31 @@ CFG.Read.TCPIP.CONF tya cmp (ZPTmpPtr2) bne .6 - .5 lda (ZPTmpPtr2),y dey cmp (ZPTmpPtr1),y bne .6 tya bne .5 - ply discard keyword len jsr .80 bra .1 - .6 lda (ZPTmpPtr2) sec adc ZPTmpPtr2 sta ZPTmpPtr2 bcc .7 inc ZPTmpPtr2+1 - .7 inx inx ply reset keyword len - lda (ZPTmpPtr2) bne .4 - bra .1 - .8 clc .HS B0 BCS .9 sec jmp CFG.Read.Close - .80 jmp (J.CFG.Keywords,x) *-------------------------------------- CFG.Read.address @@ -164,7 +140,6 @@ CFG.Read.nameserver lda IPCFG,x beq CFG.Read.IP ldx #S.IPCFG.DNS2+3 - CFG.Read.IP ldy #3 .1 txa @@ -179,15 +154,13 @@ CFG.Read.IP ldy #3 dex dey bpl .1 - - >PUSHBI 8 4 PTRs on stack + >PUSHBI 8 + 4 PTRs on stack >PUSHW L.CFG.IP.SScanF - lda (ZPTmpPtr2) sec adc ZPTmpPtr1 tay - lda ZPTmpPtr1+1 adc #0 @@ -203,7 +176,6 @@ CFG.Read.dnsdomain inc ZPTmpPtr1+1 .1 ldy #$ff - .2 iny lda (ZPTmpPtr1),y sta IPCFG+S.IPCFG.DOMAIN,y @@ -216,7 +188,6 @@ CFG.Read.dnsdomain *-------------------------------------- CFG.Read.HOSTS stz CFG.hBuf2 stz CFG.hBuf3 - >LDYA L.HOSTS jsr CFG.Read.Open jsr CFG.Read.Result @@ -228,35 +199,28 @@ CFG.Read.HOSTS stz CFG.hBuf2 >STYA ZPTmpPtr2 stx CFG.hBuf2 - >LDYAI 256 >SYSCALL GetMem bcs .9 >STYA ZPTmpPtr3 stx CFG.hBuf3 - .1 jsr CFG.Read.GetS bcs .8 - lda (ZPTmpPtr1) beq .1 empty line... cmp #'# beq .1 comment... - jsr CFG.Read.HOSTS.Scan bcs .1 - cmp #5 bcc .1 less than 5 parameters, ignore beq .2 no alias - >LDYA ZPTmpPtr3 jsr CFG.DNS.Add .2 >LDYA ZPTmpPtr2 - jsr CFG.DNS.Add - + jsr CFG.DNS.Add bra .1 .8 clc @@ -277,9 +241,7 @@ CFG.Read.HOSTS stz CFG.hBuf2 CFG.Read.HOSTS.Scan >PUSHW ZPTmpPtr3 >PUSHW ZPTmpPtr2 - ldx #3 - .2 txa clc adc L.CFG.IP @@ -290,7 +252,6 @@ CFG.Read.HOSTS.Scan dex bpl .2 - >PUSHBI 12 6 PTRs on stack >PUSHW L.CFG.HOST.SScanF >LDYA ZPTmpPtr1 @@ -301,7 +262,6 @@ CFG.Read.HOSTS.Scan CFG.DNS.ADD >STYA ZPTmpPtr1 >LDYA L.CFG.IP - >PUSHYA >PUSHW ZPTmpPtr1 >LIBCALL hLIBTCPIP,LIBTCPIP.DNS.Add @@ -313,35 +273,26 @@ CFG.Read.Result bcc .1 >SYSCALL printf sec rts - .1 >LDYA L.MSG.CFG.OK >SYSCALL puts rts *-------------------------------------- CFG.Read.Open stz CFG.hCfgFile - pha - >PUSHWZ >PUSHBI S.FI.T.TXT >PUSHBI O.RDONLY - pla >SYSCALL fopen bcs .9 - sta CFG.hCfgFile -* clc -.9 rts -*-------------------------------------- +* clc +.9 rts*-------------------------------------- CFG.Read.Close php pha - -CFG.Read.Close2 - lda CFG.hCfgFile +CFG.Read.Close2 lda CFG.hCfgFile beq .8 >SYSCALL fclose - .8 pla plp rts diff --git a/BIN/IPCONFIG.S.txt b/BIN/IPCONFIG.S.txt index eaf52466..22d82a24 100644 --- a/BIN/IPCONFIG.S.txt +++ b/BIN/IPCONFIG.S.txt @@ -47,7 +47,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -116,7 +116,6 @@ CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG >STYA pIPCFG ldy #S.IPCFG-1 - .1 lda (pIPCFG),y sta IPCFG,y dey @@ -124,41 +123,33 @@ CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG lda IPCFG+S.NETCFG.DevID bne CS.RUN.SETUP - >LDYA L.MSG.NODEV >SYSCALL puts lda #MLI.E.NODEV sec rts - CS.RUN.SETUP .1 >INC.G ArgIndex >SYSCALL ArgV bcs .4 - >STYA ZPTmpPtr1 - lda (ZPTmpPtr1) cmp #'-' bne .99 - ldy #1 lda (ZPTmpPtr1),y ldx OptionList - .2 cmp OptionList,x beq .3 dex bne .2 - .99 >PUSHBI 0 >LDYA L.MSG.USAGE >SYSCALL printf lda #E.SYN sec rts - .3 ldy OptionVars-1,x lda #$80 sta (pData),y @@ -166,18 +157,15 @@ CS.RUN.SETUP .4 lda IPCFG+S.NETCFG.STATUS bne .5 - lda #$ff no config, force all >STA.G bETC >STA.G bDHCP - .5 >LDA.G bETC >ORA.G bDHCP beq CS.RUN.DUMP >LDA.G bETC bpl .6 - jsr CFG.EtcFiles .6 >LDA.G bDHCP @@ -197,7 +185,6 @@ CS.RUN.SETUP CS.RUN.DUMP >PUSHEA.G DIB lda IPCFG+S.NETCFG.DevID >SYSCALL GetDevStatus - >LEA.G DCB.NIC >STYA.G IOCTL+S.IOCTL.BUFPTR lda #S.IOCTL.STATCODE.GETDCB @@ -207,10 +194,8 @@ CS.RUN.DUMP >PUSHEA.G DIB >PUSHBI IOCTL.STATUS lda IPCFG+S.NETCFG.DevID >SYSCALL IOCTL - CS.RUN.DUMPNIC ldy #DCB.NIC+S.DCB.NIC.MAC+5 ldx #6 - .1 lda (pData),y >PUSHA dey @@ -228,24 +213,19 @@ CS.RUN.DUMPNIC ldy #DCB.NIC+S.DCB.NIC.MAC+5 adc /S.FD.DEV >PUSHYA - lda IPCFG+S.NETCFG.DevID >PUSHA >PUSHBI 11 >LDYA L.MSG1.DEV >SYSCALL printf - >LDA.G DCB.NIC+S.DCB.NIC.FLAGS and #S.DCB.NIC.FLAGS.ARPOFFLOAD beq .2 - lda #1 - .2 >PUSHA >PUSHBI 1 >LDYA L.MSG1.DEV.ARP >SYSCALL printf - >LDA.G DCB.NIC+S.DCB.NIC.FLAGS and #S.DCB.NIC.FLAGS.IPOFFLOAD @@ -261,36 +241,28 @@ CS.RUN.DUMPNIC ldy #DCB.NIC+S.DCB.NIC.MAC+5 >LDA.G DCB.NIC+S.DCB.NIC.LINK and #S.DCB.NIC.LINK.OK bne CS.RUN.LINK - >LDYA L.MSG1.LINK.KO >SYSCALL puts bra CS.RUN.DUMPIP - CS.RUN.LINK >LDYA L.MSG1.LINK.OK >SYSCALL puts - >PUSHBI 0 >LDYA L.MSG1.LINKSPEED >SYSCALL printf - >LDA.G DCB.NIC+S.DCB.NIC.SPEED and #$0F tax - .4 phx lda #'0' >SYSCALL PutChar plx dex bne .4 - >LDA.G DCB.NIC+S.DCB.NIC.LINK and #S.DCB.NIC.LINK.FD bne .5 - >LDYA L.MSG1.DPLX.HD bra .6 - .5 >LDYA L.MSG1.DPLX.FD .6 >SYSCALL puts @@ -300,82 +272,62 @@ CS.RUN.DUMPIP >PUSHBI 0 lda IPCFG+S.NETCFG.STATUS and #S.IPCFG.STATUS.OK beq .11 - >LDYA L.MSG2.C bra .10 - .11 >LDYA L.MSG2.U - .10 >SYSCALL puts ldx #3 - .2 >PUSHB IPCFG+S.IPCFG.DHCPSRVR,x dex bpl .2 - >PUSHBI 4 >LDYA L.MSG2.DHCPSRVR >SYSCALL printf - ldx #7 IP/MASK - .3 >PUSHB IPCFG+S.IPCFG.IP,x dex bpl .3 - >PUSHBI 8 >LDYA L.MSG2.IP >SYSCALL printf - ldx #3 - .4 >PUSHB IPCFG+S.IPCFG.GW,x dex bpl .4 - >PUSHBI 4 >LDYA L.MSG2.GW >SYSCALL printf - ldy #7 - .5 >PUSHB IPCFG+S.IPCFG.DNS1,x dex bpl .5 - >PUSHBI 8 >LDYA L.MSG2.DNS >SYSCALL printf - >PUSHW L.IPCFG.DOMAIN >PUSHW L.IPCFG.HOSTNAME >PUSHBI 4 >LDYA L.MSG2.HOSTNAME >SYSCALL printf - lda #0 tell TSKMGR that all done ok, but sec we do not want to stay in memory rts *-------------------------------------- CS.DOEVENT lda (pEvent) bpl .9 is it a TIMER event? - >LDA.G TimeOut beq .9 - dec sta (pData),y - .9 sec do not discard TIMER event rts *-------------------------------------- CS.QUIT lda hLIBTCPIP beq .8 >SYSCALL UnloadLib - .8 clc rts *-------------------------------------- diff --git a/BIN/KILL.S.txt b/BIN/KILL.S.txt index 2bc4613c..f7b93dd6 100644 --- a/BIN/KILL.S.txt +++ b/BIN/KILL.S.txt @@ -49,12 +49,10 @@ CS.RUN ldy #S.PS.ARGC lda #1 >STA.G Signal - .1 >INC.G ArgIndex >SYSCALL ArgV bcs .9 >STYA ZPTmpPtr - lda (ZPTmpPtr) cmp #'-' bne .2 @@ -67,24 +65,20 @@ CS.RUN ldy #S.PS.ARGC bcc .9 cmp #'9'+1 bcs .9 - and #$0F >STA.G Signal bra .1 .9 >PUSHBI 0 >LDYA L.MSG.USAGE - >SYSCALL printf lda #E.SYN - sec - rts - + sec + rts + .2 >PUSHEA.G PID - >PUSHBI 2 1 Ptr - >PUSHW L.SSCANF.PID >LDYA ZPTmpPtr >SYSCALL sscanf @@ -109,7 +103,7 @@ MSG.USAGE .AS "Usage : KILL PID\r\n" .AS " -0 : No Signal\r\n" .AS " -1 : SIGQUIT\r\n" .AZ " -2 : SIGKILL\r\n" -SSCANF.PID .AZ "%d" +SSCANF.PID .AZ "%d" *-------------------------------------- .DUMMY .OR 0 diff --git a/BIN/LS.S.txt b/BIN/LS.S.txt index ded01f83..bf185275 100644 --- a/BIN/LS.S.txt +++ b/BIN/LS.S.txt @@ -41,7 +41,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -65,38 +65,30 @@ CS.RUN >SYSCALL ArgV bcs .6 >STYA ZPPtr1 - lda (ZPPtr1) cmp #'-' bne .4 - ldy #1 lda (ZPPtr1),y ldx OptionList - .2 cmp OptionList,x beq .3 dex bne .2 - lda #E.SYN sec rts - .3 ldy OptionVars-1,x lda #$80 sta (pData),y bra .1 - .4 >LDYA ZPPtr1 jsr InitSrcDirYA bcc .1 scan for any other args - -.9 rts - +.9 rts + .6 >LDA.G index do we have a Source dir ? bne CS.RUN.LOOP - ldy #S.PS.hCWD lda (pPs),y >SYSCALL GetMemPtr @@ -107,16 +99,12 @@ CS.RUN.LOOP ldy #S.PS.hStdIn lda (pPS),y >SYSCALL feof bcs .99 I/O error - tay bne .2 no char - >SYSCALL GetChar - cmp #$03 Ctrl-C bne .1 Abort.... rts CS - .1 cmp #$13 Ctrl-S bne .2 @@ -124,20 +112,15 @@ CS.RUN.LOOP ldy #S.PS.hStdIn eor #$ff sta (pData),y bne CS.RUN.LOOP - .2 >LDA.G bPause bne CS.RUN.LOOP - jsr GetEntry bcs .9 - jsr FilterMatch bcs .8 no match, skip.... - .4 ldy #S.STAT.P.DRIVE lda (ZPFileStat),y ProDOS Device ? bne .5 - ldy #S.STAT.P.TYPE lda (ZPFileStat),y cmp #$0F Directory ? @@ -146,7 +129,6 @@ CS.RUN.LOOP ldy #S.PS.hStdIn jsr CS.RUN.PRINT.DIR bcs .99 bra .8 - .5 jsr CS.RUN.PRINT.DEV bcs .99 bra .8 @@ -170,9 +152,7 @@ CS.RUN.LOOP ldy #S.PS.hStdIn jsr BasePath.. jsr GetNextEntry - .92 jmp CS.RUN.LOOP - .98 lda #0 sec .99 rts @@ -180,7 +160,6 @@ CS.RUN.LOOP ldy #S.PS.hStdIn CS.RUN.PRINT.DEV >LDA.G bLong bpl CS.RUN.PRINT.DIR - ldy #S.STAT.P.DEVBLOCKS+1 >PUSHB (ZPFileStat),y dey @@ -194,7 +173,6 @@ CS.RUN.PRINT.DEV >PUSHB (ZPFileStat),y dey SLOT >PUSHB (ZPFileStat),y - >PUSHW ZPFileName >PUSHBI 8 >LDYA L.MSG.DEVEXT @@ -204,69 +182,54 @@ CS.RUN.PRINT.DEV ldy #bRecurse lda (pData),y bpl .8 - >LDYA ZPFileName jsr EnterSubDirYA bcs .9 jmp CS.RUN.ENTER.MSG - -.8 clc -.9 rts +.8 clc.9 + rts *-------------------------------------- CS.RUN.PRINT.DIR >LDA.G bAllmostAll bmi .10 - lda (ZPFileName) cmp #'.' bne .10 jmp .5 - .10 >LDA.G bLong bmi .4 >LDA.G bColumn bmi .23 - >LDA.G bFullPath bpl .22 - >PUSHBI 0 ldy #hSrcBasePath lda (pData),y >SYSCALL GetMemPtr - >SYSCALL printf - + >SYSCALL printf .23 >LDYA ZPFileName >SYSCALL puts bcs .9 - >LDA.G bRecurse bpl .8 - lda (ZPFileName) cmp #'.' beq .8 - >LDYA ZPFileName jmp EnterSubDirYA - .8 clc .9 rts - .22 >PUSHW ZPFileName >PUSHBI 2 >LDYA L.MSG.DIR >SYSCALL printf bcs .9 - ldy #0 - .1 iny lda (ZPFileName),y bne .1 - .11 iny cpy #19 bcs .2 @@ -276,38 +239,30 @@ CS.RUN.PRINT.DIR ply bcc .11 rts - .2 jsr CS.RUN.UpdateColCnt bcc .5 rts - .4 jsr CS.RUN.PUSHDATES jsr Mod2CSTR >PUSHEA.G MOD File Mod - >PUSHW ZPFileName >PUSHBI 8 >LDYA L.MSG.DIREXT >SYSCALL printf bcs .90 - .5 >LDA.G bRecurse bpl .80 - lda (ZPFileName) cmp #'.' beq .80 - jsr CS.RUN.NewLine bcs .90 - >LDYA ZPFileName jsr EnterSubDirYA bcs .90 jmp CS.RUN.ENTER.MSG - .80 clc .90 rts *-------------------------------------- @@ -315,19 +270,16 @@ CS.RUN.PRINT.FILE ldy #bLong lda (pData),y bmi .1 - >LDA.G bColumn bmi .23 >LDA.G bFullPath bpl .22 - >PUSHBI 0 ldy #hSrcBasePath lda (pData),y >SYSCALL GetMemPtr - >SYSCALL printf - + >SYSCALL printf .23 >LDYA ZPFileName >SYSCALL puts rts @@ -337,25 +289,18 @@ CS.RUN.PRINT.FILE >LDYA L.MSG.FILE >SYSCALL printf bcs .9 - jmp CS.RUN.UpdateColCnt - .1 jsr CS.RUN.PUSHDATES - ldy #S.STAT.SIZE+3 ldx #4 - .2 lda (ZPFileStat),y >PUSHA dey dex bne .2 - jsr Mod2CSTR >PUSHEA.G MOD File Mod - ldy #S.STAT.P.AUXTYPE+1 - lda (ZPFileStat),y >PUSHA dey @@ -366,7 +311,6 @@ CS.RUN.PRINT.FILE lda (ZPFileStat),y jsr FileType2PSTR >PUSHYA - >PUSHW ZPFileName >PUSHBI 16 >LDYA L.MSG.FILEEXT @@ -377,16 +321,13 @@ CS.RUN.PRINT.FILE CS.RUN.PUSHDATES ldx #$ff ldy #TIME.Mod-1 Set NODATE as default - .10 inx iny lda MSG.NODATE,x sta (pData),y bne .10 - ldx #$ff ldy #TIME.Create-1 Set NODATE as default - .11 inx iny lda MSG.NODATE,x @@ -407,7 +348,6 @@ CS.RUN.PUSHDATES >PUSHW L.FMT.DateTime >LEA.G TIME.Mod >SYSCALL StrFTime - .1 ldy #S.STAT.CTIME+S.TIME.MONTH lda (ZPFileStat),y beq .2 Month=0.....invalid date/time @@ -422,7 +362,6 @@ CS.RUN.PUSHDATES >PUSHW L.FMT.DateTime >LEA.G TIME.Create >SYSCALL StrFTime - .2 >PUSHEA.G TIME.Mod >PUSHEA.G TIME.Create rts @@ -438,7 +377,7 @@ CS.RUN.UpdateColCnt *-------------------------------------- CS.RUN.NewLine >LDA.G ColCount beq CS.RUN.NewLine.8 -CS.RUN.NewLine.1 +CS.RUN.NewLine.1 >PUSHBI 0 >LDYA L.MSG.CRLF >SYSCALL printf @@ -462,7 +401,6 @@ CS.DOEVENT sec *-------------------------------------- CS.QUIT jsr LeaveSubDir bcc CS.QUIT - >LDA.G hFilter beq .3 >SYSCALL FreeMem @@ -471,14 +409,11 @@ CS.QUIT jsr LeaveSubDir rts *-------------------------------------- FileType2PSTR ldy #0 - .1 cmp PRODOS.FT.HEX,y beq .8 - iny cpy #PRODOS.FT.TXT-PRODOS.FT.HEX bne .1 - pha lsr lsr @@ -489,7 +424,6 @@ FileType2PSTR ldy #0 bcc .2 adc #6 .2 sta PRODOS.FT.DFLT+2 - pla and #$0F ora #$30 @@ -497,8 +431,7 @@ FileType2PSTR ldy #0 bcc .3 adc #6 .3 sta PRODOS.FT.DFLT+3 - -.8 tya +.8 tya asl asl CC adc L.PRODOS.FT.TXT @@ -509,7 +442,6 @@ FileType2PSTR ldy #0 *-------------------------------------- Mod2CSTR ldy #S.STAT.MODE+1 lda (ZPFileStat),y - lsr lsr lsr @@ -517,38 +449,28 @@ Mod2CSTR ldy #S.STAT.MODE+1 tax lda TYPES,x >STA.G MOD - ldx #0 - ldy #S.STAT.MODE lda (ZPFileStat),y ldy #MOD+1 - .1 lsr pha - lda #'-' bcc .2 lda ACCESS,x - .2 sta (pData),y iny - pla - inx cpx #8 bne .1 - .3 ldy #S.STAT.MODE+1 lda (ZPFileStat),y lsr lda #'-' - bcc .4 lda ACCESS,x - .4 >STA.G MOD+9 rts diff --git a/BIN/LSDEV.S.txt b/BIN/LSDEV.S.txt index ed277406..1b15d4df 100644 --- a/BIN/LSDEV.S.txt +++ b/BIN/LSDEV.S.txt @@ -34,7 +34,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.EVENT @@ -62,10 +62,8 @@ CS.INIT clc *-------------------------------------- CS.RUN jsr DumpDev bcs .9 - jsr DumpNod bcs .9 - .8 lda #0 tell TSKMGR that all done ok, but sec we do not want to stay in memory .9 rts @@ -75,30 +73,25 @@ DumpDev >LDYA L.MSG0 ldx #1 stx Index - .1 lda Dev.Table-1,x sta ZPFDPtr lda Dev.Table,x sta ZPFDPtr+1 beq .8 - jsr DumpDevFD bcs .9 ldy #DEV.DIB+S.DIB-1 ldx #S.DIB-1 - .2 lda BLANK.DIB,x sta (pData),y dey dex bpl .2 - >PUSHEA.G DEV.DIB lda Index >SYSCALL GetDevStatus bcc .6 - >PUSHA >PUSHBI 1 >LDYA L.MSG2.ERR @@ -106,7 +99,6 @@ DumpDev >LDYA L.MSG0 bcs .9 bra .7 - .6 jsr DumpDevDIB .7 inc Index @@ -124,20 +116,16 @@ DumpDevFD ldy #S.FD.DEV.DRVPTR+1 dey >PUSHB (ZPFDPtr),y - lda ZPFDPtr clc adc #S.FD.DEV tay lda ZPFDPtr+1 adc /S.FD.DEV - >PUSHYA - >PUSHB (ZPFDPtr) S.FD.T >PUSHB Index - >PUSHBI 6 >LDYA L.MSG1 >SYSCALL printf @@ -145,52 +133,39 @@ DumpDevFD ldy #S.FD.DEV.DRVPTR+1 *-------------------------------------- DumpDevDIB >PUSHB.G DEV.DIB+S.DIB.VERSION+1 >PUSHB.G DEV.DIB+S.DIB.VERSION - >PUSHEA.G DEV.DIB+S.DIB.IDS - >PUSHB.G DEV.DIB+S.DIB.ST >PUSHB.G DEV.DIB+S.DIB.T - >LDA.G DEV.DIB+S.DIB.S ldy #DEV.SFLAGS+7 ldx #7 - .1 lsr pha lda #'-' bcc .2 - lda MSG.SFLAGS,x - .2 sta (pData),y pla dey dex bpl .1 - >PUSHEA.G DEV.SFLAGS >PUSHBI 8 >LDYA L.MSG2 >SYSCALL printf bcs .9 - >LDA.G DEV.DIB+S.DIB.S bpl .4 char device... - >PUSHBI 0 - >PUSHB.G DEV.DIB+S.DIB.SIZE+2 >PUSHB.G DEV.DIB+S.DIB.SIZE+1 >PUSHB.G DEV.DIB+S.DIB.SIZE - >PUSHBI 4 >LDYA L.MSG2.B bra .8 - .4 >PUSHBI 0 >LDYA L.MSG2.C - .8 >SYSCALL printf .9 rts *-------------------------------------- @@ -199,31 +174,25 @@ DumpNod >LDYA L.MSG3 ldx #2 stx Index - .1 lda Nod.Table.hPath-2,x beq .7 >SYSCALL GetMemPtr >PUSHYA - ldx Index lda Nod.Table.hFD-2,x >SYSCALL GetMemPtr >STYA ZPFDPtr - lda (ZPFDPtr) tax >PUSHW L.FD.T,x - ldx Index lda Nod.Table.hFD-2,x >PUSHA txa >PUSHA - >PUSHBI 6 >LDYA L.MSG4 >SYSCALL printf - .7 inc index ldx index diff --git a/BIN/LSOF.S.txt b/BIN/LSOF.S.txt index 94f90aaf..945f51fb 100644 --- a/BIN/LSOF.S.txt +++ b/BIN/LSOF.S.txt @@ -27,7 +27,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.EVENT @@ -52,20 +52,15 @@ CS.RUN >LDYA L.MSG0 lda #1 >STA.G FILE.ID - .1 tax lda OF.Table.hFD-1,x beq .7 - >SYSCALL GetMemPtr >STYA ZPFDPtr - >LDA.G FILE.ID tax - lda OF.Table.hPath-1,x bne .2 - lda OF.Table.hFD-1,x tax @@ -79,30 +74,24 @@ CS.RUN >LDYA L.MSG0 adc /S.FD.DEV bra .3 - .2 >SYSCALL GetMemPtr - .3 >PUSHYA lda (ZPFDPtr) tax >PUSHW L.FD.T,x - >LDA.G FILE.ID tax lda OF.Table.hFD-1,x >PUSHA txa >PUSHA - >PUSHBI 6 >LDYA L.MSG1 >SYSCALL printf - .7 >INC.G FILE.ID cmp #K.OF.MAX+1 bne .1 - .8 lda #0 tell TSKMGR that all done ok, but sec we do not want to stay in memory .9 rts diff --git a/BIN/MD5.S.txt b/BIN/MD5.S.txt index df72325a..55aad874 100644 --- a/BIN/MD5.S.txt +++ b/BIN/MD5.S.txt @@ -15,7 +15,7 @@ FILEBUF.SIZE .EQ 4096 *-------------------------------------- .DUMMY .OR ZPBIN -ZS.START +ZS.START ZPPtr1 .BS 2 ZPDataBufPtr .BS 2 ZS.END .ED @@ -34,7 +34,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -46,7 +46,6 @@ L.MSG.USAGE .DA MSG.USAGE CS.INIT >LDYA L.LIBCRYPT >SYSCALL LoadLib bcs .9 - sta hLIBCRYPT .9 rts @@ -56,22 +55,17 @@ CS.RUN ldy #S.PS.ARGC beq .99 .1 >INC.G ArgIndex - >SYSCALL ArgV bcs .8 - >STYA ZPPtr1 - lda (ZPPtr1) cmp #'-' bne .4 - ldy #1 lda (ZPPtr1),y beq .99 ldx OptionList - .2 cmp OptionList,x beq .3 dex @@ -83,32 +77,25 @@ CS.RUN ldy #S.PS.ARGC lda #E.SYN sec rts - .3 ldy OptionVars-1,x lda #$80 sta (pData),y bra .1 - .4 >LDA.G Arg bne .99 - >LDA.G ArgIndex >STA.G Arg bra .1 - .8 >LDA.G Arg beq .99 - >LDA.G bText beq CS.RUN.FILE *-------------------------------------- CS.RUN.TEXT >PUSHEA.G MD5Buf - >LDA.G Arg >SYSCALL ArgV >PUSHYA >LIBCALL hLIBCRYPT,LIBCRYPT.MD5 - jmp CS.RUN.PRINT *-------------------------------------- CS.RUN.FILE >LDYAI FILEBUF.SIZE @@ -117,48 +104,37 @@ CS.RUN.FILE >LDYAI FILEBUF.SIZE >STYA ZPDataBufPtr txa >STA.G hDataBuf - >PUSHWZ Aux type >PUSHBI 0 ftype >PUSHBI O.RDONLY - >LDA.G Arg >SYSCALL ArgV >SYSCALL FOpen bcs .9 >STA.G hFile - >LIBCALL hLIBCRYPT,LIBCRYPT.MD5Init bcs .9 - >STA.G hMD5Ctx - .1 >PUSHWI FILEBUF.SIZE Bytes To Read >PUSHW ZPDataBufPtr Dst Ptr >LDA.G hFile >SYSCALL FRead - bcc .2 eor #MLI.E.EOF beq .8 .9 rts - .2 >PUSHYA MD5 DataLen >PUSHW ZPDataBufPtr >LDA.G hMD5Ctx >LIBCALL hLIBCRYPT,LIBCRYPT.MD5Update bra .1 - .8 >PUSHEA.G MD5Buf >LDA.G hMD5Ctx >LIBCALL hLIBCRYPT,LIBCRYPT.MD5Finalize - CS.RUN.PRINT >LEA.G MD5Buf >SYSCALL strlwr >SYSCALL puts - lda #0 - * sec * rts *-------------------------------------- @@ -168,7 +144,6 @@ CS.DOEVENT sec CS.QUIT >LDA.G hDataBuf beq .2 >SYSCALL FreeMem - .2 >LDA.G hFile beq .3 @@ -176,9 +151,7 @@ CS.QUIT >LDA.G hDataBuf .3 lda hLIBCRYPT beq .4 - >SYSCALL UnloadLib - .4 clc rts *-------------------------------------- diff --git a/BIN/MEM.S.txt b/BIN/MEM.S.txt index 18034fd8..cb9bfe5c 100644 --- a/BIN/MEM.S.txt +++ b/BIN/MEM.S.txt @@ -31,7 +31,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -87,10 +87,8 @@ CS.RUN >LDYA L.MemStat sbc MemStat+S.MSTAT.DF+1 ldx #S.MSTAT.DH+1 jsr CS.RUN.PRINT - >LDYA L.MSG.END >SYSCALL puts - lda #0 sec rts @@ -98,12 +96,10 @@ CS.RUN >LDYA L.MemStat CS.RUN.PRINT >PUSHYA ldy #6 - .1 >PUSHB MemStat,x dex dey bne .1 - >PUSHBI 8 >LDYA L.MSG.Stat >SYSCALL printf diff --git a/BIN/MEMDUMP.S.txt b/BIN/MEMDUMP.S.txt index 8ce254b4..12871b4a 100644 --- a/BIN/MEMDUMP.S.txt +++ b/BIN/MEMDUMP.S.txt @@ -35,7 +35,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -64,47 +64,34 @@ CS.RUN >LEA.G MemStat >LDYA L.MSG0 >SYSCALL puts - >INC.G MEM.COUNT skip slot 0 CS.RUN.LOOP >LDA.G bSTOP beq .1 - .10 >SYSCALL GetChar cmp #3 Ctrl-C ? beq CS.RUN.LOOP.RTS cmp #C.SPACE bne .10 - >STZ.G bSTOP - .1 lda (ZPPTR1) bpl .2 - >INC.G USED.COUNT - .2 jsr CS.RUN.PRINTMEM - lda ZPPTR1 clc adc #S.MEM sta ZPPTR1 bcc .3 - inc ZPPTR1+1 - .3 >INC.G MEM.COUNT >CMP.G MemStat+S.MSTAT.MLast beq CS.RUN.FOOTER - bra CS.RUN.LOOP - sec CS.RUN.LOOP.RTS rts - CS.RUN.FOOTER >SYSCALL GetChar bcs CS.RUN.LOOP.RTS - >PUSHB.G MEM.COUNT >PUSHB.G USED.COUNT >PUSHBI 2 @@ -125,7 +112,6 @@ CS.RUN.FOOTER >SYSCALL GetChar >PUSHBI 2 >LDYA L.MSG5 >SYSCALL printf - sec >LDA.G MemStat+S.MSTAT.MF >SBC.G MemStat+S.MSTAT.ML @@ -133,62 +119,50 @@ CS.RUN.FOOTER >SYSCALL GetChar >LDA.G MemStat+S.MSTAT.MF+1 >SBC.G MemStat+S.MSTAT.ML+1 ply - >PUSHYA >PUSHBI 2 >LDYA L.MSG.FREE >SYSCALL printf lda #0 - sec + sec rts *-------------------------------------- CS.RUN.PRINTMEM ldy #S.MEM.LEN+1 ldx #4 - .13 lda (ZPPTR1),y >PUSHA dey dex bne .13 - ldy #S.MEM.REFCNT lda (ZPPTR1),y >PUSHA - ldy #S.MEM.OWNERPID lda (ZPPTR1),y >PUSHA - lda (ZPPTR1) Get flags - ldy #MEM.FLAGS+7 ldx #7 - .20 lsr pha lda #'-' bcc .30 lda MSG.FLAGS,x - .30 sta (pData),y pla dey dex - bpl .20 - - >PUSHEA.G MEM.FLAGS - + bpl .20 + + >PUSHEA.G MEM.FLAGS >PUSHB.G MEM.COUNT - lda (ZPPTR1) Get flags bpl .12 - ldy #S.MEM.OWNERPID lda (ZPPTR1),y jsr CS.RUN.CHECKPS bcc .12 - >PUSHBI 0 >LDYA L.MSG1.INV >SYSCALL printf @@ -200,17 +174,14 @@ CS.RUN.PRINTMEM ldy #S.MEM.LEN+1 lda (ZPPTR1) and #S.MEM.F.CODE bne CS.RUN.PRINTMEM.BIN - -****** DATA +****** DATA ldy #S.MEM.PTR lda (ZPPTR1),y sta ZPPTR2 iny lda (ZPPTR1),y sta ZPPTR2+1 - ldy #$0 - .1 lda (ZPPTR2),y Check if it looks like a printable string beq .11 bmi .2 @@ -221,7 +192,6 @@ CS.RUN.PRINTMEM ldy #S.MEM.LEN+1 .11 tya beq .2 Startig with 0...PrintHEX - >PUSHW ZPPTR2 String tya Len >PUSHA @@ -234,38 +204,29 @@ CS.RUN.PRINTMEM ldy #S.MEM.LEN+1 .3 >PUSHB (ZPPTR2),y dey bpl .3 - >PUSHBI 16 >LDYA L.MSG1.HEX bra CS.RUN.PRINTMEM.OUT - CS.RUN.PRINTMEM.BIN - ldy #S.MEM.BIN lda (ZPPTR1),y >SYSCALL GetMemPtr >PUSHYA >PUSHBI 2 >LDYA L.MSG1.BIN - CS.RUN.PRINTMEM.OUT >SYSCALL printf - >INC.G LINE.COUNT cmp #PAGELEN beq .9 rts - .9 lda #$FF >STA.G bSTOP - inc >STA.G LINE.COUNT - rts *-------------------------------------- CS.RUN.CHECKPS ldx #0 - .1 cmp PS.Table.PID,x beq .8 inx diff --git a/BIN/MKDIR.S.txt b/BIN/MKDIR.S.txt index e7ef0ab1..af3a1a6e 100644 --- a/BIN/MKDIR.S.txt +++ b/BIN/MKDIR.S.txt @@ -23,7 +23,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -36,14 +36,11 @@ CS.INIT clc CS.RUN lda #1 >SYSCALL ArgV bcs .99 - >SYSCALL MKDir bcs .9 - lda #0 sec .9 rts - .99 lda #E.SYN sec rts diff --git a/BIN/MORE.S.txt b/BIN/MORE.S.txt index 0656f96b..458fc23e 100644 --- a/BIN/MORE.S.txt +++ b/BIN/MORE.S.txt @@ -46,7 +46,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -67,58 +67,45 @@ CS.RUN lda ArgCount >SYSCALL ArgV bcs .7 - >STYA ZPPtr1 - lda (ZPPtr1) cmp #'-' bne .4 - ldy #1 lda (ZPPtr1),y ldx OptionList - .2 cmp OptionList,x beq .3 dex bne .2 - .99 >PUSHBI 0 >LDYA L.MSG.USAGE >SYSCALL printf lda #E.SYN sec .9 rts - .3 ldy OptionVars-1,x lda #$80 sta (pData),y bra .1 - .4 lda hFile bne .99 - >LDYA ZPPtr1 jsr CS.RUN.OPEN bcs .9 - bra .1 scan for any other args - .7 lda bHelp beq .8 - .71 jsr .99 lda #0 rts .8 lda hFile bne .80 - ldy #S.PS.hStdIn lda (pPS),y tax - lda OF.Table.hFD-1,x >SYSCALL GetMemPtr >STYA ZPPtr1 @@ -129,29 +116,22 @@ CS.RUN .80 >LDYAI 256 >SYSCALL GetMem bcs .9 - >STYA ZPBufPtr stx hBuf - >PUSHBI 0 >LDYA L.MSG.Init >SYSCALL printf - CS.RUN.LOOP jsr CS.RUN.GETLINE bcs .9 - .1 inc LineNum bne .11 inc LineNum+1 - .11 lda LineCount bne .2 lda bPage beq .2 - lda #C.FF >SYSCALL putchar - .2 jsr CS.RUN.PRINT inc LineCount @@ -159,23 +139,18 @@ CS.RUN.LOOP jsr CS.RUN.GETLINE cmp #PG.SIZE bne CS.RUN.LOOP stz LineCount - jsr CS.RUN.PAUSE bcc CS.RUN.LOOP - .9 cmp #MLI.E.EOF bne .99 - lda #0 Exit with no Error .99 sec rts *-------------------------------------- CS.RUN.OPEN pha - >PUSHWZ Aux type >PUSHBI S.FI.T.TXT >PUSHBI O.RDONLY+O.TEXT - pla >SYSCALL FOpen bcs .9 @@ -188,7 +163,6 @@ CS.RUN.PAUSE >PUSHBI 0 ldy #S.PS.hStdErr lda (pPS),y >SYSCALL fprintf - .10 jsr CS.RUN.GETC bcs .99 @@ -196,24 +170,19 @@ CS.RUN.PAUSE >PUSHBI 0 beq .9 cmp #'q' beq .9 - .3 cmp #C.SPACE bne .4 - jmp CS.RUN.ERASE .4 cmp #C.CR bne .10 jsr CS.RUN.ERASE - .40 jsr CS.RUN.GETLINE bcc .5 - cmp #MLI.E.EOF beq .90 rts - .5 inc LineNum bne .6 inc LineNum+1 @@ -221,12 +190,11 @@ CS.RUN.PAUSE >PUSHBI 0 .6 jsr CS.RUN.PRINT bra CS.RUN.PAUSE - .9 jsr CS.RUN.ERASE .90 lda #0 .99 sec - rts + rts *-------------------------------------- CS.RUN.ERASE >PUSHBI 0 >PUSHW L.MSG.PauseErase @@ -250,7 +218,6 @@ CS.RUN.GETLINE >PUSHWI 256 >PUSHW ZPBufPtr lda hFile bne .1 - ldy #S.PS.hStdIn lda (pPS),y @@ -265,19 +232,16 @@ CS.RUN.PRINT lda bLineNum >LDYA L.MSG.NUMLINE >SYSCALL printf bcs .9 - .1 lda bEscCodes bmi .2 >LDYA ZPBufPtr >SYSCALL puts rts - .2 >PUSHBI 0 >LDYA ZPBufPtr >SYSCALL printf bcs .9 - >PUSHBI 0 >LDYA L.MSG.CRLF >SYSCALL printf @@ -292,8 +256,7 @@ CS.QUIT lda hBuf beq .2 >SYSCALL FClose - -.2 +.2 .8 clc rts *-------------------------------------- diff --git a/BIN/MV.S.txt b/BIN/MV.S.txt index 0bad5bd8..623577a7 100644 --- a/BIN/MV.S.txt +++ b/BIN/MV.S.txt @@ -12,7 +12,7 @@ NEW *-------------------------------------- X.ENTER.SUBDIR .EQ 0 X.COPY.TO.DEST .EQ 1 -X.DELETE.SOURCE .EQ 1 +X.DELETE.SOURCE .EQ 1 *-------------------------------------- .INB USR/SRC/BIN/X.CPMVRM.S .INB USR/SRC/BIN/X.FILEENUM.S @@ -39,7 +39,6 @@ bNoConfirm .BS 1 bQuiet .BS 1 .INB USR/SRC/BIN/X.CPMVRM.G .INB USR/SRC/BIN/X.FILEENUM.G - DS.END .ED *-------------------------------------- diff --git a/BIN/NETSTAT.S.txt b/BIN/NETSTAT.S.txt index 2d324ff9..5ec44ee8 100644 --- a/BIN/NETSTAT.S.txt +++ b/BIN/NETSTAT.S.txt @@ -32,7 +32,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -74,48 +74,37 @@ CS.INIT >LDYA L.LIBTCPIP *-------------------------------------- CS.RUN >LDYA L.MSG0 >SYSCALL puts - >LIBCALL hLIBTCPIP,LIBTCPIP.GetTable >STYA ZPPTR1 - ldy SocketIndex - .1 lda (ZPPTR1),y beq .7 >SYSCALL GetMemPtr >STYA ZPPTR2 - ldy #S.SOCKET.AF lda (ZPPTR2),y cmp #AF.INET bne .7 jsr CS.RUN.S 2 bytes - ldy #S.SOCKET.O >PUSHB (ZPPTR2),y ..3 - ldy #S.SOCKET.REM.PORT+1 - .2 >PUSHB (ZPPTR2),y ..15 dey cpy #S.SOCKET.LOC.ADDR-1 bne .2 - jsr CS.RUN.P ..17 jsr CS.RUN.T ..19 - >PUSHBI 19 >LDYA L.MSG1 >SYSCALL printf bcs .9 - .7 inc SocketIndex ldy SocketIndex cpy #K.SKTTABLE.SIZE bne .1 - lda #0 tell TSKMGR that all done ok, but sec we do not want to stay in memory .9 rts @@ -125,7 +114,6 @@ CS.RUN.S ldy #S.SOCKET.TCP.S cmp #S.SOCKET.TCP.S.TIMEWT+1 bcc .1 - lda #S.SOCKET.TCP.S.TIMEWT+1 .1 asl @@ -138,20 +126,16 @@ CS.RUN.P ldy #S.SOCKET.PROTO lda (ZPPTR2),y ldx #0 - .3 cmp PROTO,x beq .4 inx cpx #PROTO.Cnt bne .3 - .4 txa asl tax - >PUSHB L.MSG1.P+1,x >PUSHB L.MSG1.P,x - rts *-------------------------------------- CS.RUN.T ldy #S.SOCKET.T @@ -161,10 +145,8 @@ CS.RUN.T ldy #S.SOCKET.T bcc .5 ldx #S.SOCKET.T.STREAM+1 - .5 >PUSHB L.MSG1.T+1,x >PUSHB L.MSG1.T,x - rts *-------------------------------------- CS.DOEVENT sec @@ -173,7 +155,6 @@ CS.DOEVENT sec CS.QUIT lda hLIBTCPIP beq .8 >SYSCALL UnloadLib - .8 clc rts *-------------------------------------- diff --git a/BIN/NFSMOUNT.S.txt b/BIN/NFSMOUNT.S.txt index fcd8b5f0..c6910452 100644 --- a/BIN/NFSMOUNT.S.txt +++ b/BIN/NFSMOUNT.S.txt @@ -39,14 +39,11 @@ CS.INIT >SYSCALL ArgVC cmp #1 beq .99 - >LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG is TCPIP loaded ? bcs .99 >STYA ZPIPCfgPtr - lda (ZPIPCfgPtr) Configured ? bpl .99 - ldx #3 ldy #S.IPCFG.IP+3 .1 lda (ZPIPCfgPtr),y @@ -54,13 +51,11 @@ CS.INIT >SYSCALL ArgVC dey dex bpl .1 - lda (pPs) ora #S.PS.F.EVENT Now accept events sta (pPs) clc rts - .99 >LDYA L.MSG.USAGE >SYSCALL printf lda #E.SYN @@ -74,7 +69,6 @@ CS.RUN.ERROR sec CS.DOEVENT .8 clc rts - .9 sec rts *-------------------------------------- diff --git a/BIN/NSCUTIL.S.txt b/BIN/NSCUTIL.S.txt index e032eef7..a4006b29 100644 --- a/BIN/NSCUTIL.S.txt +++ b/BIN/NSCUTIL.S.txt @@ -51,11 +51,10 @@ CS.RUN ldy #S.PS.ARGC CS.RUN.READ jsr NSC.Init jsr NSC.Read - ldx #7 .1 lda DS1216E.DETECT,x - eor DS1216E.DATA,x + eor DS1216E.DATA,x bne .8 dex bpl .1 @@ -63,17 +62,14 @@ CS.RUN.READ jsr NSC.Init >PUSHBI 0 >LDYA L.MSG.READ.KO >SYSCALL printf - lda #MLI.E.NODEV sec rts - .8 jsr NSC.Dump >PUSHBI 0 >LDYA L.MSG.USAGE >SYSCALL printf - lda #0 tell TSKMGR that all done ok, but sec we do not want to stay in memory rts @@ -81,19 +77,14 @@ CS.RUN.READ jsr NSC.Init CS.RUN.SET lda #1 >SYSCALL ArgV >STYA ZPPtr1 - >SYSCALL strlen cpy #17 bne .9 - ldy #0 - stz DS1216E.DATA+7 - jsr GetBCD bcs .9 sta DS1216E.DATA+2 - lda (ZPPtr1),y cmp #'/' bne .9 @@ -139,16 +130,13 @@ CS.RUN.SET lda #1 bcs .9 sta DS1216E.DATA+6 stz DS1216E.DATA+7 - jsr NSC.Write - lda #0 tell TSKMGR that all done ok, but sec we do not want to stay in memory rts - .9 lda #E.SYN sec - rts + rts *-------------------------------------- CS.DOEVENT sec rts @@ -160,18 +148,13 @@ NSC.Init php sei lda $CFFF pha - ldx #7 - .1 ldy #8 .2 lda $C304 - lsr ror DS1216E.DETECT,x - dey bne .2 - dex bpl .1 pla @@ -183,13 +166,10 @@ NSC.Init php NSC.Select sta $C300 lda $C304 Reset DS1216E comparison register with READ A2=1 - ldx #7 Read 8 bytes... - .3 lda DS1216E.PATTERN,x phx ldx #8 ....of 8 bits - .4 ldy #0 lsr bcc .5 @@ -199,7 +179,6 @@ NSC.Select sta $C300 pla dex bne .4 - plx dex bpl .3 @@ -209,20 +188,15 @@ NSC.Read php sei lda $CFFF pha - jsr NSC.Select ldx #7 - .1 ldy #8 .2 lda $C304 - lsr ror DS1216E.DATA,x - dey bne .2 - dex bpl .1 pla @@ -235,15 +209,12 @@ NSC.Write php sei lda $CFFF pha - jsr NSC.Select ldx #7 - .3 lda DS1216E.DATA,x phx ldx #8 ....of 8 bits - .4 ldy #0 lsr bcc .5 @@ -253,7 +224,6 @@ NSC.Write php pla dex bne .4 - plx dex bpl .3 @@ -265,32 +235,26 @@ NSC.Write php *-------------------------------------- NSC.Dump ldx #1 ldy #1 - lda DS1216E.DATA+3 bit #%00010000 beq .1 dex - .1 bit #%00100000 beq .2 dey - .2 txa >PUSHA tya >PUSHA - >PUSHBI 2 >LDYA L.MSG.READ.OK1 >SYSCALL printf - >PUSHBI 2 >LDYA L.MSG.READ.OK2.24 bit DS1216E.DATA+4 bpl .3 >LDYA L.MSG.READ.OK2.12 .3 >SYSCALL printf - >PUSHBI 0 >LDYA L.MSG.READ.OK3 >SYSCALL printf @@ -305,11 +269,9 @@ NSC.Dump ldx #1 >SYSCALL PutChar lda DS1216E.DATA jsr PrintBCD - >PUSHBI 0 >LDYA L.MSG.READ.OK4 >SYSCALL printf - lda DS1216E.DATA+4 bpl .4 and #$1F @@ -358,14 +320,13 @@ GetBCD lda (ZPPtr1),y bcs .9 and #$0f ora TmpByte -.9 rts +.9 rts *-------------------------------------- IsDigit cmp #'0' bcc .9 cmp #'9'+1 and #$0f rts cc if ok, cs if not - .9 sec rts *-------------------------------------- diff --git a/BIN/PING.S.txt b/BIN/PING.S.txt index 4f53b27c..de5db506 100644 --- a/BIN/PING.S.txt +++ b/BIN/PING.S.txt @@ -60,22 +60,18 @@ CS.INIT >LDYA L.LIBTCPIP *-------------------------------------- CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ? >STYA ZPIPCfgPtr - lda (ZPIPCfgPtr) Configured ? bmi CS.RUN.IPOK - >LDYA L.MSG.IPKO >SYSCALL puts lda #E.SYN - sec + sec rts - CS.RUN.IPOK .1 >INC.G ArgIndex >SYSCALL ArgV bcs .8 >STYA ZPTmpPtr - lda (ZPTmpPtr) cmp #'-' bne .21 @@ -88,13 +84,10 @@ CS.RUN.IPOK bcc .9 cmp #'9'+1 bcs .9 - and #$0F >STA.G PingCount bra .1 - .21 jsr Init.Timeout - .2 >PUSHW L.SA.REMOTE.AD >PUSHW ZPTmpPtr >LIBCALL hLIBTCPIP,LIBTCPIP.HST.GETBYNAME @@ -107,47 +100,38 @@ CS.RUN.IPOK >PUSHBI 2 >LDYA L.MSG.UNKNOWN bra .99 - .3 >LDA.G ArgIndex >STA.G ArgHostName jmp .1 - .8 lda SA.REMOTE+S.SOCKADDR.ADDR bne CS.RUN.ARGSOK - .9 >PUSHBI 0 >LDYA L.MSG.USAGE - .99 >SYSCALL printf lda #E.SYN - sec + sec rts CS.RUN.ARGSOK >LDA.G ArgHostName >SYSCALL ArgV >PUSHYA - ldx #3 - .1 lda SA.REMOTE+S.SOCKADDR.ADDR,x >PUSHA dex bpl .1 - >PUSHBI 6 >LDYA L.MSG.HOSTOK >SYSCALL printf CS.RUN.OPENSKT ldx #3 ldy #S.IPCFG.IP+3 - .1 lda (ZPIPCfgPtr),y sta SA.LOCAL+S.SOCKADDR.ADDR,x dey dex bpl .1 - ldy #Identifier lda A2OSX.RANDOM16 sta SA.LOCAL+S.SOCKADDR.PORT @@ -158,38 +142,32 @@ CS.RUN.OPENSKT ldx #3 sta SA.LOCAL+S.SOCKADDR.PORT+1 sta SA.REMOTE+S.SOCKADDR.PORT+1 sta (pData),y - >PUSHBI S.IP.PROTOCOL.ICMP lda #S.SOCKET.T.RAW >LIBCALL hLIBTCPIP,LIBTCPIP.socket bcs .9 - >STA.G hSocket pha >PUSHW L.SA.LOCAL pla >LIBCALL hLIBTCPIP,LIBTCPIP.Bind bcs .9 - >PUSHW L.SA.REMOTE >LDA.G hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.Connect - bcc CS.RUN.SEND.ECHO - .9 >LDYA L.MSG.SKTKO >SYSCALL puts lda #E.SYN - sec + sec rts -CS.RUN.SEND.ECHO +CS.RUN.SEND.ECHO >LDA.G Identifier sta ICMP.Request.ID+1 iny lda (pData),y sta ICMP.Request.ID - >LDA.G Sequence sec adc #0 @@ -203,31 +181,25 @@ CS.RUN.SEND.ECHO sta ICMP.Request.SQ jsr Init.Timeout - >PUSHWI ICMP.RequestLen >PUSHW L.ICMP.Request >LDA.G hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.send bcs CS.RUN.ERR - jsr Init.Timeout - CS.RUN.WAIT.REPLY >SLEEP ldy #S.PS.hStdIn lda (pPS),y >SYSCALL feof bcs CS.RUN.ERR - tay bne .1 - >SYSCALL GetChar bcs CS.RUN.ERR cmp #3 Ctrl-C beq CS.RUN.ERR CS - .1 >LDA.G hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.Recv @@ -238,7 +210,6 @@ CS.RUN.WAIT.REPLY jsr CS.Print.UNREACH bcs CS.RUN.ERR bra .7 - .2 >STA.G hFrame >SYSCALL GetMemPtr >STYA ZPTmpPtr @@ -247,7 +218,6 @@ CS.RUN.WAIT.REPLY >LDA.G hFrame >SYSCALL FreeMem - >STZ.G hFrame .7 >LDA.G PingCount @@ -257,29 +227,23 @@ CS.RUN.WAIT.REPLY sta (pData),y .8 jmp CS.RUN.SEND.ECHO - .9 sec CS.RUN.ERR rts *-------------------------------------- CS.DOEVENT lda (pEvent) bpl .9 is it a TIMER event? - >LDA.G TimeOut beq .9 - dec sta (pData),y - .9 sec do not discard TIMER event rts *-------------------------------------- CS.Print.UNREACH ldx #3 - .1 >PUSHB SA.REMOTE+S.SOCKADDR.ADDR,x dex bpl .1 - >PUSHBI 4 >LDYA L.MSG.UNREACH >SYSCALL printf @@ -289,41 +253,32 @@ CS.Print.REPLY lda #TIMEOUT.MAX sec ldy #TimeOut sbc (pData),y - >STZ.G TimeOut.ms >STA.G TimeOut.ms+1 - tax beq .3 - .1 >LDA.G TimeOut.ms clc adc #100 >STA.G TimeOut.ms bcc .2 - >INC.G TimeOut.ms+1 .2 dex bne .1 - .3 >PUSHW.G TimeOut.ms ldy #S.IP.TTL >PUSHB (ZPTmpPtr),y - ldy #S.ICMP.SEQUENCE+1 >PUSHB (ZPTmpPtr),y dey >PUSHB (ZPTmpPtr),y - ldx #4 ldy #S.IP.SRC+3 - .4 >PUSHB (ZPTmpPtr),y dey dex bne .4 - >PUSHBI 9 >LDYA L.MSG.REPLY >SYSCALL printf @@ -331,17 +286,14 @@ CS.Print.REPLY lda #TIMEOUT.MAX *-------------------------------------- CS.QUIT >LDA.G hFrame beq .1 - >SYSCALL FreeMem .1 >LDA.G hSocket beq .2 >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown - .2 lda hLIBTCPIP beq .8 - >SYSCALL UnloadLib .8 clc diff --git a/BIN/PS.S.txt b/BIN/PS.S.txt index 221d663a..7a4d3747 100644 --- a/BIN/PS.S.txt +++ b/BIN/PS.S.txt @@ -34,7 +34,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -55,17 +55,12 @@ CS.INIT clc CS.RUN lda #1 >SYSCALL ArgV bcs .10 - >SYSCALL atoi bcs .90 - tax bne .90 - tya - -* ldx #0 - +* ldx #0 .11 cmp PS.Table.PID,x beq .12 inx @@ -74,31 +69,25 @@ CS.RUN lda #1 lda #E.NSP * sec rts - .12 jsr CS.RUN.DUMP bcs .9 lda #0 sec rts - + .10 >PUSHBI 0 >LDYA L.MSG0 >SYSCALL printf - ldx Index .1 lda PS.Table.hPS,x beq .7 - jsr CS.RUN.DUMP - >SLEEP - .7 inc Index ldx Index cpx #K.PS.MAX bne .1 - .8 lda #0 tell Kernel that all done ok, but sec we do not want to stay in memory .9 rts @@ -109,20 +98,17 @@ CS.RUN lda #1 *-------------------------------------- CS.RUN.DUMP >SYSCALL GetMemPtr >STYA ZPPSPtr - ldy #S.PS.hSID lda (ZPPSPtr),y tax lda S.Table.hSession-1,x >SYSCALL GetMemPtr >STYA ZPSessionPtr - ldy #S.SESSION.UID lda (ZPSessionPtr),y >PUSHA jsr CS.RUN.DecodeFlags - >PUSHEA.G PS.FLAGS ldy #S.PS.S @@ -132,48 +118,37 @@ CS.RUN.DUMP >SYSCALL GetMemPtr >PUSHA lda L.STATUS,x >PUSHA - ldx Index lda PS.Table.Stats,x - >PUSHA CPU% ldy #S.PS.CPID lda (ZPPSPtr),y >PUSHA - dey S.PS.PID lda (ZPPSPtr),y >PUSHA - dey S.PS.CPID lda (ZPPSPtr),y >PUSHA - lda PS.Table.hPS,x >PUSHA - >PUSHBI 10 >LDYA L.MSG1 >SYSCALL printf bcs .9 - jmp CS.RUN.PrintArgs - .9 rts *-------------------------------------- -CS.RUN.DecodeFlags - lda (ZPPSPtr) Get flags - +CS.RUN.DecodeFlag +s lda (ZPPSPtr) Get flags ldy #PS.FLAGS+7 ldx #7 - .2 lsr pha lda #'-' bcc .3 lda MSG.FLAGS,x - .3 sta (pData),y pla dey @@ -185,7 +160,6 @@ CS.RUN.PrintArgs ldy #S.PS.hARGV lda (ZPPSPtr),y beq .8 NO ARGV in PS0 - >SYSCALL GetMemPtr >STYA ZPArgV @@ -197,25 +171,19 @@ CS.RUN.PrintArgs >LDYA L.MSG2 >SYSCALL printf bcs .9 - .2 inc ZPArgV bne .3 - inc ZPArgV+1 - .3 lda (ZPArgV) bne .2 - inc ZPArgV bne .1 inc ZPArgV+1 bra .1 - .8 >PUSHBI 0 >LDYA L.MSG3 >SYSCALL printf - -.9 rts +.9 rts *-------------------------------------- CS.DOEVENT sec rts diff --git a/BIN/RPCDUMP.S.txt b/BIN/RPCDUMP.S.txt index 613ceffe..386ebad0 100644 --- a/BIN/RPCDUMP.S.txt +++ b/BIN/RPCDUMP.S.txt @@ -56,10 +56,8 @@ CS.INIT ldy #S.PS.ARGC >LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG is TCPIP loaded ? bcs .99 >STYA ZPIPCfgPtr - lda (ZPIPCfgPtr) Configured ? bpl .99 - ldx #3 ldy #S.IPCFG.IP+3 .1 lda (ZPIPCfgPtr),y @@ -67,10 +65,8 @@ CS.INIT ldy #S.PS.ARGC dey dex bpl .1 - clc rts - .99 >LDYA L.MSG.USAGE >SYSCALL puts lda #E.SYN @@ -78,7 +74,6 @@ CS.INIT ldy #S.PS.ARGC rts *-------------------------------------- CS.RUN jsr Init.Timeout - .1 >PUSHW L.Socket.Dst.Addr lda #1 >SYSCALL ArgV @@ -89,47 +84,37 @@ CS.RUN jsr Init.Timeout >SLEEP jsr Wait.Timeout bcc .1 - lda #1 >SYSCALL ArgV >PUSHYA - >PUSHBI 2 >LDYA L.MSG.UNKNOWN >SYSCALL printf sec rts - .2 >PUSHW L.Socket >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.New bcs .91 - >STA.G hSocket - ldx #3 - -.21 lda A2osX.TIMER16,x +.21 lda A2osX.TIMER16,x sta RPC.Request,x dex bpl .21 - .3 >PUSHWI RPC.Request.End-RPC.Request >PUSHW L.RPC.Request >LDA.G hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Send bcc .4 - >SLEEP jsr Wait.Timeout bcc .3 .91 bra .99 - .4 jsr Init.Timeout .5 >LDA.G hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Rcvd bcc .6 - >SLEEP jsr Wait.Timeout bcc .5 @@ -139,17 +124,14 @@ CS.RUN jsr Init.Timeout sta (pData),y >SYSCALL GetMemPtr >STYA ZPFrameBase - jsr DumpRPCFrame ldy #hFrame lda (pData),y >SYSCALL FreeMem - lda #0 sec rts - .99 lda #1 >SYSCALL ArgV >PUSHYA @@ -173,13 +155,10 @@ CS.DOEVENT lda (pEvent) CS.QUIT ldy #hSocket lda (pData),y beq .1 - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Close - .1 lda hLIBTCPIP beq .8 >SYSCALL UnloadLib - .8 clc rts *-------------------------------------- @@ -205,11 +184,9 @@ DumpRPCFrame lda #S.UDP+24 >LDYA L.MSG.DUMP0 >SYSCALL puts - .1 ldy #3 lda (ZPFrameBase),y Value follows? beq .9 - ldy #18 port >PUSHB (ZPFrameBase),y iny @@ -220,7 +197,6 @@ DumpRPCFrame lda #S.UDP+24 ldy #11 version >PUSHB (ZPFrameBase),y - ldy #4 program .7 >PUSHB (ZPFrameBase),y iny @@ -230,7 +206,6 @@ DumpRPCFrame lda #S.UDP+24 >PUSHBI 8 >LDYA L.MSG.DUMP1 >SYSCALL printf - lda #20 clc adc ZPFrameBase @@ -238,7 +213,6 @@ DumpRPCFrame lda #S.UDP+24 bcc .1 inc ZPFrameBase+1 bra .1 - .9 rts *-------------------------------------- CS.END diff --git a/BIN/SH.S.CL.txt b/BIN/SH.S.CL.txt index 07b858a5..ad92f92f 100644 --- a/BIN/SH.S.CL.txt +++ b/BIN/SH.S.CL.txt @@ -8,8 +8,7 @@ CL.Init >LDYAI 256 >STYA ZPCLBuf txa >STA.G CL.hCLBuf - -.9 rts +.9 rts *-------------------------------------- CL.Quit >LDA.G CL.hCLBuf beq .9 @@ -21,7 +20,6 @@ CL.PrintPrompt >LDYA L.PS1 >SYSCALL ExpandStr bcs .9 - phx pha >PUSHBI 0 @@ -29,7 +27,6 @@ CL.PrintPrompt >LDYA L.PS1 >SYSCALL printf pla >SYSCALL FreeMem - .1 >PUSHBI 0 >LDYA L.MSG.PROMPT >SYSCALL printf @@ -78,10 +75,8 @@ CL.CHARIN.CTRL cpx #C.CR cpx #C.EOF beq .18 - .10 cpx #C.ESC bne .11 - lda #$ff >STA.G bEscMode clc @@ -91,16 +86,13 @@ CL.CHARIN.CTRL cpx #C.CR bne .12 jmp CL.CLR - + .12 cpx #26 Ctrl-Z bne .13 - jmp CL.SUPPR - .18 lda #$ff >STA.G CL.bReady - -.13 clc +.13 clc rts *-------------------------------------- CL.Insert >LDA.G CL.Len @@ -110,10 +102,9 @@ CL.Insert >LDA.G CL.Len >STA.G CL.Len pha - .1 ply dey - lda (ZPCLBuf),y Move from Ptr To end of buffer forward... + lda (ZPCLBuf),y Move from Ptr To end of buffer forward... iny sta (ZPCLBuf),y dey @@ -121,30 +112,23 @@ CL.Insert >LDA.G CL.Len tya >CMP.G CL.Ptr bne .1 - - ply Y=CL.Ptr - + ply Y=CL.Ptr * >LDA.G CL.Ptr txa sta (ZPCLBuf),y - >INC.G CL.Ptr >LDA.G bREAD.S bmi .7 - - txa + txa >SYSCALL PutChar jsr CL.PrintEOL - .7 >LDA.G READ.N READ N = 1, don't wait for CR dec bne .8 - lda #$ff >STA.G CL.bReady - .8 clc rts *-------------------------------------- @@ -154,10 +138,8 @@ CL.CLR lda (ZPCLBuf) .1 >LDA.G CL.Ptr >CMP.G CL.Len beq .2 - inc >STA.G CL.Ptr - lda #C.FS >SYSCALL PutChar bra .1 @@ -182,10 +164,8 @@ CL.RESET.1 >STA.G CL.bReady *-------------------------------------- CL.BS >LDA.G CL.Ptr beq .9 - dec sta (pData),y - lda #C.BS >SYSCALL PutChar .9 rts @@ -193,10 +173,8 @@ CL.BS >LDA.G CL.Ptr CL.NAK >LDA.G CL.Ptr >CMP.G CL.Len beq .9 - inc >STA.G CL.Ptr - lda #C.FS >SYSCALL PutChar .9 rts @@ -205,7 +183,6 @@ CL.NAK >LDA.G CL.Ptr *-------------------------------------- CL.SUPPR >LDA.G CL.Len beq CL.PrintEOL.8 - >LDA.G CL.Ptr >CMP.G CL.Len beq CL.PrintEOL.8 @@ -216,7 +193,6 @@ CL.SUPPR >LDA.G CL.Len *-------------------------------------- CL.DEL >LDA.G CL.Len beq CL.PrintEOL.8 - >LDA.G CL.Ptr beq CL.PrintEOL.8 @@ -224,9 +200,7 @@ CL.DEL >LDA.G CL.Len >SYSCALL PutChar >DEC.G CL.Ptr - CL.DEL.1 pha - .1 ply iny lda (ZPCLBuf),y @@ -238,16 +212,12 @@ CL.DEL.1 pha >CMP.G CL.Len bne .1 - pla - >DEC.G CL.Len *-------------------------------------- CL.PrintEOL >LDA.G CL.Ptr - .1 >CMP.G CL.Len beq .2 - pha tay lda (ZPCLBuf),y @@ -258,24 +228,19 @@ CL.PrintEOL >LDA.G CL.Ptr .2 lda #' ' >SYSCALL PutChar - >LDA.G CL.Ptr - .3 >CMP.G CL.Len beq .4 - pha - lda #C.BS >SYSCALL PutChar pla inc bra .3 - .4 lda #C.BS >SYSCALL PutChar -CL.PrintEOL.8 clc +CL.PrintEOL.8 clc rts *-------------------------------------- CL.PrintCLBuf >LDYA ZPCLBuf diff --git a/BIN/SH.S.CMD.txt b/BIN/SH.S.CMD.txt index 9baf404b..2254a310 100644 --- a/BIN/SH.S.CMD.txt +++ b/BIN/SH.S.CMD.txt @@ -4,7 +4,6 @@ NEW *-------------------------------------- CMD.. lda (ZPArgVBufPtr) beq .9 - >LDYA ZPArgVBufPtr jsr IO.Load bcs CMD.SHIFTA.RTS @@ -20,7 +19,6 @@ CMD.. lda (ZPArgVBufPtr) *-------------------------------------- CMD.NOHUP lda #S.PS.F.NOHUP tsb CORE.PSFlags - >LDYA ZPArgVBuf jmp CORE.ExecExtCmd *-------------------------------------- @@ -28,51 +26,40 @@ CMD.SHIFT lda #1 CMD.SHIFTA >SYSCALL ArgV bcs .8 - jsr RemoveStrFromArgV - .7 ldy #S.PS.ARGC lda (pPS),y dec sta (pPS),y - .8 clc CMD.SHIFTA.RTS rts *-------------------------------------- CMD.PUSHD >LDA.G PUSHD.STACK cmp #PUSHD.STACK+PUSHD.STACK.MAX beq CMD.POPD.CSYN - ldy #S.PS.hCWD lda (pPs),y >SYSCALL GetMemPtr >SYSCALL strdup bcs CMD.POPD.CSYN - >INC.G PUSHD.STACK tay txa sta (pData),y - lda (ZPArgVBufPtr) bne CMD.CD.0 - .8 clc .9 rts *-------------------------------------- CMD.POPD >LDA.G PUSHD.STACK cmp #PUSHD.STACK beq CMD.POPD.CSYN - tay lda (pData),y jsr CMD.SetCWDA - >DEC.G PUSHD.STACK clc -CMD.POPD.RTS - rts - +CMD.POPD.RTS rts CMD.POPD.CSYN jmp CMD.E.CSYN *-------------------------------------- CMD.PWD ldy #S.PS.hCWD @@ -93,13 +80,10 @@ CMD.CD.0 >LDYA ZPArgVBufPtr bra CMD.CD.YA CMD.CD.HOME >LDYA L.HOME - CMD.CD.YA >SYSCALL realpath bcs CMD.POPD.RTS - >STYA ZPPtr1 stx ZPTmpW Save hMem - ldy #1 lda (ZPPtr1),y bne .12 @@ -115,9 +99,7 @@ CMD.CD.YA >SYSCALL realpath .10 >LDA.G StatBuf+S.STAT.P.TYPE cmp #S.FI.T.DIR beq .11 - lda #MLI.E.INVPATH - .19 pha lda ZPTmpW >SYSCALL freemem @@ -126,7 +108,6 @@ CMD.CD.YA >SYSCALL realpath rts .11 jsr GetPtr1LenY - dey lda (ZPPtr1),y cmp #'/' @@ -143,14 +124,12 @@ CMD.CD.YA >SYSCALL realpath >STYA ZPPtr2 jsr StrCpyPtr1Ptr2 - lda #'/' sta (ZPPtr2),y iny lda #0 sta (ZPPtr2),y - phx lda ZPTmpW >SYSCALL freemem @@ -160,9 +139,7 @@ CMD.SetCWDA pha ldy #S.PS.hCWD lda (pPs),y >SYSCALL FreeMem - pla - ldy #S.PS.hCWD sta (pPs),y lda #0 @@ -195,7 +172,6 @@ CMD.SET lda (ZPArgVBufPtr) lda #0 adc ZPPTR1+1 sta ZPPTR2+1 - >PUSHW ZPPTR2 Push value >PUSHW ZPPTR1 Push name jsr CMD.SET.PRINT @@ -203,11 +179,9 @@ CMD.SET lda (ZPArgVBufPtr) bcs .9 ldy #$ff - .3 iny lda (ZPPTR2),y bne .3 - tya sec adc ZPPTR2 @@ -216,7 +190,6 @@ CMD.SET lda (ZPArgVBufPtr) adc ZPPTR2+1 sta ZPPTR1+1 bra .1 - .8 clc .9 rts *-------------------------------------- @@ -225,31 +198,22 @@ CMD.SET lda (ZPArgVBufPtr) CMD.SET.1 .1 jsr CMD.IsSwitch bcs .6 - cmp #'C' bne .2 - ldy #bSET.C bra .5 - .2 cmp #'X' bne .3 - ldy #bSET.X bra .5 - .3 cmp #'E' bne .4 - ldy #bSET.E bra .5 - .4 cmp #'F' bne .99 - jsr CORE.FUNCRESET bra .50 - .5 lda (pData),y eor #$ff sta (pData),y @@ -257,29 +221,22 @@ CMD.SET.1 bne .1 clc rts - .6 >LDYA ZPArgVBufPtr >STYA ZPVarNamePtr jsr CORE.ArgV.Next beq CMD.SET.GET - cmp #'=' bne .99 - ldy #1 lda (ZPArgVBufPtr),y bne .99 - jsr CORE.ArgV.Next beq CMD.SET.UNSET - cmp #'`' beq CMD.SET.EXEC - jsr EXP.GET bcs .9 - >PUSHYA >LDYA ZPVarNamePtr >SYSCALL SetEnv @@ -287,9 +244,7 @@ CMD.SET.1 .8 clc .9 rts - .99 jmp CMD.E.CSYN - CMD.SET.UNSET >LDYA ZPVarNamePtr >SYSCALL UnsetEnv rts @@ -299,7 +254,6 @@ CMD.SET.GET >LDYA ZPVarNamePtr bcc .1 clc rts - .1 >PUSHYA push value >LDYA ZPVarNamePtr >PUSHYA push name @@ -321,13 +275,11 @@ CMD.SET.EXEC jsr CORE.ArgV.NextChar skip "`" jsr IO.Pipe.In bcs .9 - lda #255 >STA.G READ.N >STA.G bREAD.S jmp CMD.READ.VAR - .9 rts *-------------------------------------- CMD.DATE sec @@ -338,7 +290,6 @@ CMD.TIME clc >SYSCALL Time >PUSHEA.G TimeBuf - plp bcc .1 >PUSHW L.FMT.DATE @@ -347,7 +298,6 @@ CMD.TIME clc .2 >LEA.G StatBuf >SYSCALL StrFTime - >LEA.G StatBuf >SYSCALL puts rts @@ -360,7 +310,6 @@ CMD.ECHO stz ZPPtr1 echo -N .1 jsr CMD.IsSwitch bcs .2 - cmp #'N' bne CMD.ECHO.CSYN @@ -368,23 +317,17 @@ CMD.ECHO stz ZPPtr1 echo -N eor ZPPtr1 sta ZPPtr1 bra .4 - .2 lda ZPPtr1+1 beq .3 - lda #C.SPACE >SYSCALL putchar - .3 >PUSHBI 0 >LDYA ZPArgVBufPtr >SYSCALL printf bcs .9 - inc ZPPtr1+1 - .4 jsr CORE.ArgV.Next bne .1 - .7 bit ZPPtr1 bmi .8 @@ -407,7 +350,6 @@ CMD.GETKEY lda (ZPArgVBufPtr) lda (pPS),y >SYSCALL feof bcs .9 - tay beq .1 @@ -417,15 +359,12 @@ CMD.GETKEY lda (ZPArgVBufPtr) lda #0 sta (pData),y bra .8 - .1 >SYSCALL getchar bcs .9 cmp #'[' bne .4 - >SYSCALL getchar bcs .9 - ldx #EscChars.Cnt-1 .2 cmp EscChars,x @@ -433,26 +372,21 @@ CMD.GETKEY lda (ZPArgVBufPtr) dex bpl .2 bra .10 - .3 lda EscChars.Remap,x - .4 >PUSHA >PUSHBI 1 >PUSHW L.FMT.GETKEY >LEA.G M32.BUF >SYSCALL sprintf bcs .9 - .8 >PUSHEA.G M32.BUF - >LDYA ZPArgVBufPtr >SYSCALL SetEnv -.9 +.9 CMD.GETKEY.RTS rts *-------------------------------------- CMD.READ lda (ZPArgVBufPtr) beq .9 - stz ZPVarNamePtr+1 >STZ.G bREAD.S dec @@ -462,15 +396,11 @@ CMD.READ lda (ZPArgVBufPtr) bcs .4 cmp #'S' bne .2 - lda #$ff >STA.G bREAD.S - bra .5 - .2 cmp #'P' bne .3 - jsr CORE.ArgV.Next beq .9 @@ -481,13 +411,10 @@ CMD.READ lda (ZPArgVBufPtr) bra .5 .9 jmp CMD.E.CSYN - .3 cmp #'N' bne .9 - jsr CORE.ArgV.Next beq .9 - >LDYA ZPArgVBufPtr >SYSCALL AToL bcs CMD.GETKEY.RTS @@ -498,20 +425,15 @@ CMD.READ lda (ZPArgVBufPtr) inc pStack inc pStack inc pStack - bra .5 - .4 >LDYA ZPArgVBufPtr >STYA ZPVarNamePtr .5 jsr CORE.ArgV.Next bne .1 - lda ZPVarNamePtr+1 beq .9 - CMD.READ.VAR jsr CL.Reset - .1 >SYSCALL GetChar bcs CMD.READ.VAR.9 @@ -523,11 +445,10 @@ CMD.READ.VAR jsr CL.Reset lda (ZPCLBuf) bne CMD.READ.VAR.SET -CMD.READ.VAR.UNSET +CMD.READ.VAR.UNSET >LDYA ZPVarNamePtr >SYSCALL UnSetEnv rts - CMD.READ.VAR.SET >PUSHW ZPCLBuf >LDYA ZPVarNamePtr @@ -565,44 +486,36 @@ CMD.REN lda (ZPArgVBufPtr) jsr CORE.ArgV.Next lda (ZPArgVBufPtr) beq .90 - >LDYA ZPArgVBufPtr >SYSCALL Rename rts - -.90 >PULLYA -.9 +.90 >PULLYA +.9 CMD.REN.CSYN jmp CMD.E.CSYN *-------------------------------------- CMD.RD lda (ZPArgVBufPtr) beq CMD.REN.CSYN - >PUSHEA.G StatBuf >LDYA ZPArgVBufPtr >SYSCALL STAT bcs .99 - >LDA.G StatBuf+S.STAT.P.TYPE cmp #S.FI.T.DIR bne CMD.REN.CSYN - >LDYA ZPArgVBufPtr >SYSCALL Remove .99 rts *-------------------------------------- CMD.FUNCTION lda (ZPArgVBufPtr) beq .9 - jsr CORE.StkGetCtx bcc .9 No context allowed >LDA.G hFuncList bne .1 - >SYSCALL SListNew bcs .99 >STA.G hFuncList - .1 >PUSHW ZPArgVBufPtr >LDA.G hFuncList @@ -613,59 +526,46 @@ CMD.FUNCTION lda (ZPArgVBufPtr) jsr CORE.ArgV.Next nothing after function name beq .10 - cmp #'{' bne .9 ldy #1 lda (ZPArgVBufPtr),y beq .11 - .9 jmp CMD.E.CSYN .99 rts -*-------------------------------------- +*-------------------------------------- .10 jsr CORE.GetCharNB bcs .9 cmp #'{' bne .9 - jsr CORE.GetNextCharNB bcs .9 - .11 stz M32.ACC '{' counter >LDYA ZPInputBufPtr >STYA ZPPtr1 - ldy #0 ldx #0 - lda (ZPInputBufPtr) beq .6 - .12 cmp #'{' bne .13 - inc M32.ACC bra .14 - .13 cmp #'}' bne .14 - dec M32.ACC bmi .7 - .14 iny bne .15 inx .15 jsr CORE.GetNextChar bne .12 - .6 lda M32.ACC bpl .9 - .7 jsr CORE.GetNextChar skip ending '}' txa @@ -702,7 +602,6 @@ CMD.CALL >LDA.G hFuncList >LDYA ZPArgVBufPtr FUNC PARAM1 PARAM2... jsr CORE.Load.YAX Exec FUNC bcs CMD.CALL.RTS - lda #$C0+C.CALL jmp CORE.StkPush *-------------------------------------- @@ -729,13 +628,10 @@ CMD.EXIT lda (ZPArgVBufPtr) cmp #$C0+C.. in CALL . CL context ? beq CMD.EXIT.FILE - cmp #$C0+C.CALL beq CMD.EXIT.FILE - cmp #$C0+C.CLEXEC beq CMD.EXIT.SH - jsr CMD.EXIT.POP bcc .2 @@ -754,29 +650,23 @@ CMD.EXIT.SH jsr CMD.EXIT.FILE *-------------------------------------- CMD.EXIT.FILE jsr CORE.StkPull >SYSCALL freemem Code buffer - ldy #S.PS.hARGV lda (pPS),y >SYSCALL freemem ArgV buffer - jsr CORE.StkPull ldy #S.PS.hARGV sta (pPS),y - jsr CORE.StkPull ldy #S.PS.ARGC sta (pPS),y jsr CORE.StkPullInputBufPtr - jsr CORE.StkPull sta ZPInputBuf+1 - jsr CORE.StkPull sta ZPInputBuf lda M32.ACC - CMD.EXIT.CLCRTS clc CMD.EXIT.RTS rts *-------------------------------------- @@ -790,9 +680,7 @@ CMD.EXIT.POP and #$3F cmp #C.SWITCH SWITCH : hValue beq .2 - ldx #1 - cmp #C.CASE CASE : C.CASE + hValue beq .1 @@ -804,13 +692,11 @@ CMD.EXIT.POP and #$3F .2 jsr CORE.StkPull >SYSCALL freemem rts - .9 lda #E.STACKERROR sec rts *-------------------------------------- CMD.EXIT.POPX lda (pData) - .1 dec dex bne .1 @@ -822,15 +708,12 @@ CMD.EXIT.POPX lda (pData) *-------------------------------------- CMD.BREAK jsr CORE.StkGetCtx Get context in CORE.TestResult bcs .9 - tax and #$3F cmp #C.CASE bne .9 - txa bpl .8 - jsr CORE.StkPull remove C.CASE jsr CORE.StkGet and #$7F @@ -849,10 +732,8 @@ CMD.SWITCH jsr CORE.StkGetCtx lda #2 jsr CORE.StkCheck bcs .9 - jsr EXP.GET bcs .9 - >SYSCALL strdup bcs .9 @@ -861,42 +742,30 @@ CMD.SWITCH jsr CORE.StkGetCtx lda CORE.TestResult beq .1 - ora #$80 - .1 ora #C.SWITCH jmp CORE.StkPush - .9 rts *-------------------------------------- CMD.CASE jsr CORE.StkGetCtx Get context in CORE.TestResult bcs .9 - tax - and #$3F cmp #C.SWITCH beq .1 - cmp #C.CASE bne .9 - txa previous case was true ? bpl .10 - jsr EXP.GET skip expression bcs .9 rts keep existing context - .10 jsr CORE.StkPull remove previous C.CASE bra CMD.CASE - .1 jsr EXP.GET bcs .9 - >PUSHYA - lda (pDATA) tay dey get hVALUE @@ -909,8 +778,7 @@ CMD.CASE jsr CORE.StkGetCtx Get context in CORE.TestResult ora CORE.TestResult ora #C.CASE jmp CORE.StkPush - -.9 +.9 CMD.E.CSYN lda #E.CSYN sec rts @@ -921,10 +789,8 @@ CMD.DEFAULT jsr CORE.StkGetCtx Get context in CORE.TestResult and #$3F cmp #C.SWITCH beq .1 - cmp #C.CASE bne CMD.E.CSYN - jsr CORE.StkPull remove C.CASE .1 jsr CORE.StkGet @@ -938,15 +804,11 @@ CMD.END jsr CORE.StkGetCtx Get context in CORE.TestResult and #$3F cmp #C.SWITCH beq .3 - cmp #C.CASE beq .2 - cmp #C.DEFAULT bne CMD.E.CSYN - .2 jsr CORE.StkPull remove C.CASE or C.DEFAULT - .3 jsr CORE.StkPull remove C.SWITCH jsr CORE.StkPull get hVALUE >SYSCALL freemem @@ -962,7 +824,6 @@ CMD.FOR jsr CORE.StkGetCtx jsr CORE.ArgV.Next beq CMD.E.CSYN - >PUSHW ZPArgVBufPtr >LDYA L.IN >SYSCALL StrCaseCmp @@ -974,32 +835,26 @@ CMD.FOR jsr CORE.StkGetCtx lda #8 Make sure 8 bytes free on stack jsr CORE.StkCheck bcs .9 - >LDYA ZPInputBufPtr jsr CORE.StkPushYA Push CmdPtr AFTER FOR lda (ZPArgVBufPtr) cmp #'(' beq CMD.FOR.FILE - cmp #'`' bne CMD.FOR.LIST jmp CMD.FOR.EXEC -.9 rts +.9 rts *-------------------------------------- CMD.FOR.LIST >LDYA ZPArgVBufPtr >SYSCALL strdup bcs FOR.FILE.9 - jsr CORE.StkPushYAX Push listPtr,hList - jsr CORE.PushVarName Push hVARNAME bcs FOR.FILE.9 - lda #C.FOR.LIST jsr CORE.StkPush - lda #C.FOR jsr CORE.StkPush @@ -1013,7 +868,6 @@ CMD.FOR.FILE jsr CORE.ArgV.NextChar skip "(" ldx #O.RDONLY+O.TEXT jsr IO.FOpenYAX bcc CMD.FOR.PUSH - FOR.FILE.9 rts *-------------------------------------- CMD.FOR.EXEC jsr CORE.ArgV.NextChar skip "`" @@ -1025,26 +879,21 @@ CMD.FOR.EXEC jsr CORE.ArgV.NextChar skip "`" >LDYA ZPArgVBufPtr >SYSCALL execl bcs FOR.FILE.9 - >LDA.G IO.hOut ldy #S.PS.hStdOut sta (pPS),y - >STZ.G IO.hOut - >LEA.G IO.FIFO ldx #O.RDONLY+O.TEXT - jsr IO.FOpenYAX + jsr IO.FOpenYAX bcs FOR.FILE.9 CMD.FOR.PUSH jsr CORE.StkPush push hPIPE - jsr CORE.PushVarName Push hVARNAME bcs FOR.FILE.9 lda #C.FOR.FILEEXEC jsr CORE.StkPush - lda #C.FOR jsr CORE.StkPush @@ -1059,7 +908,7 @@ CMD.FOR.LOOP ora CORE.TestResult pla sta (pData),y -* clc +* clc rts *-------------------------------------- CMD.NEXT jsr CORE.StkGet Y = StkPtr @@ -1068,14 +917,12 @@ CMD.NEXT jsr CORE.StkGet Y = StkPtr and #$3F cmp #C.FOR bne .9 - dey lda (pData),y iny tax beq CMD.NEXT.LIST jmp CMD.NEXT.FILEEXEC - .9 lda #E.NOFOR sec rts @@ -1088,13 +935,10 @@ CMD.NEXT jsr CORE.StkGet Y = StkPtr * stack FOR TOKEN *-------------------------------------- CMD.NEXT.LIST lda (pData),y Y = StkPtr - bpl .1 - jsr CMD.NEXT.LIST.TOKEN bcs .9 bpl .1 - lda (pData) sec sbc #6 @@ -1105,18 +949,15 @@ CMD.NEXT.LIST lda (pData),y Y = StkPtr dey lda (pData),y sta ZPInputBufPtr+1 - clc rts - .1 lda (pData) tay sec sbc #8 sta (pData) - dey - dey + dey lda (pData),y hVARNAME pha dey @@ -1124,7 +965,6 @@ CMD.NEXT.LIST lda (pData),y Y = StkPtr >SYSCALL freemem pla >SYSCALL freemem - * clc .9 rts *-------------------------------------- @@ -1141,42 +981,32 @@ CMD.NEXT.LIST.TOKEN ply dey skip hLIST - dey lda (pData),y sta ZPPtr1 - dey lda (pData),y sta ZPPtr1+1 - ldy #0 - .10 jsr GetPtr1Next beq .3 - cmp #C.SPACE beq .10 - sta (ZPCLBuf),y iny - .1 jsr GetPtr1Next beq .3 cmp #C.SPACE beq .3 - sta (ZPCLBuf),y iny bra .1 - -.3 lda #0 +.3 lda #0 sta (ZPCLBuf),y tya beq .8 - jsr CMD.READ.VAR.SET bcs .9 @@ -1192,10 +1022,8 @@ CMD.NEXT.LIST.TOKEN lda #$80 clc rts - .8 jsr CMD.READ.VAR.UNSET bcs .9 - lda #0 * clc .9 rts @@ -1213,7 +1041,6 @@ CMD.NEXT.FILEEXEC jsr CMD.NEXT.LINE bcs .9 bpl .1 end of file/pipe - lda (pData) sec sbc #4 @@ -1224,18 +1051,15 @@ CMD.NEXT.FILEEXEC dey lda (pData),y sta ZPInputBufPtr+1 - clc rts - .1 lda (pData) tay sec sbc #6 sta (pData) - dey - dey + dey lda (pData),y hVARNAME pha dey @@ -1263,20 +1087,17 @@ CMD.NEXT.LINE lda (pData) lda (pData),y hFILE/hPIPE >SYSCALL fgets bcs .8 - jsr CMD.READ.VAR.SET bcs .9 lda #$80 * clc rts - .8 jsr CMD.READ.VAR.UNSET bcs .9 - lda #0 * clc -.9 +.9 CMD.NEXT.LINE.RTS rts *-------------------------------------- @@ -1292,14 +1113,11 @@ CMD.IF jsr CORE.StkGetCtx .3 lda CORE.IntCmd cmp #C.WHILE bne .8 - lda #3 jsr CORE.StkCheck bcs CMD.NEXT.LINE.RTS - >LDYA ZPInputCmdPtr jsr CORE.StkPushYA Push BEFORE WHILE/IF - .8 lda CORE.TestResult ora CORE.IntCmd jmp CORE.StkPush @@ -1311,23 +1129,20 @@ CMD.LOOP jsr CORE.StkPull and #$3F cmp #C.WHILE bne .9 - txa bmi .8 - lda (pData) dec dec Discard loop Ptr sta (pData) - clc + clc rts .8 jmp CORE.StkPullInputBufPtr - .9 lda #E.NOWHILE sec - rts + rts *-------------------------------------- CMD.ELSE jsr CORE.StkGet bcs .9 @@ -1342,24 +1157,19 @@ CMD.ELSE jsr CORE.StkGet txa eor #$80 toggle and store at stack ptr sta (pData),y - .8 clc rts - .9 lda #E.NOIF sec rts *-------------------------------------- CMD.FI jsr CORE.StkPull bcs .9 - and #$3F cmp #C.IF bne .9 - clc rts - .9 lda #E.NOIF sec rts @@ -1367,25 +1177,20 @@ CMD.FI jsr CORE.StkPull CMD.IsSwitch lda (ZPArgVBufPtr) cmp #'-' bne .9 - ldy #1 lda (ZPArgVBufPtr),y beq .9 - cmp #'0' is -0 ... -9 ? bcc .9 cmp #'9'+1 bcc .9 - .1 tax iny lda (ZPArgVBufPtr),y bne .9 - txa jmp ToUpperCase - -.9 sec +.9 sec rts *-------------------------------------- MAN diff --git a/BIN/SH.S.CORE.txt b/BIN/SH.S.CORE.txt index 1aa99432..9c6d6a67 100644 --- a/BIN/SH.S.CORE.txt +++ b/BIN/SH.S.CORE.txt @@ -8,8 +8,7 @@ CORE.Init >LDYAI 256 >STYA ZPArgVBuf txa >STA.G CORE.hArgVBuf - -.9 rts +.9 rts *-------------------------------------- CORE.Quit >LDA.G CORE.hArgVBuf beq CORE.FUNCRESET @@ -34,13 +33,10 @@ CORE.Load.YAX stx M32.ACC X = Code to Execute lda #8 jsr CORE.StkCheck bcs .9 - >LDYA ZPInputBuf jsr CORE.StkPushYA - >LDYA ZPInputBufPtr jsr CORE.StkPushYA - ldy #S.PS.ARGC lda (pPS),y jsr CORE.StkPush old ARGC @@ -52,14 +48,11 @@ CORE.Load.YAX stx M32.ACC X = Code to Execute ldy #S.PS.ARGC lda M32.ACC+2 new ARGC sta (pPS),y - iny #S.PS.hARGV lda M32.ACC+1 sta (pPS),y new hARGV - lda M32.ACC new code jsr CORE.StkPush - * lda M32.ACC >SYSCALL GetMemPtr >STYA ZPInputBuf @@ -94,122 +87,92 @@ CORE.Load.YAX stx M32.ACC X = Code to Execute *-------------------------------------- CORE.Run.EOF jsr CORE.StkPull bcs * - cmp #$C0+C.. check CALL . CL context beq .1 cmp #$C0+C.CALL beq .1 cmp #$C0+C.CLEXEC bne .9 - .1 jsr CMD.EXIT.FILE jsr IO.Reset - lda #0 sec rts Ending 0, CS,A=0 - .9 lda #E.UNEXPEOF sec - rts + rts *-------------------------------------- CORE.Run.SYN lda #E.SYN sec rts - CORE.Run >LDYA ZPInputBufPtr Save Actual cmd for looping >STYA ZPInputCmdPtr >LDYA ZPArgVBuf >STYA ZPArgVBufPtr - lda #0 Reset ArgV Buffer sta (ZPArgVBuf) - lda #S.PS.F.HOLD sta CORE.PSFlags - lda #$ff - sta CORE.IntCmd assume external - jsr CORE.GetCharNB bcs CORE.Run.EOF - cmp #'|' bne .21 - jsr IO.Pipe.In bcs .9 - jsr CORE.GetNextCharNB Skip | bcs CORE.Run.SYN bra .3 - .21 pha jsr IO.Reset pla - .3 cmp #C.CR empty line ? bne .33 - jsr CORE.GetNextChar skip CR... bra .8 - .33 cmp #'#' commented line? bne .4 .12 jsr CORE.SkipLine .8 jsr IO.Reset - lda #0 clc .9 rts EOL, CS,A=0 - .4 >LDYA L.CMD internal command ? jsr CORE.LookupInputBuf bcc .41 - .40 jsr CORE.ArgV.Add external cmd, go check context bra .42 - .41 jsr CORE.SkipCharsA - stx CORE.IntCmd - .42 jsr CORE.StkGet bcs CORE.Run.7 no particular context, exec... tax - lda CORE.IntCmd bmi .45 - and #$3F cmp #C.SWITCH SWITCH....FI ? bcs CORE.Run.7 .45 txa bpl .43 context is FALSE, skip line - - asl + asl bmi CORE.Run.7 parent context is true, exec - .43 jsr CORE.GetCharNB - bcs .44 EOF cmp #C.CR beq .44 - cmp #';' TODO ";" beq .44 jsr CORE.GetNextChar bra .43 - .44 jsr CORE.GetNextCharNB Skip EoL char clc .99 rts @@ -223,18 +186,13 @@ CORE.Run.5 >LDYA L.CORE.IO jsr CORE.IO.JMP bcs CORE.Run.RTS bra CORE.Run.7 - CORE.Run.6 jsr CORE.ArgV.Add - CORE.Run.7 jsr CORE.GetCharNB bcs CORE.ExecCmd.1 Nothing to skip - jsr CORE.IsEndCmd bcs CORE.Run.5 - cmp #'|' bne CORE.ExecCmd skip CR, ; - jsr IO.Pipe.Out bcs CORE.Run.RTS @@ -242,10 +200,8 @@ CORE.Run.7 jsr CORE.GetCharNB and #$ff^S.PS.F.HOLD Run in the background... ora #S.PS.F.CLOSEONX ...and close PIPE on exit sta CORE.PSFlags - bra CORE.ExecCmd.1 Do not skip | - -CORE.Run.RTS rts + CORE.Run.RTS rts *-------------------------------------- * Input : ZPArgVBuf *-------------------------------------- @@ -253,44 +209,35 @@ CORE.ExecCmd jsr CORE.GetNextCharNB Skip EoL char CORE.ExecCmd.1 lda #0 sta (ZPArgVBufPtr) - >LDYA ZPArgVBuf >STYA ZPArgVBufPtr lda CORE.IntCmd bmi CORE.ExecExtCmd - asl tax jmp (J.CMD,x) - CORE.ExecExtCmd >PUSHB CORE.PSFlags >LDYA ZPArgVBuf >SYSCALL execv bcs .9 - tax CPID - lda CORE.PSFlags and #S.PS.F.HOLD bne .4 - txa >PUSHA >PUSHBI 1 >PUSHW L.MSG.PID ldy #S.PS.hStdErr - lda (pPS),y + lda (pPS),y >SYSCALL fprintf rts - .4 >SLEEP Suspend this PID - sec ldy #S.PS.RC CPID will update S.PS.RC lda (pPs),y bne .9 - .8 clc .9 rts *-------------------------------------- @@ -299,7 +246,6 @@ CORE.SkipLine jsr CORE.GetNextCharNB cmp #C.CR EOL bne CORE.SkipLine - jsr CORE.GetNextChar skip CR... .8 rts @@ -315,18 +261,13 @@ CORE.LookupArgVBuf >LDYA ZPArgVBufPtr bcc CORE.Lookup >LDYA ZPInputBufPtr - CORE.Lookup >STYA ZPPtr2 ldx #0 - .1 ldy #$ff - .2 jsr .7 get next valid char in src text bcs .3 - .20 jsr ToUpperCase - eor (ZPPtr1),y match table char ? asl compare only 7 bits bne .4 no match...get next table keyword @@ -344,35 +285,26 @@ CORE.Lookup >STYA ZPPtr2 .3 dey lda (ZPPtr1),y was last char in this keyword ? bmi .8 - iny - .41 jsr IncPtr1 skip chars to next keyword .4 lda (ZPPtr1) bpl .41 - jsr IncPtr1 - .6 inx - lda (ZPPtr1) Array Ending 0, lookup failed bne .1 - lda #E.SYN sec rts - .7 iny lda (ZPPtr2),y Get Src text char... beq .9 end of text jsr CORE.IsSpaceOrEndCmd bcc .9 end of valid chars - clc rts - .9 sec rts *-------------------------------------- @@ -381,54 +313,43 @@ CORE.Lookup >STYA ZPPtr2 CORE.ArgV.Dup >STYA ZPPtr1 phy pha - lda #1 sta ZPPtr2 stz ZPPtr2+1 - .1 jsr GetPtr1LenY tya beq .2 - jsr AddAp1Ptr2 jsr AddYp1Ptr1 bra .1 - .2 pla ply >STYA ZPPtr1 - >LDYA ZPPtr2 >SYSCALL GetMem bcs .9 - >STYA ZPPtr2 phx ldx #$ff Arg count-1 (skip $0) - .5 jsr StrCpyPtr1Ptr2 tya beq .8 - inx - jsr AddAp1Ptr2 jsr AddYp1Ptr1 bra .5 .8 txa A = Arg count, X = hARGV plx - - clc -.9 rts + clc +.9 rts *-------------------------------------- CORE.ArgV.Add >LDYA ZPArgVBufPtr >STYA ZPArgVBufPrev Save String start of Expand lda #C.SPACE sta ZPTmpW - jsr CORE.GetCharNB bcs .9 @@ -436,7 +357,6 @@ CORE.ArgV.Add >LDYA ZPArgVBufPtr bne .10 sta ZPTmpW bra .1 - .10 cmp #'(' bne .11 ldx #')' @@ -447,12 +367,10 @@ CORE.ArgV.Add >LDYA ZPArgVBufPtr .11 cmp #'`' bne .12 sta ZPTmpW - .12 jsr CORE.ArgV.PutChar .1 jsr CORE.GetNextChar bcs .5 - .2 cmp ZPTmpW bne .3 jsr CORE.GetNextChar @@ -463,12 +381,9 @@ CORE.ArgV.Add >LDYA ZPArgVBufPtr bne .40 jsr CORE.IsEndCmd bcc .5 - .40 jsr CORE.ArgV.PutChar - .4 jsr CORE.GetNextChar bcc .2 - .5 lda #0 jsr CORE.ArgV.PutChar @@ -488,13 +403,10 @@ CORE.ArgV.Add >LDYA ZPArgVBufPtr beq .8 jsr CORE.ArgV.PutChar bra .7 - .8 tya beq .81 - lda #0 jsr CORE.ArgV.PutChar - .81 pla >SYSCALL freemem .9 rts @@ -505,18 +417,15 @@ CORE.ArgV.NextChar inc ZPArgVBufPtr bne .8 inc ZPArgVBufPtr+1 -.8 rts +.8 rts *-------------------------------------- CORE.ArgV.Next lda (ZPArgVBufPtr) beq .8 - >LDYA ZPArgVBufPtr >STYA ZPArgVBufPrev - .1 jsr CORE.ArgV.NextChar lda (ZPArgVBufPtr) bne .1 - jsr CORE.ArgV.NextChar lda (ZPArgVBufPtr) @@ -533,7 +442,6 @@ CORE.IO.AMP lda #S.PS.F.HOLD trb CORE.PSFlags clc CORE.IO.RTS rts - CORE.IO.IN lda #O.RDONLY+O.TEXT jsr CORE.IO.Open bcs CORE.IO.RTS @@ -566,18 +474,16 @@ CORE.IO.Open pha Open Mode >STYA ZPArgVBufPtr Discard filename plx jmp IO.FOpenYAX - .9 pla lda #E.SYN sec - rts + rts *-------------------------------------- * Input Buffer *-------------------------------------- CORE.IsSpaceOrEndCmd cmp #C.SPACE beq CORE.IsEndCmd.8 - CORE.IsEndCmd cmp #';' beq CORE.IsEndCmd.8 cmp #C.CR @@ -586,7 +492,6 @@ CORE.IsEndCmd cmp #';' beq CORE.IsEndCmd.8 sec rts - CORE.IsEndCmd.8 clc rts *-------------------------------------- @@ -611,7 +516,7 @@ CORE.CheckCharNB cmp #C.TAB beq .9 clc -.9 rts +.9 rts *-------------------------------------- CORE.GetNextChar inc ZPInputBufPtr @@ -622,7 +527,6 @@ CORE.GetChar lda (ZPInputBufPtr) beq .9 clc rts - .9 sec rts *-------------------------------------- @@ -631,7 +535,7 @@ CORE.SkipCharsA clc sta ZPInputBufPtr bcc .8 inc ZPInputBufPtr+1 -.8 rts +.8 rts *-------------------------------------- * Stack *-------------------------------------- @@ -639,22 +543,18 @@ CORE.StkCheck sec adc (pData) StackPtr cmp #CORE.STACK.MAX bcc .8 - lda #E.STKOVERFLOW -* clc - -.8 rts +* clc +.8 rts *-------------------------------------- CORE.StkPushYAX phx jsr CORE.StkPushYA bcs CORE.StkPushYA.9 - bra CORE.StkPush.1 *-------------------------------------- CORE.StkPushYA phy jsr CORE.StkPush bcc CORE.StkPush.1 - CORE.StkPushYA.9 plx CORE.StkPushYA.RTS @@ -672,14 +572,12 @@ CORE.StkPush.1 lda (pData) StackPtr inc cmp #CORE.STACK.MAX bcs .9 - sta (pData) StackPtr tay pla sta (pData),y * clc rts - .9 pla lda #E.STKOVERFLOW * sec @@ -694,14 +592,11 @@ CORE.StkGetCtx jsr CORE.StkGet cmp #$C0+C.CALL beq .1 CS - cmp #$C0+C.CLEXEC beq .1 CS - and #$80 get current.. lsr becomes parent bra .8 - .1 lda #$40 ...set Parent = true .8 sta CORE.TestResult @@ -710,7 +605,6 @@ CORE.StkGetCtx jsr CORE.StkGet rts *-------------------------------------- CORE.StkPullInputBufPtr - jsr CORE.StkPull bcs .9 sta ZPInputBufPtr @@ -718,18 +612,16 @@ CORE.StkPullInputBufPtr bcs .9 sta ZPInputBufPtr+1 -.9 rts +.9 rts *-------------------------------------- CORE.StkPull jsr CORE.StkGet bcs .9 - dey pha tya sta (pData) StackPtr pla - -.9 rts +.9 rts *-------------------------------------- CORE.StkGet lda (pData) StackPtr beq .9 diff --git a/BIN/SH.S.EXP.txt b/BIN/SH.S.EXP.txt index 1440c89c..4e5cf5a0 100644 --- a/BIN/SH.S.EXP.txt +++ b/BIN/SH.S.EXP.txt @@ -4,49 +4,37 @@ NEW *-------------------------------------- EXP.GET jsr CORE.ArgV.Next bne .1 - >LDYA ZPArgVBufPrev no op, return text value clc rts - .1 >LDYA ZPArgVBufPrev >SYSCALL AToL To Int32 on stack bcs .9 - .2 >LDYA L.EXP.OP.MATH + - .... ? jsr CORE.LookupArgVBuf bcs .94 stx CORE.Operator - jsr CORE.ArgV.Next get next argument beq .94 - >LDYA ZPArgVBufPtr >SYSCALL AToL To Int32 on stack bcs .94 jsr EXP.FPU.EXEC - jsr CORE.ArgV.Next another op ? bne .2 - .8 >PUSHBI 4 ACC on stack >PUSHW L.FMT.Long >LEA.G M32.BUF >SYSCALL sprintf bcs .9 - >LEA.G M32.BUF - rts - .94 >POP 4 - .9 lda #E.ESYN sec rts - EXP.FPU.EXEC ldy CORE.Operator ldx EXP.OP.MATH.FPU,y @@ -57,7 +45,6 @@ EXP.TEST lda (ZPArgVBufPtr) lda #$80 sta CORE.LogicOp No Op - .10 >LDYA L.EXP.BEGIN jsr CORE.LookupArgVBuf @@ -67,13 +54,11 @@ EXP.TEST lda (ZPArgVBufPtr) txa asl in C php - lda CORE.TestResult get parent asl discard true/false plp get new ror set ctx and parent sta CORE.TestResult - jsr CORE.ArgV.Next beq .9 @@ -86,7 +71,6 @@ EXP.TEST lda (ZPArgVBufPtr) jsr EXP.TEST.UNARY bcs .9 - eor CORE.TestResult sta CORE.TestResult lda (ZPArgVBufPtr) @@ -95,16 +79,12 @@ EXP.TEST lda (ZPArgVBufPtr) .9 lda #E.ESYN sec .99 rts - .1 jsr CORE.ArgV.Next beq .9 - >LDYA L.EXP.OP.BINARY -eq -ne .... ? jsr CORE.LookupArgVBuf bcs .9 - stx CORE.Operator - jsr EXP.TEST.BINARY bcs .9 @@ -113,17 +93,13 @@ EXP.TEST lda (ZPArgVBufPtr) jsr CORE.ArgV.Next beq .9 - .8 cmp #']' bne .9 - ldy #1 lda (ZPArgVBufPtr),y bne .9 - jsr CORE.ArgV.Next beq .80 - >LDYA L.EXP.OP.LOGIC jsr CORE.LookupArgVBuf bcs .9 @@ -131,35 +107,26 @@ EXP.TEST lda (ZPArgVBufPtr) stx CORE.LogicOp 0 = AND, 1 = OR txa beq .84 - lda CORE.TestResult OR : prev test is true, exit bmi .88 bra .85 - .84 lda CORE.TestResult AND : prev test is false, exit bpl .88 - .85 lda CORE.TestResult sta CORE.PrevTestResult - jsr CORE.ArgV.Next beq .9 - jmp .10 - .80 lda CORE.LogicOp bne .88 NONE, or OR : exit with last result - lda CORE.PrevTestResult AND : stop if false and CORE.TestResult sta CORE.TestResult - .88 clc rts *-------------------------------------- EXP.TEST.UNARY jsr CORE.ArgV.Next beq EXP.OP.UNARY.ESYN we need one arg or ] - lda CORE.Operator asl tax @@ -169,7 +136,6 @@ EXP.OP.UNARY.ESYN lda #E.ESYN sec rts - EXP.OP.UNARY.D jsr EXP.OP.UNARY.STAT bcs EXP.OP.UNARY.DEF.9 >LDA.G StatBuf+S.STAT.P.TYPE @@ -180,7 +146,6 @@ EXP.OP.UNARY.D jsr EXP.OP.UNARY.STAT EXP.OP.UNARY.E jsr EXP.OP.UNARY.STAT bcs EXP.OP.UNARY.DEF.9 bra EXP.OP.UNARY.DEF.8 DIR or FILE exist - EXP.OP.UNARY.F jsr EXP.OP.UNARY.STAT bcs EXP.OP.UNARY.DEF.9 @@ -212,7 +177,6 @@ EXP.OP.UNARY.DEF.9 EXP.OP.UNARY.N lda (ZPArgVBufPtr) [ -N ] ? cmp #']' beq EXP.OP.UNARY.DEF.9 FALSE - jsr CORE.ArgV.Next beq EXP.OP.UNARY.ESYN bra EXP.OP.UNARY.DEF.8 arg is not empty TRUE @@ -221,7 +185,6 @@ EXP.OP.UNARY.Z lda (ZPArgVBufPtr) [ -Z ] ? cmp #']' beq EXP.OP.UNARY.DEF.8 TRUE - jsr CORE.ArgV.Next beq EXP.OP.UNARY.ESYN bra EXP.OP.UNARY.DEF.9 FALSE @@ -229,33 +192,25 @@ EXP.OP.UNARY.Z lda (ZPArgVBufPtr) [ -Z ] ? EXP.TEST.BINARY lda CORE.Operator cmp #6 =, !=, <= <, >=, > bcs EXP.TEST.BINARY.NUM - >LDYA ZPArgVBufPrev >STYA ZPPtr1 - jsr CORE.ArgV.Next beq EXP.TEST.BINARY.ESYN - >PUSHW ZPPtr1 >LDYA ZPArgVBufPtr >SYSCALL strcmp bcs .1 CS if != - - lda #%010 010 str1 = str2 + lda #%010 010 str1 = str2 bra EXP.TEST.BINARY.END - .1 asl CS if < bcs .2 - lda #%100 010 str1 < str2 - bra EXP.TEST.BINARY.END - +bra EXP.TEST.BINARY.END .2 lda #%001 010 str1 > str2 - bra EXP.TEST.BINARY.END +bra EXP.TEST.BINARY.END EXP.TEST.BINARY.ESYN4 >POP 4 - EXP.TEST.BINARY.ESYN lda #E.ESYN sec @@ -268,27 +223,22 @@ EXP.TEST.BINARY.NUM jsr CORE.ArgV.Next beq EXP.TEST.BINARY.ESYN4 - >LDYA ZPArgVBufPtr >SYSCALL AToL bcs EXP.TEST.BINARY.ESYN4 >FPU CMP32 - tax bmi .4 ACC < ARG bne .5 - lda #%010 010 ACC = ARG bra EXP.TEST.BINARY.END - .4 lda #%100 100 ACC > ARG bra EXP.TEST.BINARY.END - .5 lda #%001 001 ACC < ARG -EXP.TEST.BINARY.END +EXP.TEST.BINARY.END clc ldx CORE.Operator and EXP.OP.BINARY.BITS,x diff --git a/BIN/SH.S.HIS.txt b/BIN/SH.S.HIS.txt index 8558a39f..f6ce979e 100644 --- a/BIN/SH.S.HIS.txt +++ b/BIN/SH.S.HIS.txt @@ -8,7 +8,6 @@ HIS.Init >LDYAI HISTORY.MAX Get a buffer for History txa >STA.G HIS.hBuf - lda #0 >STA.G HIS.Count >STA.G HIS.Index @@ -21,50 +20,38 @@ HIS.Quit >LDA.G HIS.hBuf *-------------------------------------- HIS.Add >LDA.G HIS.hBuf beq .9 - >SYSCALL GetMemPtr >STYA ZPPTR1 - .10 lda #$ff jsr HIS.GetA Y=ending 0 phy tya - sec add len+1 >ADC.G CL.Len CmdBuffer length pla bcc .2 enough room - jsr GetPtr1LenY get len of oldest string - tya -* sec +* sec adc ZPPTR1 sta ZPPTR2 lda ZPPTR1+1 adc #0 sta ZPPTR2+1 - ldy #$FF - .1 iny lda (ZPPTR2),y move back until String ending 0 found sta (ZPPTR1),y bne .1 - iny lda (ZPPTR2),y move back until Array ending 0 found sta (ZPPTR1),y bne .1 - >DEC.G HIS.Count - bra .10 retry.... - .2 jsr AddAPtr1 A = ending O offset ldy #$ff - .4 iny lda (ZPCLBuf),y sta (ZPPTR1),y @@ -72,43 +59,33 @@ HIS.Add >LDA.G HIS.hBuf iny sta (ZPPTR1),y set new array ending 0 -* lda #0 +* lda #0 >STA.G HIS.Index Reset Index - >INC.G HIS.Count - .9 rts *-------------------------------------- HIS.GetPrev >LDA.G HIS.hBuf beq HISTORY.RTS - >SYSCALL GetMemPtr >STYA ZPPTR1 - >LDA.G HIS.Count beq HISTORY.RTS empty history,nothing to do - >LDA.G HIS.Index bne .1 - >LDA.G HIS.Count - .1 dec >STA.G HIS.Index - bra HIS.SetA History.RTS rts *-------------------------------------- HIS.GetNext >LDA.G HIS.hBuf beq HISTORY.RTS - >SYSCALL GetMemPtr >STYA ZPPTR1 >LDA.G HIS.Count beq HISTORY.RTS empty history,nothing to do - >LDA.G HIS.Index inc >CMP.G HIS.Count @@ -116,51 +93,38 @@ HIS.GetNext >LDA.G HIS.hBuf lda #0 >STA.G HIS.Index jmp CL.CLR - .1 >STA.G HIS.Index *-------------------------------------- HIS.SetA jsr HIS.GetA tya jsr AddAPtr1 - jsr CL.CLR - ldy #$ff - .2 iny lda (ZPPTR1),y sta (ZPCLBuf),y bne .2 - tya >STA.G CL.Ptr >STA.G CL.Len - jmp CL.PrintCLBuf *-------------------------------------- HIS.GetA ldy #0 - tax beq .80 - lda (ZPPTR1),y beq .9 - .1 iny lda (ZPPTR1),y bne .1 - dex beq .8 - iny lda (ZPPTR1),y bne .1 - .9 sec Found ending 0.... rts - .8 iny .80 clc diff --git a/BIN/SH.S.IO.txt b/BIN/SH.S.IO.txt index 6b090e24..335fde10 100644 --- a/BIN/SH.S.IO.txt +++ b/BIN/SH.S.IO.txt @@ -11,7 +11,6 @@ IO.Load pha >PUSHWZ Aux type >PUSHBI S.FI.T.TXT >PUSHBI O.RDONLY - pla >SYSCALL LoadTxtFile rts @@ -19,7 +18,6 @@ IO.Load pha IO.Pipe.In >LDA.G IO.hOut ldy #S.PS.hStdOut sta (pPS),y - >STZ.G IO.hOut >LEA.G IO.FIFO @@ -40,18 +38,15 @@ IO.Set.RTS rts *-------------------------------------- IO.Reset.In >LDA.G IO.hIn beq .8 - pha ldy #S.PS.hStdIn lda (pPS),y >SYSCALL fclose - pla ldy #S.PS.hStdIn sta (pPS),y - >STZ.G IO.hIn .8 clc IO.Reset.In.RTS rts @@ -79,18 +74,14 @@ IO.Set.Out pha *-------------------------------------- IO.Reset.Out >LDA.G IO.hOut beq .8 - pha - ldy #S.PS.hStdOut lda (pPS),y >SYSCALL fclose - pla ldy #S.PS.hStdOut sta (pPS),y - >STZ.G IO.hOut .8 rts *-------------------------------------- @@ -106,17 +97,13 @@ IO.Set.Err pha *-------------------------------------- IO.Reset.Err >LDA.G IO.hErr beq .8 - pha - ldy #S.PS.hStdErr lda (pPS),y >SYSCALL fclose - pla ldy #S.PS.hStdErr sta (pPS),y - >STZ.G IO.hErr .8 rts *-------------------------------------- @@ -134,19 +121,15 @@ IO.FOpenYAX phy IO.PrintBatchErrMsg >LDYA ZPInputBuf >STYA ZPPtr1 - ldy #S.PS.RC lda (pPs),y cmp #E.SYN beq .10 - >LDYA ZPInputCmdPtr bra .11 - .10 >LDYA ZPInputBufPtr .11 >STYA ZPPtr2 - stz ZPTmpW Line Count stz ZPTmpW+1 @@ -162,7 +145,6 @@ IO.PrintBatchErrMsg cmp #C.CR bne .3 Scan until EoL - .4 tya clc adc ZPPtr1 @@ -175,7 +157,6 @@ IO.PrintBatchErrMsg sbc ZPPtr2+1 pla bcs .41 - inx bne .40 inc @@ -194,7 +175,6 @@ IO.PrintBatchErrMsg bne .5 sta (ZPCLBuf),y - .6 >PUSHW ZPCLBuf >PUSHBI 2 @@ -216,7 +196,6 @@ IO.PrintBatchErrMsg >PUSHW ZPCLBuf >PUSHBI 4 >PUSHW L.MSG.BATCHERR - .80 bra IO.PrintErr *-------------------------------------- IO.PrintErrMsg pha Save EC for PrintF @@ -238,20 +217,17 @@ IO.PrintErrMsg pha Save EC for PrintF sta ZPPTR1 lda L.ERR.Messages+1 sta ZPPTR1+1 - .3 dey bmi .8 lda (ZPPTR1) jsr AddAp1Ptr1 bra .3 - .8 >PUSHW ZPPTR1 pla >PUSHA >PUSHBI 3 >PUSHW L.MSG.ERROR - IO.PrintErr ldy #S.PS.hStdErr lda (pPS),y >SYSCALL fprintf diff --git a/BIN/SH.S.txt b/BIN/SH.S.txt index 79932352..e3c4fe57 100644 --- a/BIN/SH.S.txt +++ b/BIN/SH.S.txt @@ -90,7 +90,7 @@ ZPTmpW .BS 2 M32.ACC .BS 4 -ZS.END .ED +ZS.END .ED *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -206,7 +206,6 @@ CS.RUN jsr CL.Init lda #$ff >STA.G bExitOnEOF - lda #0 jsr CMD.SHIFTA Remove $0=/bin/sh @@ -216,7 +215,6 @@ CS.RUN jsr CL.Init jsr IO.Load bcs CS.INIT.RTS - phx ldy #S.PS.hARGV lda (pPS),y @@ -224,10 +222,8 @@ CS.RUN jsr CL.Init plx jsr CORE.Load.YAX Exec Batch file bcs CS.INIT.RTS - lda #$C0+C.. jsr CORE.StkPush - bra CS.RUN.LOOP *-------------------------------------- .1 jsr CMD.CD.HOME @@ -246,11 +242,9 @@ CS.RUN jsr CL.Init >LDYA L.HOME.PROFILE jsr CORE.Load.YAX Exec profile and continue - bcs CS.RUN.LOOP - lda #$C0+C.. - jsr CORE.StkPush + jsr CORE.StkPush *-------------------------------------- CS.RUN.LOOP >SLEEP @@ -261,30 +255,23 @@ CS.RUN.LOOP >SLEEP lda (pPS),y >SYSCALL feof bcs .9 - tay bne CS.RUN.LOOP - >SYSCALL GetChar bcs .9 I/O err - cmp #3 Ctrl-C bne .11 - lda (pData) batch mode ? beq CS.RUN.LOOP - >LDA.G bSET.C beq .8 - bra CS.RUN.LOOP - .11 cmp #19 test Ctrl-s bne CS.RUN.LOOP lda #$80 >STA.G bPause - bra CS.RUN.LOOP + bra CS.RUN.LOOP *-------------------------------------- .8 lda #3 User Interrupt sec @@ -292,33 +279,24 @@ CS.RUN.LOOP >SLEEP *-------------------------------------- .2 >LDA.G bPause bpl .6 - .3 >SYSCALL GetChar bcs .9 I/O err - cmp #3 Ctrl-C bne .4 - lda (pData) batch mode ? beq .5 - >LDA.G bSET.C beq .8 bra .5 - .4 tax - >LDA.G bPause asl $ff ? bpl .5 not from PAUSE command - cpx #C.CR bne .3 - .5 >STZ.G bPause *-------------------------------------- .6 lda (pData) batch mode ? - bne CS.RUN.BATCH *-------------------------------------- CS.RUN.INTERACTIVE @@ -327,14 +305,11 @@ CS.RUN.INTERACTIVE jsr CL.PrintPrompt bcs .9 - >STZ.G bREAD.S dec >STA.G READ.N - .1 >SYSCALL GetChar bcs .9 I/O error - .2 cmp #C.EOF ....or Ctrl-D beq .9 CS @@ -342,12 +317,10 @@ CS.RUN.INTERACTIVE >LDA.G CL.bReady Something to execute ? bpl .1 - >PUSHBI 0 >LDYA L.MSG.PROMPTCRLF >SYSCALL printf bcs .9 - lda (ZPCLBuf) beq .8 Empty line @@ -356,22 +329,17 @@ CS.RUN.INTERACTIVE >LDYA ZPCLBuf >SYSCALL strdup bcs .8 - phx - ldy #S.PS.hARGV lda (pPS),y >SYSCALL GetMemPtr Y,A =ARGV - plx jsr CORE.Load.YAX Exec CL bcs .9 - lda #$C0+C.CLEXEC jsr CORE.StkPush .6 jsr CORE.Run - .8 jmp CS.RUN.LOOP.END .9 rts @@ -380,17 +348,13 @@ CS.RUN.BATCH >LDA.G bSET.X beq .5 ldy #$ff - .3 iny lda (ZPInputBufPtr),y sta (ZPArgVBuf),y beq .4 - eor #C.CR bne .3 - sta (ZPArgVBuf),y - .4 >PUSHW ZPArgVBuf >PUSHBI 2 >LDYA L.MSG.TRACE @@ -398,10 +362,8 @@ CS.RUN.BATCH >LDA.G bSET.X bcs CS.RUN.LOOP.RTS .5 jsr CORE.Run - CS.RUN.LOOP.END ldy #S.PS.RC sta (pPs),y - bcc CS.RUN.LOOP.80 tay beq CS.RUN.LOOP.80 0 = EOF @@ -412,28 +374,22 @@ CS.RUN.LOOP.END ldy #S.PS.RC jsr CORE.StkGet cmp #$C0+C.CLEXEC beq .1 - jsr IO.PrintBatchErrMsg bcs CS.RUN.LOOP.RTS - .1 ldy #S.PS.RC lda (pPs),y - jsr IO.PrintErrMsg bcs CS.RUN.LOOP.RTS CS.RUN.LOOP.80 lda (pData) something on stack ? bne .8 - >LDA.G bExitOnEOF bmi CS.RUN.LOOP.EXIT .8 jmp CS.RUN.LOOP - CS.RUN.LOOP.EXIT ldy #S.PS.RC lda (pPs),y - sec CS.RUN.LOOP.RTS rts *-------------------------------------- @@ -444,11 +400,8 @@ CS.DOEVENT lda (pEvent) beq .9 * ldy #Sleep already set by CheckSleep - ldx #4 - clc - .1 lda (pData),y sbc #0 sta (pData),y @@ -481,17 +434,13 @@ RemoveStrFromArgV >STYA ZPPtr2 jsr GetPtr1LenY - .2 jsr AddYp1Ptr1 jsr StrCpyPtr1Ptr2 - tya beq .8 - jsr AddAp1Ptr2 bra .2 - .8 rts *-------------------------------------- GetPtr1Next lda (ZPPtr1) @@ -500,10 +449,9 @@ GetPtr1Next lda (ZPPtr1) IncPtr1 inc ZPPtr1 bne IncPtr1.8 inc ZPPtr1+1 -IncPtr1.8 rts +IncPtr1.8 rts *-------------------------------------- GetPtr1LenY ldy #$ff - .1 iny lda (ZPPtr1),y bne .1 @@ -527,7 +475,6 @@ AddAp1Ptr2 sec .8 rts *-------------------------------------- StrCpyPtr1Ptr2 ldy #$ff - .1 iny lda (ZPPtr1),y sta (ZPPtr2),y @@ -540,7 +487,6 @@ ToUpperCase cmp #'a' cmp #'z'+1 bcs .8 eor #$20 - .8 clc exit CC to allow Jmp to rts *-------------------------------------- diff --git a/BIN/TELNET.S.txt b/BIN/TELNET.S.txt index b03bc8ae..5f9eae6d 100644 --- a/BIN/TELNET.S.txt +++ b/BIN/TELNET.S.txt @@ -9,7 +9,7 @@ NEW .INB INC/A2OSX.I .INB INC/ETH.I .INB INC/LIBTCPIP.I - .INB INC/NET.TELNET.I + .INB INC/NET.TELNET.I *-------------------------------------- TIMEOUT.MAX .EQ 100 10 sec. BUFSIZE .EQ 256 @@ -68,30 +68,24 @@ CS.INIT >LDYA L.LIBTCPIP *-------------------------------------- CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ? >STYA ZPIPCfgPtr - lda (ZPIPCfgPtr) Configured ? bmi CS.RUN.IPOK - >LDYA L.MSG.IPKO >SYSCALL puts lda #E.SYN - sec + sec rts - CS.RUN.IPOK ldy #S.PS.ARGC lda (pPs),y cmp #1 bcc .9 - ldy #S.IPCFG.IP+3 ldx #3 - .1 lda (ZPIPCfgPtr),y sta SA.LOCAL+S.SOCKADDR.ADDR,x dey dex bpl .1 - lda #TIMEOUT.MAX sta TimeOut @@ -101,7 +95,6 @@ CS.RUN.IPOK ldy #S.PS.ARGC >PUSHYA >LIBCALL hLIBTCPIP,LIBTCPIP.HST.GETBYNAME bcc CS.RUN.HOSTOK - >SLEEP lda TimeOut bne .2 @@ -113,33 +106,27 @@ CS.RUN.IPOK ldy #S.PS.ARGC >LDYA L.MSG.UNKNOWN >SYSCALL printf bra .99 - .9 >LDYA L.MSG.USAGE >SYSCALL puts .99 lda #E.SYN - sec + sec rts CS.RUN.HOSTOK lda #2 >SYSCALL ArgV bcs CS.RUN.PORTOK - >SYSCALL atoi >STYA SA.REMOTE+S.SOCKADDR.PORT - CS.RUN.PORTOK lda #1 >SYSCALL ArgV >PUSHYA - >PUSHW SA.REMOTE+S.SOCKADDR.PORT ldx #3 - .1 >PUSHB SA.REMOTE+S.SOCKADDR.ADDR,x dex bpl .1 - >PUSHBI 8 >LDYA L.MSG.HOSTOK >SYSCALL printf @@ -155,22 +142,18 @@ CS.RUN.OPENSKT >PUSHBI 0 no protocol lda hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.Bind bcc .2 - .9 >LDYA L.MSG.SKTKO >SYSCALL puts lda #E.SYN - sec + sec rts - .2 >PUSHW L.SA.REMOTE lda hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.Connect bcs .9 - >PUSHBI 0 >LDYA L.MSG.SKTOK >SYSCALL printf - >LDYAI BUFSIZE >SYSCALL getmem bcs .9 @@ -182,7 +165,6 @@ CS.RUN.LOOP >SLEEP lda hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.EOF bcs .99 - tay bne .2 EOF, no char @@ -191,20 +173,17 @@ CS.RUN.LOOP >SLEEP lda hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.Read .99 bcs .9 - >PUSHYA len >PUSHW ZPBufPtr ldy #S.PS.hStdOut lda (pPs),y >SYSCALL fwrite bcs .11 - .2 ldy #S.PS.hStdIn lda (pPs),y >SYSCALL feof bcs .11 CS.RUN.IOERR - tay bne CS.RUN.LOOP EOF = true, no char from STDIN @@ -214,19 +193,16 @@ CS.RUN.LOOP >SLEEP lda (pPs),y >SYSCALL fread .11 bcs CS.RUN.IOERR - .3 >STYA ZPBufLen lda (ZPBufPtr) cmp #$14 Ctrl-T beq CS.RUN.USER - >PUSHW ZPBufLen >PUSHW ZPBufPtr lda hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.Write .9 bcs CS.RUN.SKTERR - jmp CS.RUN.LOOP *-------------------------------------- CS.RUN.SKTERR pha @@ -255,12 +231,9 @@ CS.RUN.USER >LDYA L.MSG.USER *-------------------------------------- CS.DOEVENT lda (pEvent) bpl .9 is it a TIMER event? - lda TimeOut beq .9 - dec TimeOut - .9 sec do not discard TIMER event rts *-------------------------------------- @@ -268,16 +241,12 @@ CS.QUIT lda hSocket beq .1 >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown - .1 lda hBuf beq .2 - >SYSCALL freemem - .2 lda hLIBTCPIP beq .8 >SYSCALL UnloadLib - .8 clc rts *-------------------------------------- diff --git a/BIN/UNPAK.S.txt b/BIN/UNPAK.S.txt index 22657bda..e8e37eda 100644 --- a/BIN/UNPAK.S.txt +++ b/BIN/UNPAK.S.txt @@ -41,7 +41,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -69,21 +69,17 @@ CS.RUN >LDYAI CHNK.SIZE lda #1 >SYSCALL Argv bcs .9 - jsr CS.RUN.OpenArc bcs .9 - >LDYAI 256 >SYSCALL getmem bcs .9 >STYA ZPFullPathPtr txa >STA.G hFullPath - lda #2 >SYSCALL Argv bcc .1 - ldy #S.PS.hCWD lda (pPS),y >SYSCALL getmemptr @@ -119,15 +115,12 @@ CS.RUN.SetupPath lda (ZPPtr1),y sta (ZPFullPathPtr),y bne .2 - dey lda #'/' cmp (ZPFullPathPtr),y beq .3 - iny sta (ZPFullPathPtr),y - .3 tya sec adc ZPFullPathPtr @@ -135,7 +128,6 @@ CS.RUN.SetupPath lda #0 adc ZPFullPathPtr+1 sta ZPRelPathPtr+1 - rts *-------------------------------------- CS.RUN.LOOP jsr CS.RUN.GetByte @@ -146,22 +138,17 @@ CS.RUN.LOOP jsr CS.RUN.GetByte jsr CS.RUN.GetFileName bcs .9 - ldx #0 jsr CS.RUN.PrintFN jsr CS.RUN.CheckDir bcs .99 - >LDYA L.MSG.OK >SYSCALL puts - bra CS.RUN.LOOP clc .99 rts - .9 jmp CS.RUN.E.IARC - .1 cmp #CHNK.T.FILE bne .9 @@ -173,16 +160,13 @@ CS.RUN.LOOP jsr CS.RUN.GetByte ldx #2 jsr CS.RUN.PrintFN - jsr CS.RUN.OpenFile bcs .9 *-------------------------------------- jsr CS.RUN.GetByte DATA bcs .8 eof - .2 cmp #CHNK.T.DATA bne .3 Could be a 0 byte file - .20 jsr CS.RUN.GetByte ALG bcs .9 cmp #0 STORE @@ -195,23 +179,17 @@ CS.RUN.LOOP jsr CS.RUN.GetByte jsr CS.RUN.GetByte ULEN HI bcs .9 sta ZPULen+1 - jsr CS.RUN.ReadData bcs .9 - jsr CS.RUN.WriteFile bcs .9 - jsr CS.RUN.GetByte bcs .8 - cmp #CHNK.T.DATA beq .20 - .3 pha jsr .8 pla - jmp .10 .8 >LDA.G hFile @@ -234,25 +212,20 @@ CS.RUN.OpenArc pha >SYSCALL FOpen bcs .9 >STA.G hArcFile - pha >PUSHWI 3 >PUSHW ZPInBufPtr pla >SYSCALL fread bcs .9 - cpy #3 bne .99 - dey - .1 lda MSG.PAK,y cmp (ZPInBufPtr),y bne .99 dey bpl .1 - clc .9 rts @@ -273,7 +246,6 @@ CS.RUN.GetFileType CS.RUN.GetFileName jsr CS.RUN.GetByte bcs .9 - tay lda #0 @@ -286,9 +258,8 @@ CS.RUN.GetFileName lda #0 sta (ZPRelPathPtr),y -* clc - -.9 rts +* clc +.9 rts *-------------------------------------- CS.RUN.ReadData >PUSHW ZPULen >PUSHW ZPInBufPtr @@ -309,14 +280,12 @@ CS.RUN.CheckDir >PUSHEA.G STAT >SYSCALL mkdir rts - .1 ldy #STAT+S.STAT.P.TYPE lda (pData),y cmp #$F bne .99 clc rts - .99 lda #MLI.E.INVPATH sec .9 rts @@ -342,27 +311,18 @@ CS.DOEVENT sec *-------------------------------------- CS.QUIT >LDA.G hFile beq .1 - >SYSCALL fclose - .1 >LDA.G hFullPath beq .2 - >SYSCALL FreeMem - .2 >LDA.G hOutBuf beq .3 - >SYSCALL FreeMem - .3 >LDA.G hInBuf beq .4 - >SYSCALL FreeMem - .4 >LDA.G hArcFile beq .8 - >SYSCALL fclose .8 clc diff --git a/BIN/USERADD.S.txt b/BIN/USERADD.S.txt index 1ed8fe05..610ec663 100644 --- a/BIN/USERADD.S.txt +++ b/BIN/USERADD.S.txt @@ -44,7 +44,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -70,7 +70,6 @@ J.CS.RUN.CheckArg CS.INIT >LDYA L.LIBCRYPT >SYSCALL LoadLib bcs .9 - sta hLIBCRYPT .9 rts @@ -83,46 +82,36 @@ CS.RUN >LDYAI S.PW bcs .99 >STYA ZPPWPtr stx ZPhPW - >LDYAI 256 >SYSCALL getmem bcs .99 >STYA ZPStrPtr stx ZPhStr - >PUSHW ZPPWPtr lda #0 >SYSCALL GetPWUID bcc .1 - jmp CS.RUN.ROOT - .1 ldy #S.PW - .2 dey lda PW.DEFAULT,y sta (pData),y tya bne .2 - jsr CS.RUN.CheckArg bcs .9 jsr CS.RUN.MkDir * bcs .99 - >LDYA pData >SYSCALL putpw bcs .99 - lda #0 sec rts - .9 >PUSHBI 0 >LDYA L.MSG.USAGE >SYSCALL printf - lda #E.SYN sec .99 rts @@ -144,43 +133,35 @@ CS.RUN.ROOT ldy #0 >LDYA L.MSG.ROOTPWD1 >SYSCALL printf bcs .90 - jsr CS.RUN.GetStr bcs .90 >PUSHEA.G PW+S.PW.PASSWD >PUSHW ZPStrPtr >LIBCALL hLIBCRYPT,LIBCRYPT.MD5 - >PUSHBI 0 >LDYA L.MSG.ROOTPWD2 >SYSCALL printf bcs .9 - jsr CS.RUN.GetStr .90 bcs .9 >PUSHW ZPStrPtr >PUSHW ZPStrPtr >LIBCALL hLIBCRYPT,LIBCRYPT.MD5 - >PUSHW ZPStrPtr >LEA.G PW+S.PW.PASSWD >SYSCALL strcmp bcs .99 - >LDYA pData >SYSCALL putpw bcs .9 - lda #0 sec .9 rts - .99 >PUSHBI 0 >LDYA L.MSG.MISMATCH >SYSCALL printf - lda #E.SYN sec rts @@ -189,21 +170,16 @@ CS.RUN.GetStr stz ZPStrLen .1 >SYSCALL getchar bcs .9 - cmp #C.SPACE bcc .2 - ldy ZPStrLen cpy ZPStrMax beq .1 - sta (ZPStrPtr),y iny sty ZPStrLen - bit ZPbStrSecret bmi .1 - >SYSCALL putchar bra .1 @@ -212,30 +188,23 @@ CS.RUN.GetStr stz ZPStrLen cmp #C.CR beq .8 - cmp #C.BS bne .1 - ldy ZPStrLen beq .1 dec ZPStrLen - bit ZPbStrSecret bmi .1 - >PUSHBI 0 >LDYA L.MSG.BS >SYSCALL printf bra .1 - .8 ldy ZPStrLen lda #0 sta (ZPStrPtr),y - >PUSHBI 0 >LDYA L.MSG.CRLF >SYSCALL printf - .9 rts *-------------------------------------- CS.RUN.CheckArg inc ArgIndex @@ -243,32 +212,25 @@ CS.RUN.CheckArg inc ArgIndex >SYSCALL ArgV bcs .8 >STYA ZPStrPtr - lda (ZPStrPtr) cmp #'-' bne .4 - ldy #1 lda (ZPStrPtr),y ldx OptionList - .2 cmp OptionList,x beq .3 dex bne .2 - lda #E.SYN sec rts - .3 txa and #$fe tax jmp (J.CS.RUN.CheckArg,x) - .4 lda ArgUsername bne CS.RUN.CheckArg.9 - lda pData clc adc #S.PW.DIR+11 @@ -276,9 +238,7 @@ CS.RUN.CheckArg inc ArgIndex lda pData+1 adc /S.PW.DIR+11 sta ZPTmpPtr+1 - ldy #0 - .5 lda (ZPStrPtr),y sta (pData),y sta (ZPTmpPtr),y @@ -287,7 +247,6 @@ CS.RUN.CheckArg inc ArgIndex cpy #16 bne .5 bra CS.RUN.CheckArg.9 - .6 lda #'/' sta (ZPTmpPtr),y @@ -298,21 +257,16 @@ CS.RUN.CheckArg inc ArgIndex >SYSCALL GetPWName bcc .9 - bra CS.RUN.CheckArg - .8 lda ArgUsername beq CS.RUN.CheckArg.9 - clc rts - .9 >PUSHBI 0 >LDYA L.MSG.DUP >SYSCALL printf - -CS.RUN.CheckArg.9 - lda #E.SYN +CS.RUN.CheckArg +.9 lda #E.SYN sec rts *-------------------------------------- @@ -352,7 +306,6 @@ CS.RUN.CheckArg.S >SYSCALL ArgV bcs CS.RUN.CheckArg.9 ldx #S.PW.SHELL - CS.RUN.CheckArg.Next >STYA ZPStrPtr * clc @@ -362,19 +315,15 @@ CS.RUN.CheckArg.Next lda pData+1 adc #0 sta ZPTmpPtr+1 - ldy #$ff - .1 iny lda (ZPStrPtr),y sta (ZPTmpPtr),y beq .8 cpy #64 bne .1 - lda #0 sta (ZPTmpPtr),y - .8 jmp CS.RUN.CheckArg *-------------------------------------- CS.RUN.MkDir >LEA.G S.PW.DIR @@ -393,19 +342,13 @@ CS.DOEVENT sec *-------------------------------------- CS.QUIT lda ZPhStr beq .1 - >SYSCALL freemem - .1 lda ZPhPW beq .2 - >SYSCALL freemem - .2 lda hLIBCRYPT beq .8 - >SYSCALL UnloadLib - .8 clc rts *-------------------------------------- diff --git a/BIN/USERDEL.S.txt b/BIN/USERDEL.S.txt index 5d084bae..ac8815a5 100644 --- a/BIN/USERDEL.S.txt +++ b/BIN/USERDEL.S.txt @@ -36,7 +36,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -60,26 +60,21 @@ CS.RUN >LDYAI S.PW bcs .99 >STYA ZPPWPtr stx ZPhPW - >LDYAI 256 >SYSCALL getmem bcs .99 >STYA ZPStrPtr stx ZPhStr - jsr CS.RUN.CheckArg bcs .99 - >PUSHW ZPPWPtr lda ArgUsername >SYSCALL ArgV >SYSCALL GetPWName bcs .99 - ldy #S.PW.PASSWD lda #0 sta (ZPPWPtr),y - >LDYA ZPPWPtr >SYSCALL putpw bcs .99 @@ -90,11 +85,9 @@ CS.RUN >LDYAI S.PW lda #0 sec rts - .9 >PUSHBI 0 >LDYA L.MSG.INV >SYSCALL printf - lda #E.IUSR sec rts @@ -108,43 +101,33 @@ CS.RUN.CheckArg inc ArgIndex >SYSCALL ArgV bcs .8 >STYA ZPStrPtr - lda (ZPStrPtr) cmp #'-' bne .4 - ldy #1 lda (ZPStrPtr),y ldx OptionList - .2 cmp OptionList,x beq .3 dex bne .2 - .9 >PUSHBI 0 >LDYA L.MSG.USAGE >SYSCALL printf - lda #E.SYN sec rts - .3 ldy OptionVars-1,x lda #$80 sta (pData),y bra CS.RUN.CheckArg - .4 lda ArgUsername bne .9 - lda ArgIndex sta ArgUsername bra CS.RUN.CheckArg - .8 lda ArgUsername beq .9 - clc rts *-------------------------------------- @@ -159,22 +142,18 @@ CS.RUN.RmDir >LDA.G bDelete adc /S.PW.DIR >SYSCALL remove rts - .1 >PUSHW L.CMD.RM >LDYA ZPStrPtr >SYSCALL strcpy - lda ZPPWPtr clc adc #S.PW.DIR tay lda ZPPWPtr+1 adc /S.PW.DIR - >LDYA ZPStrPtr >SYSCALL strcat - >PUSHBI S.PS.F.HOLD >LDYA ZPStrPtr >SYSCALL execl @@ -191,14 +170,10 @@ CS.DOEVENT sec *-------------------------------------- CS.QUIT lda ZPhStr beq .8 - >SYSCALL freemem - .1 lda ZPhPW beq .8 - >SYSCALL freemem - .8 clc rts *-------------------------------------- diff --git a/BIN/WC.S.txt b/BIN/WC.S.txt index d3049f86..def8a376 100644 --- a/BIN/WC.S.txt +++ b/BIN/WC.S.txt @@ -71,14 +71,11 @@ CS.RUN >INC.G ArgIndex >SYSCALL ArgV bcs .8 >STYA ZPPtr1 - lda (ZPPtr1) cmp #'-' bne .4 - jsr CS.RUN.CheckOpt bcc CS.RUN - .9 >PUSHBI 0 >LDYA L.MSG.USAGE >SYSCALL printf @@ -88,15 +85,12 @@ CS.RUN >INC.G ArgIndex *-------------------------------------- .4 >LDA.G hSrcBasePath bne .9 - >LDYA ZPPtr1 jsr InitSrcDirYA bcc CS.RUN rts - .8 >LDA.G hSrcBasePath beq .9 - >LDYAI 256 >SYSCALL getmem bcs .99 @@ -107,13 +101,10 @@ CS.RUN >INC.G ArgIndex >LDA.G hSrcBasePath >SYSCALL GetMemPtr >STYA ZPPtr1 - ldy #$ff - .80 iny lda (ZPPtr1),y bne .80 - tya clc adc ZPFullPath @@ -127,22 +118,18 @@ CS.RUN >INC.G ArgIndex bcs .99 >STYA ZPLineBuf txa - >STA.G hMem + >STA.G hMem *-------------------------------------- CS.RUN.LOOP ldy #S.PS.hStdIn lda (pPS),y >SYSCALL feof bcs .99 - tay bne .10 - >SYSCALL GetChar bcs .99 - cmp #$03 Ctrl-C beq .99 Abort.... - cmp #$13 Ctrl-S bne .10 @@ -150,21 +137,17 @@ CS.RUN.LOOP ldy #S.PS.hStdIn eor #$ff sta bPause bne CS.RUN.LOOP - .10 lda bPause bne CS.RUN.LOOP Pause... jsr GetEntry bcs .9 - ldy #S.STAT.P.DRIVE lda (ZPFileStat),y ProDOS Device ? beq .5 - jsr CS.RUN.DEV bcc CS.RUN.LOOP rts - .5 ldy #S.STAT.P.TYPE lda (ZPFileStat),y cmp #$0F Directory ? @@ -173,7 +156,6 @@ CS.RUN.LOOP ldy #S.PS.hStdIn jsr CS.RUN.DIR bcs .99 bra .8 - .6 jsr CS.RUN.FILE bcs .99 bra .8 @@ -182,41 +164,33 @@ CS.RUN.LOOP ldy #S.PS.hStdIn bcs .90 jsr BasePath.. - .8 jsr GetNextEntry jmp CS.RUN.LOOP - .90 jsr CS.RUN.PrintTstat - lda #0 sec .99 rts *-------------------------------------- CS.RUN.DIR lda bRecurse bpl .8 - lda (ZPFileName) cmp #'.' beq .8 - >LDYA ZPFileName jsr EnterSubDirYA - jmp CS.RUN.CheckErr - .8 clc rts *-------------------------------------- CS.RUN.DEV .8 jsr GetNextEntry - clc + clc .9 rts *-------------------------------------- CS.RUN.FILE jsr FilterMatch bcs .8 no match, skip.... jsr CS.RUN.GetFilePath - jsr CS.RUN.OpenFile bcs .9 @@ -225,51 +199,39 @@ CS.RUN.FILE jsr FilterMatch >LDA.G hFile >SYSCALL fgets bcs .6 - jsr CS.RUN.IncFLine - ldy #$ff stz bInWord - .2 iny lda (ZPLineBuf),y beq .1 cmp #C.SPACE beq .3 - cmp #C.TAB bne .4 - .3 lda bInWord beq .5 jsr CS.RUN.IncFWord stz bInWord bra .5 - -.4 inc bInWord +.4 inc bInWord .5 jsr CS.RUN.IncFChar bra .2 - .6 cmp #MLI.E.EOF bne .7 - jsr CS.RUN.CloseFile jsr CS.RUN.PrintFstat bcs .99 - jsr CS.RUN.AddFstat2Tstat lda bTotal bmi .8 beq .61 - lda #$fe - .61 inc sta bTotal - .8 clc rts @@ -285,9 +247,7 @@ CS.RUN.CheckErr bcc .9 >PUSHA >PUSHBI 1 >LDYA L.MSG.ERR - >SYSCALL printf - lda bContinue eor #$80 asl @@ -298,11 +258,8 @@ CS.RUN.GetFilePath >LDA.G hSrcBasePath >SYSCALL GetMemPtr >PUSHYA - >LDYA ZPFullPath - >SYSCALL StrCpy - >PUSHW ZPFileName >LDYA ZPFullPath >SYSCALL StrCat @@ -311,12 +268,10 @@ CS.RUN.GetFilePath CS.RUN.OpenFile ldx #12 ldy #fCharCount lda #0 - .1 sta (pData),y iny dex bne .1 - >PUSHWZ Aux type >PUSHBI 0 Type >PUSHBI O.RDONLY+O.TEXT @@ -324,7 +279,6 @@ CS.RUN.OpenFile ldx #12 >SYSCALL FOpen bcs .9 - >STA.G hFile .9 rts @@ -333,7 +287,6 @@ CS.RUN.CloseFile >LDA.G hFile >SYSCALL fclose bcs .9 - >STZ.G hFile .9 rts *-------------------------------------- @@ -348,7 +301,6 @@ CS.RUN.IncFLine phy CS.RUN.IncFWord phy ldy #fWordCount ldx #4 - CS.RUN.IncF lda (pData),y inc sta (pData),y @@ -356,16 +308,14 @@ CS.RUN.IncF lda (pData),y iny dex bne CS.RUN.IncF - .8 ply - rts + rts *-------------------------------------- CS.RUN.AddFstat2Tstat >PUSHL.G fWordCount >PUSHL.G tWordCount >FPU ADD32 >PULLL.G tWordCount - >PUSHL.G fLineCount >PUSHL.G tLineCount >FPU ADD32 @@ -389,7 +339,6 @@ CS.RUN.PrintFstat *-------------------------------------- CS.RUN.PrintTstat lda bTotal - bpl .8 >PUSHL.G tWordCount >PUSHL.G tLineCount @@ -404,19 +353,15 @@ CS.DOEVENT sec *-------------------------------------- CS.QUIT jsr LeaveSubDir bcc CS.QUIT - >LDA.G hFilter beq .1 >SYSCALL FreeMem - .1 >LDA.G hSrcFullPath beq .2 >SYSCALL FreeMem - .2 >LDA.G hMem beq .8 >SYSCALL FreeMem - .8 clc rts *-------------------------------------- @@ -432,7 +377,6 @@ CS.RUN.CheckOpt ldy #1 sec rts - .3 ldy OptionVars,x lda #$ff sta 0,y diff --git a/BIN/WHO.S.txt b/BIN/WHO.S.txt index 24ebb96d..c39224da 100644 --- a/BIN/WHO.S.txt +++ b/BIN/WHO.S.txt @@ -32,7 +32,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.EVENT @@ -49,22 +49,17 @@ CS.RUN >LDYA L.MSG0 ldx #1 stx USRID - .1 lda S.Table.hSession-1,x beq .7 - lda S.Table.hFile-1,x tax - jsr CS.RUN.GETIO - >PUSHYA ldx USRID lda S.Table.hSession-1,x >SYSCALL GetMemPtr >STYA ZPSessionPtr - lda ZPSessionPtr clc adc #S.SESSION.NAME @@ -72,30 +67,23 @@ CS.RUN >LDYA L.MSG0 lda ZPSessionPtr+1 adc /S.SESSION.NAME >PUSHYA - >PUSHB (ZPSessionPtr) - ldy #S.SESSION.UID >PUSHB (ZPSessionPtr),y - >PUSHB USRID - >PUSHBI 7 >LDYA L.MSG1 >SYSCALL printf - .7 inc USRID ldx USRID cpx #K.USR.MAX+1 bne .1 - .8 lda #0 tell TSKMGR that all done ok, but sec we do not want to stay in memory .9 rts *-------------------------------------- CS.RUN.GETIO lda OF.Table.hPath-1,x bne .1 - lda OF.Table.hFD-1,x tax @@ -109,7 +97,6 @@ CS.RUN.GETIO lda OF.Table.hPath-1,x adc /S.FD.DEV rts - .1 >SYSCALL GetMemPtr rts *-------------------------------------- diff --git a/BIN/X.CPMVRM.G.txt b/BIN/X.CPMVRM.G.txt index e285138d..d7b56e1f 100644 --- a/BIN/X.CPMVRM.G.txt +++ b/BIN/X.CPMVRM.G.txt @@ -11,7 +11,6 @@ Count .BS 2 RC .BS 1 .DO X.COPY.TO.DEST=1 - hDstFileName .BS 1 hDstFullPath .BS 1 hDstFile .BS 1 @@ -20,9 +19,7 @@ hCopyBuf .BS 1 CopyRC .BS 1 .FIN - .DO X.DELETE.SOURCE=1 - hToDelete .BS 1 .FIN diff --git a/BIN/X.CPMVRM.S.txt b/BIN/X.CPMVRM.S.txt index 511e21fa..3d75df47 100644 --- a/BIN/X.CPMVRM.S.txt +++ b/BIN/X.CPMVRM.S.txt @@ -23,7 +23,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -40,21 +40,18 @@ L.MSG.DONE .DA MSG.DONE L.STAT .DA STAT .DA 0 *-------------------------------------- -CS.INIT +CS.INIT .1 >INC.G ArgCount >SYSCALL ArgV bcs .7 >STYA ZPPtr1 - lda (ZPPtr1) cmp #'-' bne .4 - ldy #1 lda (ZPPtr1),y ldx OptionList - .2 cmp OptionList,x beq .3 dex @@ -66,12 +63,10 @@ CS.INIT lda #E.SYN sec rts - .3 ldy OptionVars-1,x lda #$80 sta (pData),y bra .1 - .4 >LDA.G index .DO X.COPY.TO.DEST=1 @@ -86,24 +81,20 @@ CS.INIT .9 rts .DO X.COPY.TO.DEST=1 - -.5 >LDA.G hDstBasePath +.5 >LDA.G hDstBasePath bne .99 we already have a second arg....error! - >LDYA ZPPtr1 jsr InitDstDirYA bcc .1 success, scan for any other args rts - .FIN .7 >LDA.G index processed all args beq .99 , no src ? ERROR .DO X.COPY.TO.DEST=1 - >LDA.G hDstBasePath + >LDA.G hDstBasePath bne .8 we also have a Dst folder - ldy #S.PS.hCWD no dst folder, use actual prefix lda (pPs),y >SYSCALL GetMemPtr @@ -117,7 +108,6 @@ CS.INIT txa >STA.G hSrcFullPath sta (pData),y - .DO X.COPY.TO.DEST=1 >LDYAI 256 >SYSCALL getmem @@ -126,7 +116,6 @@ CS.INIT >STA.G hDstFullPath .FIN - clc CS.INIT.RTS rts *-------------------------------------- @@ -134,18 +123,14 @@ CS.RUN ldy #S.PS.hStdIn lda (pPS),y >SYSCALL feof bcs CS.INIT.RTS I/O error - tay bne .15 - >SYSCALL GetChar bcs CS.INIT.RTS I/O error - cmp #$03 Ctrl-C bne .10 sec rts Abort.... - .10 cmp #$13 Ctrl-S bne .15 @@ -153,7 +138,6 @@ CS.RUN ldy #S.PS.hStdIn lda (pData),y eor #$ff sta (pData),y - .15 ldy #bPause lda (pData),y bpl .1 @@ -165,24 +149,19 @@ CS.RUN ldy #S.PS.hStdIn ldy #bCopy lda (pData),y beq .2 - jsr CS.RUN.Copy - ldy #bCopy Copy completed ? lda (pData),y bne .8 no.....exit - clc ldy #CopyRC lda (pData),y .DO X.DELETE.SOURCE=0 beq .20 no copy error - sec jsr CS.RUN.CheckErr we have an error.... bcs .9 jmp CS.RUN.NEXT - .20 jsr CS.RUN.CheckErr Success!! jsr CS.RUN.IncCount jmp CS.RUN.NEXT @@ -202,19 +181,16 @@ CS.RUN ldy #S.PS.hStdIn ldy #hToDelete lda (pData),y beq .3 - lda #0 sta (pData),y ldy #hSrcFullPath jsr CS.RUN.GetPathY - >SYSCALL remove bcs .22 jsr CS.RUN.CheckErr Success!!! jsr CS.RUN.IncCount jmp CS.RUN.NEXT - .22 jsr CS.RUN.CheckErr bcs .9 jmp CS.RUN.NEXT @@ -222,14 +198,11 @@ CS.RUN ldy #S.PS.hStdIn *-------------------------------------- .3 jsr GetEntry bcs CS.RUN.LEAVE - jsr FilterMatch bcs CS.RUN.NEXT no match, skip.... - .4 ldy #S.STAT.P.DRIVE lda (ZPFileStat),y ProDOS Device ? bne .6 - ldy #S.STAT.P.TYPE lda (ZPFileStat),y cmp #$0F Directory ? @@ -237,17 +210,14 @@ CS.RUN ldy #S.PS.hStdIn >LDA.G bRecurse bpl CS.RUN.NEXT - lda (ZPFileName) cmp #'.' beq CS.RUN.NEXT Skip "." & ".." jsr CS.RUN.BuildFilePath jmp CS.RUN.DIR - .5 jsr CS.RUN.BuildFilePath jmp CS.RUN.FILE - .6 lda #MLI.E.UNSUPST sec .9 rts @@ -260,15 +230,12 @@ CS.RUN.NEXT jsr GetNextEntry CS.RUN.LEAVE jsr LeaveSubDir exit this sub dir.... bcs .99 base, we are done, exit jsr BasePath.. - .DO X.DELETE.SOURCE=1 * .DO X.COPY.TO.DEST=0 jsr GetEntry bcs * - jsr CS.RUN.BuildFilePath - jsr CS.RUN.DIR.MSG bcs CS.RUN.LEAVE.RTS @@ -286,16 +253,13 @@ CS.RUN.LEAVE jsr LeaveSubDir exit this sub dir.... .99 ldy #bQuiet lda (pData),y bmi .91 - ldy #Count+1 >PUSHB (pData),y dey >PUSHB (pData),y - >PUSHBI 2 >LDYA L.MSG.DONE >SYSCALL printf - .91 ldy #RC lda (pData),y get global RC in case of bContinue sec @@ -313,47 +277,34 @@ CS.RUN.DIR .DO X.COPY.TO.DEST=1 >SYSCALL Stat bcs .3 File Not exists...go create - ldy #bNoConfirm lda (pData),y bmi .21 no prompt, nothing to create, enter subdir - jsr CS.RUN.OVERWRITE.MSG bcs CS.RUN.DIR.RTS - .1 >SLEEP >SYSCALL GetChar bcs .1 cmp #3 beq .99 abort - cmp #'N' bne .2 - jmp CS.RUN.CR.NEXT no overwrite, nothing to do, no recurse - .2 cmp #'Y' beq .21 no create, but recurse - cmp #'A' bne .1 - ldy #bNoConfirm lda #$ff sta (pData),y - .21 clc lda #0 bra .4 - .3 ldy #hDstFullPath jsr CS.RUN.GetPathY - >SYSCALL mkdir - .4 jsr CS.RUN.CheckErr bcs CS.RUN.DIR.RTS - jsr CS.RUN.IncCount .FIN @@ -369,46 +320,34 @@ CS.RUN.FILE jsr CS.RUN.FILE.MSG bcs CS.RUN.DIR.RTS .DO X.COPY.TO.DEST=1 - >PUSHW L.STAT - ldy #hDstFullPath jsr CS.RUN.GetPathY >SYSCALL Stat bcs .2 File Not exists...go create - ldy #bNoConfirm lda (pData),y bmi .2 no prompt, ovverwrite - jsr CS.RUN.OVERWRITE.MSG bcs .9 - .1 >SLEEP >SYSCALL GetChar bcs .1 cmp #3 beq .99 abort - cmp #'N' bne .11 - jmp CS.RUN.CR.NEXT no overwrite exit .90 rts - .11 cmp #'Y' beq .12 copy - cmp #'A' bne .1 - ldy #bNoConfirm lda #$ff sta (pData),y - .12 jsr GetEntry get back current entry corrupted by SLEEP - .2 .DO X.DELETE.SOURCE=1 mv file, check if srcbase=dstbase ldy #hSrcBasePath jsr CS.RUN.GetPathY @@ -419,13 +358,11 @@ CS.RUN.FILE jsr CS.RUN.FILE.MSG >SYSCALL StrCaseCmp bcs .3 not same dir, go copy/delete - jsr CS.RUN.Rename jsr CS.RUN.CheckErr bcs .9 jmp CS.RUN.NEXT .FIN - .3 jsr CS.RUN.CopyStart bcc .4 jsr CS.RUN.CheckErr @@ -440,7 +377,6 @@ CS.RUN.FILE jsr CS.RUN.FILE.MSG ldy #hToDelete sta (pData),y .FIN - clc .9 rts @@ -456,15 +392,11 @@ CS.RUN.FILE.MSG clc >LDA.G bQuiet bmi .8 php - .DO X.COPY.TO.DEST=1 - ldy #hDstFullPath jsr CS.RUN.GetPathY >PUSHYA - .FIN - ldy #hSrcFullPath jsr CS.RUN.GetPathY >PUSHYA @@ -472,30 +404,24 @@ CS.RUN.FILE.MSG clc .DO X.COPY.TO.DEST=1 >PUSHBI 4 - .ELSE - >PUSHBI 2 .FIN - plp bcc .1 >LDYA L.MSG.DIR bcs .2 -.1 >LDYA L.MSG.FILE +.1 >LDYA L.MSG.FILE .2 >SYSCALL printf rts - .8 clc rts *-------------------------------------- .DO X.COPY.TO.DEST=1 - CS.RUN.OVERWRITE.MSG >LDA.G bQuiet bmi .1 - jsr CS.RUN.CR .1 ldy #hDstFullPath @@ -505,11 +431,9 @@ CS.RUN.OVERWRITE.MSG >LDYA L.MSG.OVERWRITE >SYSCALL printf rts - CS.RUN.OVERWRITE.KEY rts - .FIN *-------------------------------------- CS.RUN.CR lda #13 @@ -525,13 +449,11 @@ CS.RUN.Rename ldy #hDstFullPath jsr CS.RUN.GetPathY >PUSHYA - ldy #hSrcFullPath jsr CS.RUN.GetPathY >SYSCALL Rename bcs .9 - jsr CS.RUN.IncCount .9 rts .FIN @@ -546,16 +468,13 @@ CS.RUN.CopyStart bcs .99 >STA.G hSrcFile - ldy #hDstFullPath lda #O.WRONLY+O.CREATE - jsr CS.RUN.Open bcs .9 ldy #hDstFile sta (pData),y - ldy #bCopy lda #$ff sta (pData),y @@ -564,28 +483,23 @@ CS.RUN.CopyStart sta (pData),y clc rts - .9 pha >LDA.G hSrcFile >SYSCALL fclose pla - .99 ldy #CopyRC sta (pData),y - sec rts *-------------------------------------- CS.RUN.Open phy Save Filename pha Save open mode - ldy #S.STAT.P.AUXTYPE+1 >PUSHB (ZPFileStat),y dey >PUSHB (ZPFileStat),y ldy #S.STAT.P.TYPE >PUSHB (ZPFileStat),y - pla >PUSHA @@ -602,7 +516,6 @@ CS.RUN.Copy >STZ.G hCopyBuf >STYA ZPPtr1 txa >STA.G hCopyBuf - >PUSHWI X.COPY.BUF.SIZE Bytes To Read >PUSHW ZPPtr1 Dst Ptr >LDA.G hSrcFile @@ -612,16 +525,13 @@ CS.RUN.Copy >STZ.G hCopyBuf bne .9 lda #0 bra .9 - .1 >PUSHYA Bytes To Write >PUSHW ZPPtr1 Src Ptr >LDA.G hDstFile >SYSCALL FWrite bcs .9 - >LDA.G hCopyBuf >SYSCALL FreeMem - ldy #bQuiet lda (pData),y bmi .8 @@ -632,10 +542,8 @@ CS.RUN.Copy >STZ.G hCopyBuf .8 clc rts - .9 ldy #CopyRC sta (pData),y - >LDA.G hCopyBuf beq CS.RUN.CopyEnd >SYSCALL FreeMem @@ -652,21 +560,16 @@ CS.RUN.CopyEnd >LDA.G hSrcFile .FIN *-------------------------------------- CS.RUN.CheckErr bcs .1 - >LDA.G bQuiet bmi .8 - >LDYA L.MSG.OK >SYSCALL puts .8 rts - .1 pha >PUSHA >PUSHBI 1 >LDYA L.MSG.ERR - >SYSCALL printf - >LDA.G bContinue eor #$80 asl @@ -677,7 +580,6 @@ CS.RUN.BuildFilePath ldy #hSrcBasePath jsr CS.RUN.GetPathY >PUSHYA - ldy #hSrcFullPath jsr CS.RUN.GetPathY >STYA ZPPtr1 @@ -687,13 +589,10 @@ CS.RUN.BuildFilePath >PUSHW ZPFileName >LDYA ZPPtr1 >SYSCALL StrCat - .DO X.COPY.TO.DEST=1 - ldy #hDstBasePath jsr CS.RUN.GetPathY >PUSHYA - ldy #hDstFullPath jsr CS.RUN.GetPathY >STYA ZPPtr1 @@ -703,11 +602,9 @@ CS.RUN.BuildFilePath ldy #hDstFileName lda (pData),y beq .1 - >SYSCALL GetMemPtr >PUSHYA bra .2 - .1 >PUSHW ZPFileName .2 >LDYA ZPPtr1 @@ -730,22 +627,17 @@ CS.QUIT jsr LeaveSubDir .DO X.COPY.TO.DEST=1 >LDA.G bCopy bpl .1 - >LDA.G hSrcFile >SYSCALL fclose - >LDA.G hDstFile >SYSCALL fclose - .1 ldy #hDstFullPath jsr .7 - ldy #hDstFilename jsr .7 .FIN ldy #hSrcFullPath jsr .7 - ldy #hFilter .7 lda (pData),y diff --git a/BIN/X.FILEENUM.S.txt b/BIN/X.FILEENUM.S.txt index d3ccb661..e8a78fb2 100644 --- a/BIN/X.FILEENUM.S.txt +++ b/BIN/X.FILEENUM.S.txt @@ -20,34 +20,27 @@ X.MAX.RECURSE .EQ 8 FilterMatch >LDA.G index dec bne .8 in a subdir, match everything - >LDA.G hFilter beq .8 No filter.... - >SYSCALL GetMemPtr >STYA ZPPtr2 - ldy #S.STAT.FSID lda (ZPFileStat),y bne .10 not prodos... - >LDYA ZPPtr2 CI compare >SYSCALL strupr .10 lda (ZPPtr2) Get pattern 1st byte beq .8 Match always if empty - ldy #0 bra .21 - .1 inc ZPPtr2 Make PTR2 (pattern) advance to next char bne .2 inc ZPPtr2+1 .2 lda (ZPPtr2) get pattern char beq .41 end of pattern... - .21 cmp #'*' beq .5 @@ -60,11 +53,9 @@ FilterMatch >LDA.G index cmp (ZPFileName),y Regular Char, compare with string at Y bne .9 no match, exit -.4 iny advance to next char to compare - bra .1 continue if remaining char in pattern +.4 iny advance to next char to compare bra .1 continue if remaining char in pattern .41 lda (ZPFileName),y end of pattern, but end of string ? - beq .8 yes, string matched entirely * no, remaining char in string, no match .9 sec @@ -73,7 +64,6 @@ FilterMatch >LDA.G index .5 inc ZPPtr2 Make PTR2 advance to next char bne .6 inc ZPPtr2+1 - .6 lda (ZPPtr2) we have '*', last char of pattern ? beq .8 yes, match everything, including empty string @@ -100,7 +90,6 @@ FilterMatch >LDA.G index InitSrcDirYA >SYSCALL RealPath bcc .10 rts - .10 >STYA ZPPtr1 txa >STA.G hFullPath @@ -118,49 +107,36 @@ InitSrcDirYA >SYSCALL RealPath >LDA.G STAT+S.STAT.P.TYPE cmp #S.FI.T.DIR bne .4 TYPE not a DIR, extract.... - bra .5 TYPE=DIR, do not extract pattern - .ELSE + bra .5 TYPE=DIR, do not extract pattern .ELSE bra .4 .FIN - .1 ldy #0 TYPE is not DIR, check if wc - .11 iny lda (ZPPtr1),y Get Src Path Len bne .11 - dey - ldx #0 Init Wildcard count - .2 lda (ZPPtr1),y search backward for a / cmp #'/' beq .3 - cmp #'?' Test if some wildcard chars.... beq .21 cmp #'*' bne .22 - .21 inx inc wildcard count .22 dey bne .2 - .3 txa beq .91 no wc, file not found.... - .4 ldy #0 .41 iny Search end of string..... lda (ZPPtr1),y bne .41 - lda #'/' - .42 dey cmp (ZPPtr1),y Search backward / bne .42 - tya sec +1 to skip '/' adc ZPPtr1 @@ -169,7 +145,6 @@ InitSrcDirYA >SYSCALL RealPath lda ZPPtr1+1 adc #0 sta ZPPtr2+1 - >SYSCALL strdup bcs .9 txa @@ -177,22 +152,18 @@ InitSrcDirYA >SYSCALL RealPath lda #0 sta (ZPPtr2) - .5 >LDYAI 256 >SYSCALL GetMem Get a 256 buffer to store BasePath bcs .9 - >STYA ZPPtr2 txa >STA.G hSrcBasePath ldy #$ff - .6 iny lda (ZPPtr1),y sta (ZPPtr2),y bne .6 - dey lda #'/' cmp (ZPPtr2),y @@ -203,24 +174,17 @@ InitSrcDirYA >SYSCALL RealPath iny lda #0 sta (ZPPtr2),y - .7 >LDYA ZPPtr2 >SYSCALL OpenDir - bcs .9 - ldy #hDIRs sta (pData),y set hDIRs[0] = Src Hdir - ldy #index lda #1 sta (pData),y index=hDIRs[0] - jsr .9 Cleanup - clc rts - .91 lda #MLI.E.FNOTFND .9 pha @@ -232,35 +196,28 @@ InitSrcDirYA.RTS rts *-------------------------------------- .DO X.COPY.TO.DEST=1 - InitDstDirYA >SYSCALL RealPath bcs InitSrcDirYA.RTS >STYA ZPPtr1 txa >STA.G hFullPath - >PUSHEA.G STAT >LDYA ZPPtr1 >SYSCALL Stat bcs .1 File/DIR does not exists, go extract DstFileName - >LDA.G STAT+S.STAT.P.TYPE cmp #S.FI.T.DIR beq .5 Dst is a directory...no destfilename - .1 ldy #0 .11 iny Search end of string..... lda (ZPPtr1),y bne .11 - lda #'/' - .2 dey cmp (ZPPtr1),y Search backward / bne .2 - tya sec +1 to skip '/' adc ZPPtr1 @@ -276,29 +233,23 @@ InitDstDirYA >SYSCALL RealPath >STA.G hDstFileName lda #0 - sta (ZPPtr2) - + sta (ZPPtr2) .5 >LDYAI 256 >SYSCALL GetMem Get a 256 buffer to store DstBasePath bcs .9 - >STYA ZPPtr2 txa >STA.G hDstBasePath - ldy #$ff - .6 iny lda (ZPPtr1),y sta (ZPPtr2),y bne .6 - dey lda #'/' cmp (ZPPtr2),y beq .7 - iny sta (ZPPtr2),y iny @@ -316,33 +267,27 @@ InitDstDirYA >SYSCALL RealPath pla sec rts - .FIN *-------------------------------------- GetNextEntry jsr GetEntry bcs .9 - jsr GetFilenameLen Save actual file len for setting up pha new offset later - lda ZPFileStat clc adc #S.STAT sta ZPFileName - lda ZPFileStat+1 adc /S.STAT sta ZPFileName+1 Make nDIRENTs[i] point to next DIRENT jsr GetFilenameLen are we at end of this buffer ? beq .1 yes, go read next one ... - jsr SetFileStatPtr jsr GetoDIRENT pla Get back previous file len - sec adc (pData),y sta (pData),y @@ -351,9 +296,7 @@ GetNextEntry jsr GetEntry lda #0 adc (pData),y sta (pData),y - dey - lda #S.STAT clc adc (pData),y @@ -365,16 +308,13 @@ GetNextEntry jsr GetEntry sta (pData),y clc rts - .1 pla jsr GetEntry.ReadDir bcs .9 - jsr GetFilenameLen beq GetNextEntry.99 jsr SetFileStatPtr - clc .9 rts @@ -383,7 +323,6 @@ GetNextEntry.99 sec *-------------------------------------- GetEntry jsr GethDIRENT bne .1 we have a buffer to scan - jsr GetEntry.ReadDir First run, get first block bcs .9 ZPFileName = start of buffer @@ -395,19 +334,15 @@ GetEntry jsr GethDIRENT .1 >SYSCALL GetMemPtr >STYA ZPFileName - jsr GetoDIRENT - lda ZPFileName clc adc (pData),y sta ZPFileName - iny lda ZPFileName+1 adc (pData),y sta ZPFileName+1 ZPFileName=ZPFileName+oDIRENT - .8 jsr GetFilenameLen jsr SetFileStatPtr @@ -429,7 +364,6 @@ GetEntry.ReadDir >SYSCALL ReadDir bcs .9 >STYA ZPFileName - ldy #index lda (pData),y clc @@ -437,9 +371,7 @@ GetEntry.ReadDir tay txa get hDIRENT in A sta (pData),y - jsr GetoDIRENT - lda #0 and reset offset for this buffer sta (pData),y iny @@ -455,13 +387,11 @@ EnterSubDirYA >STYA ZPPtr2 save SUBDIR for StrCat ldy #hSrcBasePath jsr EnterSubDirY - >LDYA ZPPtr1 >SYSCALL OpenDir bcs .9 pha - >INC.G index tax * clc from BCS @@ -469,38 +399,31 @@ EnterSubDirYA >STYA ZPPtr2 save SUBDIR for StrCat tay pla sta (pData),y - txa make sure hDIRENTs[i] is closed adc #hDIRENTs-1 tay lda #0 sta (pData),y - .DO X.COPY.TO.DEST=1 ldy #hDstBasePath jsr EnterSubDirY .FIN - clc .9 rts EnterSubDirY lda (pData),y >SYSCALL GetMemPtr - >STYA ZPPtr1 save full path jsr .1 Make sure ending with / - >PUSHW ZPPtr2 >LDYA ZPPtr1 >SYSCALL StrCat .1 ldy #0 - .2 iny lda (ZPPtr1),y bne .2 - dey lda #'/' cmp (ZPPtr1),y @@ -510,15 +433,12 @@ EnterSubDirY lda (pData),y iny lda #0 sta (ZPPtr1),y - .8 rts *-------------------------------------- LeaveSubDir >LDA.G index beq .9 - jsr GethDIRENT.A beq .1 - pha lda #0 sta (pData),y @@ -526,7 +446,6 @@ LeaveSubDir >LDA.G index >SYSCALL FreeMem .1 jsr GethDIR - pha lda #0 sta (pData),y @@ -535,7 +454,6 @@ LeaveSubDir >LDA.G index >DEC.G index bne .8 - ldy #hSrcBasePath lda (pData),y >SYSCALL FreeMem @@ -545,10 +463,8 @@ LeaveSubDir >LDA.G index lda (pData),y >SYSCALL FreeMem .FIN - .9 sec rts - .8 clc rts *-------------------------------------- @@ -556,31 +472,21 @@ BasePath.. .DO X.COPY.TO.DEST=1 ldy #hDstBasePath jsr BasePath..1 - .FIN - ldy #hSrcBasePath - BasePath..1 lda (pData),y >SYSCALL GetMemPtr - >STYA ZPPtr1 save full path - ldy #$ff - -.1 iny +.1 iny lda (ZPPtr1),y get len bne .1 - dey discard ending / - .2 dey lda (ZPPtr1),y cmp #'/' bne .2 - iny - lda #0 sta (ZPPtr1),y cut DIR2/ from /dir1/DIR2/ @@ -591,9 +497,7 @@ GetFilenameLen ldy #$ff .1 iny lda (ZPFileName),y bne .1 - tya - rts *-------------------------------------- SetFileStatPtr sec @@ -611,7 +515,7 @@ GethDIR ldy #index tay lda (pData),y rts -*-------------------------------------- +*-------------------------------------- GethDIRENT ldy #index lda (pData),y GethDIRENT.A clc diff --git a/DRV/DHGR.DRV.G.txt b/DRV/DHGR.DRV.G.txt index 5a3669a8..6898884e 100644 --- a/DRV/DHGR.DRV.G.txt +++ b/DRV/DHGR.DRV.G.txt @@ -9,7 +9,7 @@ C2.MASK .DA #%01111110 .DA #%01110000 .DA #%01100000 .DA #%01000000 -* .DA #%00000000 +* .DA #%00000000 C1.MASK Mask7BitsL .DA #%00000000 Useless .DA #%00000001 @@ -58,7 +58,6 @@ C1.DATA .DA #%11111111 set (ORA) COL 1 bits * .DA #%01100000 * .DA #%01000000 * .DA #%00000000 - C2.DATA .DA #%10000001 set (ORA) COL 2 bits .DA #%10000011 .DA #%10000111 diff --git a/DRV/DHGR.DRV.S.BLT.txt b/DRV/DHGR.DRV.S.BLT.txt index efaa6f9f..ab115899 100644 --- a/DRV/DHGR.DRV.S.BLT.txt +++ b/DRV/DHGR.DRV.S.BLT.txt @@ -18,36 +18,28 @@ NEW BITBLT ldy CB.CACHE+S.CB.SrcPtr lda CB.CACHE+S.CB.SrcPtr+1 bne BITBLT.1 - sta SETREADAUX sta SETWRITEAUX tya >SYSCALL2 GetMemPtr - jsr BITBLT.1 - sta CLRREADAUX sta CLRWRITEAUX rts - BITBLT.1 >STYA ZPBMDataPtr - ldy #S.BM-1 .1 lda (ZPBMDataPtr),y sta BM.Cache,y dey bpl .1 - ldx #0 lda BM.Cache+S.BM.F cmp #S.BM.F.BBP1 beq .11 - ldx #$80 .11 stx BLT.CMASK - lda ZPBMDataPtr clc adc BM.Cache+S.BM.MASK.OFS @@ -55,23 +47,18 @@ BITBLT.1 >STYA ZPBMDataPtr lda ZPBMDataPtr+1 adc BM.Cache+S.BM.MASK.OFS+1 sta ZPBMMaskPtr+1 - lda ZPBMDataPtr clc adc #S.BM sta ZPBMDataPtr bcc .2 - inc ZPBMDataPtr+1 .2 >LDYA CB.Cache+S.CB.DstPtr >STYA ZPBMSavePtr - >LDYA CB.Cache+S.CB.Y1 ldx BM.Cache+S.BM.RowBytes - jsr YAMultX - pha tya clc @@ -81,27 +68,23 @@ BITBLT.1 >STYA ZPBMDataPtr pha adc ZPBMDataPtr+1 sta BLT.BMDataPtr+1 - tya adc ZPBMMaskPtr sta BLT.BMMaskPtr pla adc ZPBMMaskPtr+1 sta BLT.BMMaskPtr+1 - lda CB.Cache+S.CB.X1 pha and #7 sta BLT.BMBitOfs pla - lsr CB.Cache+S.CB.X1+1 ror lsr CB.Cache+S.CB.X1+1 ror lsr CB.Cache+S.CB.X1+1 ror - pha clc adc BLT.BMDataPtr @@ -110,18 +93,14 @@ BITBLT.1 >STYA ZPBMDataPtr inc BLT.BMDataPtr+1 clc - .3 pla adc BLT.BMMaskPtr sta BLT.BMMaskPtr bcc .4 - inc BLT.BMMaskPtr+1 - .4 >LDYA CB.Cache+S.CB.DstX jsr LBUF.SetBounds1YA stx BLT.SCRBitOfs - lda CB.Cache+S.CB.DstX clc adc CB.Cache+S.CB.SrcW @@ -135,36 +114,29 @@ BITBLT.1 >STYA ZPBMDataPtr pla sbc #0 jsr LBUF.SetBounds2YA - ldx BLT.SCRBitOfs beq BITBLT.LOOP0 - ldy Shift.L.LO-1,x X = 1->6 sty ZPScrShiftPtr ldy Shift.L.HI-1,x X = 1->6 sty ZPScrShiftPtr+1 - lda Shift7BitsCol1,x get #%00001111, BM bits that go in Col1 sta BITBLT.LOOPx.2+1 sta BITBLT.LOOPx.6+1 lda Shift7BitsCol2,x get #%01110000, BM bits that go in Col2 sta BITBLT.LOOPx.3+1 sta BITBLT.LOOPx.7+1 - jmp BITBLT.LOOPx - *------------ Shift 0 BITBLT.LOOP0 lda CB.Cache+S.CB.OP bit #S.CB.OP.MASK beq .2 - >LDYA BLT.BMMaskPtr >STYA ZPBMDataPtr lda BLT.BMBitOfs sta BLT.BMBitOfsL - ldx LBUF.C1 stx BLT.ScrColIdx @@ -175,13 +147,10 @@ BITBLT.LOOP0 lda CB.Cache+S.CB.OP inc BLT.ScrColIdx cpx LBUF.C2 bne .1 - .2 >LDYA BLT.BMDataPtr >STYA ZPBMDataPtr - lda BLT.BMBitOfs sta BLT.BMBitOfsL - ldx LBUF.C1 stx BLT.ScrColIdx @@ -193,18 +162,14 @@ BITBLT.LOOP0 lda CB.Cache+S.CB.OP inc BLT.ScrColIdx cpx LBUF.C2 bne .3 - ldy CB.Cache+S.CB.DstY jsr LBUF.DrawAtY - inc CB.Cache+S.CB.DstY dec CB.Cache+S.CB.SrcH beq .8 - lda CB.Cache+S.CB.OP bit #S.CB.OP.MASK beq .4 - lda BLT.BMMaskPtr clc adc BM.Cache+S.BM.RowBytes @@ -218,104 +183,77 @@ BITBLT.LOOP0 lda CB.Cache+S.CB.OP adc BM.Cache+S.BM.RowBytes sta BLT.BMDataPtr bcc .5 - inc BLT.BMDataPtr+1 - .5 jmp BITBLT.LOOP0 .8 rts *------------ Shift 1->6 Comment : SCRBitOfs=X=3 - BITBLT.LOOPx lda CB.Cache+S.CB.OP X = BLT.SCRBitOfs bit #S.CB.OP.MASK beq BITBLT.LOOPx.4 - >LDYA BLT.BMMaskPtr >STYA ZPBMDataPtr lda BLT.BMBitOfs sta BLT.BMBitOfsL - ldx LBUF.C1 stx BLT.ScrColIdx stz LBUF.MASK,x make sure C1 not ORed with trash in "ora LBUF.DATA,x" BITBLT.LOOPx.1 jsr BLT.Get7BMBits we have c6543210 in A, destination : COL=3210xxx, COL+1=xxxx654 - pha save BM byte for 2nd col - BITBLT.LOOPx.2 and #$ff SELF MODIFIED : MASK WITH #%00001111, keep col1 bits only tay - lda (ZPScrShiftPtr),y make 0000dddd Shift left 3 : 0dddd000 - ldx BLT.ScrColIdx Get actual COL index ora LBUF.MASK,x Light proper bits : 0dddd??? sta LBUF.MASK,x store 0xdddd??? - pla Get back BM Byte - BITBLT.LOOPx.3 and #$ff SELF MODIFIED : #%01110000 get only col2 bites tay - lda (ZPScrShiftPtr),y shift right 4 (=shift left 3!!!) : 00000ddd - sta LBUF.MASK+1,x - inc BLT.ScrColIdx cpx LBUF.C2 bne BITBLT.LOOPx.1 - + BITBLT.LOOPx.4 >LDYA BLT.BMDataPtr >STYA ZPBMDataPtr lda BLT.BMBitOfs sta BLT.BMBitOfsL - ldx LBUF.C1 stx BLT.ScrColIdx stz LBUF.DATA,x make sure C1 not ORed with trash in "ora LBUF.DATA,x" BITBLT.LOOPx.5 jsr BLT.Get7BMBits we have c6543210 in A, destination : COL=3210xxx, COL+1=xxxx654 - pha save BM byte for 2nd col - BITBLT.LOOPx.6 and #$ff SELF MODIFIED : MASK WITH #%00001111, keep col1 bits only tay - lda (ZPScrShiftPtr),y make 0000dddd Shift left 3 : 0dddd000 - ora BLT.CMASK ldx BLT.ScrColIdx Get actual COL index ora LBUF.DATA,x Light proper bits : 0dddd??? sta LBUF.DATA,x store 0xdddd??? - pla Get back BM Byte - BITBLT.LOOPx.7 and #$ff SELF MODIFIED : #%01110000 get only col2 bites tay - lda (ZPScrShiftPtr),y shift right 4 (=shift left 3!!!) : 00000ddd - ora BLT.CMASK sta LBUF.DATA+1,x - inc BLT.ScrColIdx cpx LBUF.C2 bne BITBLT.LOOPx.5 - ldy CB.Cache+S.CB.DstY jsr LBUF.DrawAtY inc CB.Cache+S.CB.DstY dec CB.Cache+S.CB.SrcH beq .8 - lda CB.Cache+S.CB.OP bit #S.CB.OP.MASK beq .1 - lda BLT.BMMaskPtr clc adc BM.Cache+S.BM.RowBytes @@ -329,9 +267,7 @@ BITBLT.LOOPx.7 and #$ff SELF MODIFIED : #%01110000 get only col2 bites adc BM.Cache+S.BM.RowBytes sta BLT.BMDataPtr bcc .2 - inc BLT.BMDataPtr+1 - .2 jmp BITBLT.LOOPx .8 rts @@ -349,44 +285,33 @@ BLT.Get7BMBits ldx BLT.BMBitOfsL dex OFS 0->6 beq BLT.Get7BMBits1 OFS was 1....done and go to next byte, OFS=0 - lda Shift.R.LO-1,x X = 1->6 sta ZPBMShiftPtr - lda Shift.R.HI-1,x X = 1->6 sta ZPBMShiftPtr+1 - lda (ZPBMDataPtr) lsr OFS=1->7, shift one (Range 0->127) - and Mask7BitsH,x Get only left upper X bits tay xxxxx000 - lda (ZPBMShiftPtr),y shift'em RIGHT 000xxxxx pha - inc ZPBMDataPtr Next BM data byte bne .1 inc ZPBMDataPtr+1 - .1 lda (ZPBMDataPtr) get next byte and Mask7BitsL,x only first Y bits 000000yy tay - pla get back right part bits 000xxxxx - ora (ZPBMShiftPtr),y shift right 000000yy and ORA with 000xxxxx=0yyxxxxx dec BLT.BMBitOfsL X = 1->6, ADD 7 MOD 8..... rts BLT.Get7BMBits0 lda #7 sta BLT.BMBitOfsL Was 0, add 7 bits - lda (ZPBMDataPtr) and #%01111111 Get only 7 needed bits rts - BLT.Get7BMBits1 lda (ZPBMDataPtr) lsr OFS=1->7, shift one (Range 0->127) diff --git a/DRV/DHGR.DRV.S.LBUF.txt b/DRV/DHGR.DRV.S.LBUF.txt index eb59375d..45095703 100644 --- a/DRV/DHGR.DRV.S.LBUF.txt +++ b/DRV/DHGR.DRV.S.LBUF.txt @@ -15,7 +15,6 @@ LBUF.SetBounds1YA LBUF.SetBounds2YA jsr DIVMOD7YA A=DIV, X=MOD sta LBUF.C2 - cmp LBUF.C1 C1=C2, go combine in C1 beq .1 @@ -28,7 +27,6 @@ LBUF.SetBounds2YA .1 lda C1.MASK,x and C2.MASK,x sta LBUF.C1.MASK - lda C1.DATA,x ora C2.DATA,x sta LBUF.C1.DATA @@ -38,63 +36,50 @@ LBUF.DrawAtY lda BASEL,y setup line Base Ptr sta ZPBasePtr lda BASEH,y sta ZPBasePtr+1 - lda CB.Cache+S.CB.OP bit #S.CB.OP.RESTORE bne .4 bit #S.CB.OP.SAVE beq .3 - ldx LBUF.C1 .1 ldy COL.BANK,x sta $C000,y ldy COL.OFS,x - lda (ZPBasePtr),y sta (ZPBMSavePtr) - inc ZPBMSavePtr bne .2 inc ZPBMSavePtr+1 - .2 cpx LBUF.C2 inx bcc .1 - lda CB.Cache+S.CB.OP - .3 and #$F tax jmp (J.LBUF.DrawAtY,x) - .4 ldx LBUF.C1 .5 ldy COL.BANK,x sta $C000,y ldy COL.OFS,x - lda (ZPBMSavePtr) sta (ZPBasePtr),y - inc ZPBMSavePtr bne .6 inc ZPBMSavePtr+1 - .6 cpx LBUF.C2 inx bcc .5 - rts + rts *-------------------------------------- -LBUF.DrawAtY.SET +LBUF.DrawAtY.SET LBUF.DrawAtY.AND.SET USELESS ldx LBUF.C1 x C1->C2 - ldy COL.BANK,x sta $C000,y ldy COL.OFS,x - lda (ZPBasePtr),y Clear screen at C1 and LBUF.C1.MASK with MASK bits sta ZPTmpByte @@ -103,23 +88,20 @@ LBUF.DrawAtY.AND.SET USELESS and LBUF.C1.DATA set ONLY bits starting at X1 mod 7 ora ZPTmpByte ora with screen bits sta (ZPBasePtr),y update screen - inx cpx LBUF.C2 beq .2 C1=C2, go setup C2 - bcs .8 C1+1 > C2, we are done... - + 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 bcc .1 - .2 ldy COL.BANK,x sta $C000,y ldy COL.OFS,x @@ -127,13 +109,11 @@ LBUF.DrawAtY.AND.SET USELESS lda (ZPBasePtr),y Get C2 and LBUF.C2.MASK clear ONLY bits ending at X2 mod 7 sta ZPTmpByte - lda LBUF.DATA,x get DATA bits and LBUF.C2.DATA set ONLY bits ending at X2 mod 7 ora ZPTmpByte sta (ZPBasePtr),y update screen - .8 rts *-------------------------------------- LBUF.DrawAtY.XOR @@ -147,32 +127,25 @@ LBUF.DrawAtY.XXX sta .10+1 sta .20+1 sta .30+1 - 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 ZPTmpByte - lda LBUF.DATA,x get DATA bits and LBUF.C1.DATA set ONLY bits starting at X1 mod 7 ora ZPTmpByte .10 ora (ZPBasePtr),y 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 .20 ora (ZPBasePtr),y sta (ZPBasePtr),y @@ -180,11 +153,9 @@ LBUF.DrawAtY.XXX 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 ZPTmpByte @@ -203,7 +174,6 @@ LBUF.DrawAtY.AND.ORA ldy COL.BANK,x sta $C000,y ldy COL.OFS,x - 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 @@ -213,16 +183,13 @@ LBUF.DrawAtY.AND.ORA and LBUF.C1.DATA set ONLY bits starting at X1 mod 7 ora ZPTmpByte ora with screen bits 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 (ZPBasePtr),y and LBUF.MASK,x ora LBUF.DATA,x set all bytes between C1+1 & C2-1 @@ -231,21 +198,17 @@ LBUF.DrawAtY.AND.ORA inx cpx LBUF.C2 bne .1 - .2 ldy COL.BANK,x sta $C000,y ldy COL.OFS,x - lda LBUF.MASK,x get MASK bits ora LBUF.C2.MASK and (ZPBasePtr),y sta ZPTmpByte - lda LBUF.DATA,x get DATA bits and LBUF.C2.DATA set ONLY bits ending at X2 mod 7 ora ZPTmpByte sta (ZPBasePtr),y update screen - .8 rts *-------------------------------------- MAN diff --git a/DRV/DHGR.DRV.S.LINE.txt b/DRV/DHGR.DRV.S.LINE.txt index 7271a589..1df54766 100644 --- a/DRV/DHGR.DRV.S.LINE.txt +++ b/DRV/DHGR.DRV.S.LINE.txt @@ -8,7 +8,6 @@ HLINE lda CB.Cache+S.CB.M cmp #S.CB.M.MONO bne HLINE.C16 - HLINE.MONO >LDYA CB.Cache+S.CB.X1 jsr LBUF.SetBounds1YA >LDYA CB.Cache+S.CB.X2 @@ -16,11 +15,8 @@ HLINE.MONO >LDYA CB.Cache+S.CB.X1 lda CB.Cache+S.CB.COLOR beq .1 - lda #%01111111 - .1 ldx LBUF.C1 - .2 sta LBUF.DATA,x cpx LBUF.C2 inx @@ -28,19 +24,16 @@ HLINE.MONO >LDYA CB.Cache+S.CB.X1 ldy CB.Cache+S.CB.Y1 jmp LBUF.DrawAtY - HLINE.C16 lda CB.Cache+S.CB.X1 and #%11111100 tay lda CB.Cache+S.CB.X1+1 - jsr LBUF.SetBounds1YA lda CB.Cache+S.CB.X2 ora #%00000011 tay lda CB.Cache+S.CB.X2+1 - jsr LBUF.SetBounds2YA lda CB.Cache+S.CB.COLOR @@ -52,15 +45,11 @@ HLINE.C16 lda CB.Cache+S.CB.X1 lda L.Color.Pixels+1 adc #0 sta ZPTmpWord+1 - ldx LBUF.C1 - .1 txa and #3 Compute index in Palette (Mod 4) - tay .2 lda (ZPTmpWord),y - sta LBUF.DATA,x cpx LBUF.C2 inx @@ -81,36 +70,30 @@ VLINE.MONO >LDYA CB.Cache+S.CB.X1 tay lda COL.OFS,y sta ZPTmpByte Save COL (DIV) - lda COL.BANK,y tay sta $C000,y Select proper BANK - ldy CB.Cache+S.CB.Y1 clc lda CB.Cache+S.CB.OP * cmp #S.CB.OP.XOR beq VLINE.MONO.XOR - lda CB.Cache+S.CB.COLOR bne VLINE.MONO.WHITE - -VLINE.MONO.BLACK - + +VLINE.MONO.BLACK .1 lda BASEL,y adc ZPTmpByte sta ZPBasePtr lda BASEH,y sta ZPBasePtr+1 - lda (ZPBasePtr) and Mono.NMasks,x sta (ZPBasePtr) cpy CB.Cache+S.CB.Y2 iny bcc .1 - rts VLINE.MONO.WHITE @@ -119,20 +102,17 @@ VLINE.MONO.WHITE VLINE.MONO.XOR lda #$5D EOR abs,x sta .2 - .1 lda BASEL,y adc ZPTmpByte sta ZPBasePtr lda BASEH,y sta ZPBasePtr+1 - lda (ZPBasePtr) .2 eor Mono.Masks,x SELF MODIFIED sta (ZPBasePtr) cpy CB.Cache+S.CB.Y2 iny bcc .1 - rts VLINE.C16 lda CB.Cache+S.CB.X1 @@ -146,16 +126,13 @@ VLINE.C16 lda CB.Cache+S.CB.X1 .1 phy phx - jsr SETPIXEL.C16.YX - plx ply cpy CB.Cache+S.CB.Y2 iny bcc .1 - rts *-------------------------------------- MAN diff --git a/DRV/DHGR.DRV.S.PIX.txt b/DRV/DHGR.DRV.S.PIX.txt index 7cd3ddc3..e151b058 100644 --- a/DRV/DHGR.DRV.S.PIX.txt +++ b/DRV/DHGR.DRV.S.PIX.txt @@ -19,27 +19,22 @@ SETPIXEL.MONO >LDYA CB.Cache+S.CB.X1 tay lda COL.OFS,y phy - ldy CB.Cache+S.CB.Y1 clc adc BASEL,y sta ZPBasePtr lda BASEH,y sta ZPBasePtr+1 - ply lda COL.BANK,y tay sta $C000,y Select proper BANK - lda CB.Cache+S.CB.OP * cmp #S.CB.OP.XOR beq SETPIXEL.MONO.XOR - lda CB.Cache+S.CB.COLOR bne SETPIXEL.MONO.WHITE - -SETPIXEL.MONO.BLACK +SETPIXEL.MONO.BLACK lda (ZPBasePtr) and Mono.NMasks,x sta (ZPBasePtr) @@ -51,15 +46,12 @@ SETPIXEL.MONO.WHITE and #$7f Clear Color Bit ora Mono.Masks,x sta (ZPBasePtr) - rts - -SETPIXEL.MONO.XOR +SETPIXEL.MONO.XOR lda (ZPBasePtr) and #$7f Clear Color Bit eor Mono.Masks,x sta (ZPBasePtr) - rts SETPIXEL.C16 lda CB.Cache+S.CB.X1 @@ -74,23 +66,18 @@ SETPIXEL.C16 lda CB.Cache+S.CB.X1 * Y = PixelX (0,139), X = PixelY (0,191) SETPIXEL.C16.YX lda DIV7.0,y PixelX MOD 7 (range 0->19) - asl times 2 (range 0->38) - -* clc +* clc adc BASEL,x setup line Base Ptr (cc by asl) sta ZPBasePtr ZPBasePtr now point to first of... lda BASEH,x sta ZPBasePtr+1 ...the 4 columns lda MOD7.0,y get pixelX MOD7 - asl times 4 to compute index in MASK tables asl tax set in X for Masks,NMasks - lda CB.Cache+S.CB.COLOR - asl times 4 to compute index in PIXELS table asl tay @@ -100,9 +87,7 @@ SETPIXEL.C16.YX lda DIV7.0,y PixelX MOD 7 (range 0->19) and Color.Pixels,y apply color sta ZPTmpByte - sta SETPAGE2 - lda (ZPBasePtr) and Color.NMasks,x reset existing pixel, ora ZPTmpByte @@ -110,50 +95,39 @@ SETPIXEL.C16.YX lda DIV7.0,y PixelX MOD 7 (range 0->19) .10 inx iny - lda Color.Masks,x beq .11 and Color.Pixels,y apply color sta ZPTmpByte - sta CLRPAGE2 lda (ZPBasePtr) and Color.NMasks,x reset existing pixel, ora ZPTmpByte sta (ZPBasePtr) - .11 inc ZPBasePtr inx iny - lda Color.Masks,x beq .12 and Color.Pixels,y apply color sta ZPTmpByte - sta SETPAGE2 - lda (ZPBasePtr) and Color.NMasks,x reset existing pixel, ora ZPTmpByte sta (ZPBasePtr) - .12 inx iny - lda Color.Masks,x beq .13 and Color.Pixels,y apply color sta ZPTmpByte - sta CLRPAGE2 - lda (ZPBasePtr) and Color.NMasks,x reset existing pixel, ora ZPTmpByte sta (ZPBasePtr) - .13 rts *-------------------------------------- * GETPIXEL diff --git a/DRV/DHGR.DRV.S.RECT.txt b/DRV/DHGR.DRV.S.RECT.txt index c832381a..740cff35 100644 --- a/DRV/DHGR.DRV.S.RECT.txt +++ b/DRV/DHGR.DRV.S.RECT.txt @@ -23,7 +23,6 @@ FILLRECT jsr HLINE ply cpy CB.Cache+S.CB.Y2 bne .2 - .8 rts *-------------------------------------- * 4 : SrcX1 @@ -34,22 +33,17 @@ FILLRECT jsr HLINE *-------------------------------------- GETRECTBUFSIZE >LDYA CB.Cache+S.CB.X1 jsr DIVMOD7YA - sta ZPTmpByte - >LDYA CB.Cache+S.CB.X2 jsr DIVMOD7YA - inc COL2 + 1 sec sbc ZPTmpByte (COL2+1)-COL1 tax - >LDYA CB.Cache+S.CB.Y1 jsr YAMultX phy - ldy #S.CB.DstPtr+1 sta (ZPIOCTL),y pla diff --git a/DRV/DHGR.DRV.S.txt b/DRV/DHGR.DRV.S.txt index b3df31e4..4c6b5d8d 100644 --- a/DRV/DHGR.DRV.S.txt +++ b/DRV/DHGR.DRV.S.txt @@ -40,58 +40,42 @@ L.FD.DEV.NAME .DA FD.DEV.NAME *-------------------------------------- Dev.Detect >LDYA L.MSG.DETECT >SYSCALL puts - lda MACHID and #MACHID.T cmp #MACHID.T.IIc bne .1 - * stz DCB+S.DCB.GFX.S //c : 80c Mode - >LDYA L.MSG.DETECT.IIC - bra .3 - .1 php sei sta SET80STORE sta SETPAGE2 ldx $400 Save Aux $400 - lda #$ff Make sure !=1 for comparing later sta $400 sta CLRPAGE2 ldy $400 Save Main $400 - lda #$01 Select Foreground/BKgrnd Colors sta TXT16.ON Activate 16 color mode - sta $400 Store something in Main - sta SETPAGE2 - eor $400 read back AUX, If EVE, must be F/BG colors bne .2 - dec sta DCB+S.DCB.GFX.S 0=80C,$ff=EVE .2 stx $400 Set back Aux $400 sta CLRPAGE2 sty $400 Set back Main $400 - sta TXT16.OFF - plp - >LDYA L.MSG.DETECT.EVE bit DCB+S.DCB.GFX.S bmi .3 - >LDYA L.MSG.DETECT.80C - .3 >SYSCALL puts >PUSHWI DRV.END @@ -101,12 +85,10 @@ Dev.Detect >LDYA L.MSG.DETECT >SYSCALL InsDrv bcs .9 >STYA FD.DEV+S.FD.DEV.DRVPTR - >PUSHW L.FD.DEV.NAME >LDYA L.FD.DEV >SYSCALL MKDEV bcs .9 - php sei >LDYAI $4000 @@ -114,32 +96,26 @@ Dev.Detect >LDYA L.MSG.DETECT sta SETWRITEAUX >STYA $800 sta CLRWRITEAUX - sta SETHIRES sta SET80STORE jsr ClrScr - plp .9 rts *-------------------------------------- ClrScr ldx #0 txa lda #0 - .1 ldy BASEL,x sty ZPPtr ldy BASEH,x sty ZPPtr+1 - sta SETPAGE2 jsr .2 - sta CLRPAGE2 jsr .2 - inx cpx #192 bne .1 @@ -147,11 +123,9 @@ ClrScr ldx #0 rts .2 ldy #39 - .3 sta (ZPPtr),y dey bpl .3 - rts *-------------------------------------- CS.END @@ -235,7 +209,7 @@ L.SHIFT .DA SHIFT.L1 .DA SHIFT.L4 .DA SHIFT.L5 .DA SHIFT.L6 -L.Color.Pixels .DA Color.Pixels +L.Color.Pixels .DA Color.Pixels .DA 0 end or relocation *-------------------------------------- STATUS >STYA ZPIOCTL @@ -250,19 +224,15 @@ STATUS >STYA ZPIOCTL 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 (ZPBasePtr),y dey bpl .2 - clc rts @@ -270,7 +240,6 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB bne STATUS.9 ldy #S.DCB.GFX-1 - .2 lda DCB,y sta (ZPBasePtr),y dey @@ -278,7 +247,6 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB clc rts - STATUS.9 lda #MLI.E.BADCTL sec rts @@ -290,29 +258,22 @@ OPEN tax DEV.ID in A bne CLOSE.IOE txa - ldx #0 - .10 ldy A2osX.SCRNDEVS,x beq .20 - inx cpx #K.SCR.MAX bne .10 - lda #E.OOH sec rts - .20 sta A2osX.SCRNDEVS,x sta DCB+S.DCB.GFX.DEVID lda #S.DIB.S.OPENED tsb DIB+S.DIB.S - ldx #0 ldy #0 - .1 lda L.SHIFT,x Get relocated LO BYTE sta Shift.L.LO,y inx @@ -323,10 +284,8 @@ OPEN tax DEV.ID in A iny cpy #6 bne .1 - ldx #0 SHIFT.L1 = SHIFT.R6 !!! ldy #5 - .2 lda L.SHIFT,x Get relocated LO BYTE sta Shift.R.LO,y inx @@ -340,19 +299,14 @@ OPEN tax DEV.ID in A CONTROL lda DCB+S.DCB.GFX.DEVID NON STANDARD cmp A2osX.ASCREEN beq .8 - sta A2osX.ASCREEN - ldy #0 bit DCB+S.DCB.GFX.S bpl .1 //c,EVE mode - ldy #CONTROL.EVE-CONTROL.80C - .1 ldx CONTROL.80C,y beq .8 Ending 0 - sta $C000,x iny @@ -360,7 +314,6 @@ CONTROL lda DCB+S.DCB.GFX.DEVID NON STANDARD .8 clc rts - CLOSE.IOE lda #MLI.E.IO sec rts @@ -368,21 +321,16 @@ CLOSE.IOE lda #MLI.E.IO CLOSE lda #S.DIB.S.OPENED bit DIB+S.DIB.S beq CLOSE.IOE - trb DIB+S.DIB.S - ldx #0 lda DCB+S.DCB.GFX.DEVID - .1 cmp A2osX.SCRNDEVS,x bne .2 stz A2osX.SCRNDEVS,x - .2 inx cpx #K.SCR.MAX bne .1 - clc rts *-------------------------------------- @@ -392,18 +340,14 @@ WRITE >STYA ZPIOCTL NON STANDARD .1 tax ldy CB.CmdLen,x - .2 lda (ZPIOCTL),y sta CB.Cache,y dey bpl .2 - .3 jsr .10 - clc rts - -.10 jmp (J.Cmds,x) +.10 jmp (J.Cmds,x) *-------------------------------------- * IN: * Y = LO @@ -416,7 +360,6 @@ DIVMOD7YA dec bmi .2 clc beq .1 - lda DIV7.512,y adc #$49 ldx MOD7.512,y @@ -426,10 +369,9 @@ DIVMOD7YA dec adc #$24 ldx MOD7.256,y rts - .2 lda DIV7.0,y ldx MOD7.0,y - rts + rts *-------------------------------------- * IN: * Y,A = num1 (16) @@ -441,12 +383,9 @@ YAMultX stx ZPTmpByte sty ZPTmpWord sta ZPTmpWord+1 - ldy #0 Result LO tya Result HI - bra .3 - .1 pha tya clc @@ -454,15 +393,11 @@ YAMultX stx ZPTmpByte tay pla adc ZPTmpWord+1 - .2 asl ZPTmpWord rol ZPTmpWord+1 - .3 lsr ZPTmpByte bcs .1 - bne .2 - rts *-------------------------------------- .INB USR/SRC/DRV/DHGR.DRV.S.BLT @@ -478,30 +413,24 @@ DRV.CS.END CONTROL.80C .DA #SETIOUDIS .DA #CLRTEXT .DA #SETHIRES - .DA #CLR80DISP - .DA #SETAN3 .DA #CLRAN3 .DA #SETAN3 .DA #CLRAN3 .DA #SET80DISP - .DA #SETAN3 .DA #CLRAN3 .DA #SETAN3 .DA #0 - CONTROL.EVE .DA #SETIOUDIS .DA #CLRTEXT .DA #SETHIRES - .DA #HR1.OFF .DA #HR2.ON .DA #HR3.ON - .DA #0 *-------------------------------------- Shift.L.LO .BS 6 diff --git a/DRV/LANCEGS.DRV.S.txt b/DRV/LANCEGS.DRV.S.txt index 28845123..85129246 100644 --- a/DRV/LANCEGS.DRV.S.txt +++ b/DRV/LANCEGS.DRV.S.txt @@ -48,17 +48,13 @@ Dev.Detect >STYA ARGS >LDYA L.MSG.DETECT >SYSCALL puts - ldx #$70 ldy #7 - .1 lda A2osX.S,y IO based detection, avoid scanning in Disk Controller IO!!!! bne .2 - lda L91C96.BSR+1,x cmp #DEVID beq .3 - .2 dec FD.DEV.NAME+3 txa sec @@ -66,25 +62,21 @@ Dev.Detect >STYA ARGS tax dey bne .1 - >LDYA L.MSG.DETECT.KO >SYSCALL puts lda #MLI.E.NODEV sec rts - .3 stx DEVSLOTx0 sty DEVSLOT0x jsr Dev.ParseArgs bcs .9 - .8 >PUSHW L.FD.DEV.NAME >PUSHBI 2 >LDYA L.MSG.DETECT.OK >SYSCALL printf - >PUSHWI DRV.END >PUSHWI DRV.CS.END-DRV.CS.START >PUSHWI DRV.CS.START @@ -92,16 +84,13 @@ Dev.Detect >STYA ARGS >SYSCALL InsDrv bcs .9 >STYA FD.DEV+S.FD.DEV.DRVPTR - >PUSHW L.FD.DEV.NAME >LDYA L.FD.DEV >SYSCALL MKDEV bcs .9 - ldx DEVSLOT0x lda #A2osX.S.NIC sta A2osX.S,x - * clc .9 rts *-------------------------------------- @@ -109,7 +98,6 @@ Dev.ParseArgs >LDYA ARGS >STYA ZPArgPTR lda (ZPArgPTR) bne .1 - lda A2osX.RANDOM16 eor A2osX.TIMER16 sta DCB+S.DCB.NIC.MAC+3 @@ -119,7 +107,6 @@ Dev.ParseArgs >LDYA ARGS sta DCB+S.DCB.NIC.MAC+5 clc rts - .1 >PUSHW L.MAC5 >PUSHW L.MAC4 >PUSHW L.MAC3 @@ -131,7 +118,6 @@ Dev.ParseArgs >LDYA ARGS >LDYA ZPArgPtr >SYSCALL sscanf bcc .8 - lda #E.SYN sec .8 rts @@ -180,10 +166,8 @@ STATUS >STYA ZPIOCTL ldy #S.IOCTL.STATCODE lda (ZPIOCTL),y beq .1 - cmp #S.IOCTL.STATCODE.GETDIB bne STATUS.DCB - ldx #S.DIB-1 .HS 2C bit abs .1 ldx #3 @@ -194,15 +178,12 @@ STATUS >STYA ZPIOCTL iny lda (ZPIOCTL),y sta .3+2 - .2 lda DIB,x .3 sta $ffff,x SELF MODIFIED dex bpl .2 - clc rts - STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB bne STATUS.9 @@ -215,7 +196,6 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB lda L91C96.0.EPHSR+1,x and /L91C96.0.EPHSR.LINK beq .1 - lda #S.DCB.NIC.LINK.OK tsb DCB+S.DCB.NIC.LINK @@ -226,16 +206,13 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB lda #S.DCB.NIC.LINK.FD tsb DCB+S.DCB.NIC.LINK - .1 ldy #S.IOCTL.BUFPTR lda (ZPIOCTL),y sta .4+1 iny lda (ZPIOCTL),y sta .4+2 - ldx #S.DCB.NIC-1 - .3 lda DCB,x .4 sta $ffff,x SELF MODIFIED dex @@ -243,15 +220,13 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB clc rts - STATUS.9 lda #MLI.E.BADCTL sec - rts + rts *-------------------------------------- OPEN lda #S.DIB.S.OPENED bit DIB+S.DIB.S bne .9 - jsr CLOSE * ldx DEVSLOTx0 Done by CLOSE @@ -260,15 +235,12 @@ OPEN lda #S.DIB.S.OPENED sta L91C96.0.TCR,x lda /L91C96.0.TCR.FDSE+L91C96.0.TCR.FUDPLX+L91C96.0.TCR.PADEN+L91C96.0.TCR.TXENA sta L91C96.0.TCR+1,x - lda #L91C96.0.RCR.NOCRC+L91C96.0.RCR.RXENA+L91C96.0.RCR.ALLMUL sta L91C96.0.RCR,x lda /L91C96.0.RCR.NOCRC+L91C96.0.RCR.RXENA+L91C96.0.RCR.ALLMUL sta L91C96.0.RCR+1,x - lda #1 sta L91C96.BSR,x - lda #L91C96.1.CR.NOWAIT sta L91C96.1.CR,x lda /L91C96.1.CR.NOWAIT @@ -292,39 +264,32 @@ OPEN lda #S.DIB.S.OPENED iny cpy #6 bne .2 - .3 ldx DEVSLOTx0 lda #L91C96.1.CTR.DEFAULT+L91C96.1.CTR.AUTOREL sta L91C96.1.CTR,x lda /L91C96.1.CTR.DEFAULT+L91C96.1.CTR.AUTOREL sta L91C96.1.CTR+1,x - clc rts .9 lda #MLI.E.OPEN sec - rts + rts *-------------------------------------- CLOSE ldx DEVSLOTx0 stz L91C96.BSR,x - lda #L91C96.0.RCR.RESET sta L91C96.0.RCR,x lda /L91C96.0.RCR.RESET sta L91C96.0.RCR+1,x - lda $C019 we can use VBL as we are not on //c .1 eor $C019 bpl .1 - lda $C019 .2 eor $C019 bpl .2 - stz L91C96.0.RCR,x stz L91C96.0.RCR+1,x - clc rts *-------------------------------------- @@ -332,7 +297,6 @@ READ php sei >STYA ZPIOCTL - ldx DEVSLOTx0 lda #2 sta L91C96.BSR,x @@ -341,11 +305,9 @@ READ php and #L91C96.2.IST.RCV bne .1 lda #E.NODATA - .9 plp sec rts - .1 lda #L91C96.2.PTR.RCVD+L91C96.2.PTR.AUTOI+L91C96.2.PTR.READ sta L91C96.2.PTR,x lda /L91C96.2.PTR.RCVD+L91C96.2.PTR.AUTOI+L91C96.2.PTR.READ @@ -353,12 +315,10 @@ READ php lda L91C96.2.DATA,x Get Frame Status Word (lo) lda L91C96.2.DATA,x Get Frame Status Word (HI) - asl asl asl #$10 = odd? asl if odd, CS - lda L91C96.2.DATA,x get lo byte count sbc #5 compute Size sta Size @@ -367,7 +327,6 @@ READ php sta (ZPIOCTL),y eor #$ff sta Counter - lda L91C96.2.DATA,x get hi byte count sbc #0 sta Size+1 @@ -376,41 +335,33 @@ READ php eor #$ff sta Counter+1 eor #$ff - ply - >SYSCALL2 getmem bcs .9 >STYA ZPBufPtr phx - phy ldy #S.IOCTL.BUFPTR+1 sta (ZPIOCTL),y dey pla sta (ZPIOCTL),y - ldx DEVSLOTx0 ldy #0 - .2 inc Counter bne .21 inc Counter+1 beq .4 - .21 lda L91C96.2.DATA,x sta (ZPBufPtr),y iny bne .3 inc ZPBufPtr+1 - .3 inc Counter bne .31 inc Counter+1 beq .4 - .31 lda L91C96.2.DATA,x sta (ZPBufPtr),y iny @@ -420,20 +371,17 @@ READ php .4 lda #L91C96.2.MMUCR.REMREL sta L91C96.2.MMUCR,x - .8 pla hMem plp clc rts -*-------------------------------------- +*-------------------------------------- WRITE php sei - >STYA ZPIOCTL ldx DEVSLOTx0 - lda #2 sta L91C96.BSR,x @@ -443,54 +391,44 @@ WRITE php eor #$ff sta Counter eor #$ff - clc adc #6 3 WORDs more Status, len & Control bne .10 clc LO byte is 0, no need for an extra empty page - .10 iny lda (ZPIOCTL),y sta Size+1 eor #$ff sta Counter+1 eor #$ff - adc #0 - .1 ora #L91C96.2.MMUCR.ALLOC sta L91C96.2.MMUCR,x ldy #0 - .2 lda L91C96.2.IST,x and #L91C96.2.IST.ALLOC bne .3 dey bne .2 - lda #E.NODATA - .9 plp sec - rts - + rts + .3 lda L91C96.2.AAR,x sta L91C96.2.PNR,x - lda #L91C96.2.PTR.AUTOI sta L91C96.2.PTR,x lda /L91C96.2.PTR.AUTOI sta L91C96.2.PTR+1,x - ldy #S.IOCTL.BUFPTR lda (ZPIOCTL),y sta ZPBufPtr iny lda (ZPIOCTL),y sta ZPBufPtr+1 - ldy #S.ETH.SRCMAC+5 Add Src MAC Address ldx #5 .4 lda S.DCB.NIC.MAC,x @@ -502,7 +440,6 @@ WRITE php ldx DEVSLOTx0 stz L91C96.2.DATA,x write fake status word stz L91C96.2.DATA,x - lda Size pha eor #$01 @@ -513,24 +450,19 @@ WRITE php lda Size+1 adc #$00 sta L91C96.2.DATA,x - ldy #2 - .5 inc Counter bne .51 inc Counter+1 beq .70 - .51 lda (ZPBufPtr),y iny bne .6 inc ZPBufPtr+1 - .6 inc Counter bne .61 inc Counter+1 beq .71 - .61 sta L91C96.2.DATA,x lda (ZPBufPtr),y sta L91C96.2.DATA,x @@ -538,19 +470,15 @@ WRITE php bne .5 inc ZPBufPtr+1 bra .5 - .70 lda #0 sta L91C96.2.DATA,x sta L91C96.2.DATA,x bra .8 - .71 sta L91C96.2.DATA,x lda #%00100000 signal an extra (odd) byte sta L91C96.2.DATA,x - .8 lda #L91C96.2.MMUCR.NQPKT sta L91C96.2.MMUCR,x - plp clc rts diff --git a/DRV/MOUSE.DRV.S.txt b/DRV/MOUSE.DRV.S.txt index 16be50d8..a41fd8cd 100644 --- a/DRV/MOUSE.DRV.S.txt +++ b/DRV/MOUSE.DRV.S.txt @@ -43,7 +43,6 @@ Dev.Detect >LDYA L.MSG.DETECT stz ZPSlotPtr lda #$C1 .1 sta ZPSlotPtr+1 - ldx #DEVSIG.Value-DEVSIG.Offset-1 .2 ldy DEVSIG.Offset,x @@ -53,19 +52,16 @@ Dev.Detect >LDYA L.MSG.DETECT dex bpl .2 bra .8 - .3 lda ZPSlotPtr+1 no match, try next slot.... inc cmp #$C8 bne .1 - >LDYA L.MSG.DETECT.KO >SYSCALL printf .9 lda #MLI.E.NODEV sec rts - .8 lda ZPSlotPtr+1 sta GOMOUSE+2 sta GOMOUSE.Cn+1 @@ -79,7 +75,6 @@ Dev.Detect >LDYA L.MSG.DETECT asl asl sta GOMOUSE.n0+1 - >PUSHW L.FD.DEV.NAME >PUSHBI 2 >LDYA L.MSG.DETECT.OK @@ -92,7 +87,6 @@ Dev.Detect >LDYA L.MSG.DETECT >SYSCALL InsDrv bcs .9 >STYA FD.DEV+S.FD.DEV.DRVPTR - >PUSHW L.FD.DEV.NAME >LDYA L.FD.DEV >SYSCALL MKDEV @@ -147,24 +141,19 @@ STATUS >STYA ZPIOCTL 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 - STATUS.9 lda #MLI.E.BADCTL sec rts @@ -173,16 +162,13 @@ CONTROL >STYA ZPBufPtr NON STANDARD php sei - ldy #0 ldx #0 set X jsr SETCLAMP - ldy #4 ldx #1 set Y jsr SETCLAMP - - ldy #HOMEMOUSE + ldy #HOMEMOUSE jsr GOMOUSE plp @@ -198,32 +184,25 @@ OPEN php ora #MOUSEMODx.ACTIVE Enable, Polling mode ldy #SETMOUSE jsr GOMOUSE - ldy #INITMOUSE Reset jsr GOMOUSE lda #S.DIB.S.OPENED tsb DIB+S.DIB.S - plp - clc rts *-------------------------------------- CLOSE php sei - ldx DEVSLOT0n lda MOUSEMODx,x keep if VBLInt already activated by kernel and #MOUSEMODx.INTVBL Disable ALL but VBLInt if previously active ldy #SETMOUSE jsr GOMOUSE - lda #S.DIB.S.OPENED trb DIB+S.DIB.S - plp - clc rts *-------------------------------------- @@ -236,100 +215,71 @@ READ >STYA ZPBufPtr NON STANDARD sta SET80STORE sta CLRPAGE2 - * ldy #READMOUSE DONE BY IRQ MANAGER * jsr GOMOUSE - ldx DEVSLOT0n - lda MOUSESTSx,x and #MOUSESTSx.MOVED beq .1 - ldy #S.MOUSE.X1 lda MOUSEXLOx,x sta (ZPBufPtr),y - iny lda MOUSEXHIx,x sta (ZPBufPtr),y - iny lda MOUSEYLOx,x sta (ZPBufPtr),y - iny lda MOUSEYHIx,x sta (ZPBufPtr),y lda #S.MOUSE.S.MOVE tsb READ.S+1 - stz bDblClick Reset DblClick flag - + .1 lda MOUSESTSx,x and #MOUSESTSx.DOWN+MOUSESTSx.LDOWN beq .8 no button state change:up & previously up - cmp #MOUSESTSx.DOWN+MOUSESTSx.LDOWN beq .8 no button state change:down & previously down - asl if CS, down & previously up bcc .2 - lda #S.MOUSE.S.DOWN tsb READ.S+1 button has been pressed, start drag... - lda MOUSEXLOx,x sta SrcDrag - lda MOUSEXHIx,x sta SrcDrag+1 - lda MOUSEYLOx,x sta SrcDrag+2 - lda MOUSEYHIx,x sta SrcDrag+3 - bra .8 - .2 lda READ.S+1 - pha save move state - ora #S.MOUSE.S.UP sta READ.S+1 - pla get back move state - bne .4 no move...click! - lda #S.MOUSE.S.CLK bit bDblClick bpl .3 - lda #S.MOUSE.S.DCLK - ldy #1 sty bDblClick - .3 dec bDblClick tsb READ.S+1 bra .8 - .4 lda #S.MOUSE.S.DRAGSTART tsb READ.S+1 - ldy #S.MOUSE.X2+3 - .5 lda SrcDrag-S.MOUSE.X2,y sta (ZPBufPtr),y dey bpl .5 - .8 plp READ.S lda #$ff SELF MODIFIED @@ -342,13 +292,12 @@ READ.S lda #$ff SELF MODIFIED .9 lda #MLI.E.EOF sec - rts + rts *-------------------------------------- * PRIVATE *-------------------------------------- SETCLAMP lda (ZPBufPtr),y sta LOCLAMPLO - iny lda (ZPBufPtr),y sta LOCLAMPHI @@ -360,7 +309,6 @@ SETCLAMP lda (ZPBufPtr),y iny lda (ZPBufPtr),y sta HICLAMPHI - txa ldy #CLAMPMOUSE *-------------------------------------- diff --git a/DRV/PIC.DRV.S.txt b/DRV/PIC.DRV.S.txt index eb1acd5e..4550194a 100644 --- a/DRV/PIC.DRV.S.txt +++ b/DRV/PIC.DRV.S.txt @@ -35,11 +35,9 @@ L.DEV.HEADER.NAME .DA DEV.HEADER.NAME Dev.Detect >STYA ARGS >LDYA L.MSG.DETECT >SYSCALL printf - stz ZPTmpPtr1 lda #$C1 sta ZPTmpPtr1+1 - .1 and #$0f tay lda A2osX.S,y @@ -54,12 +52,10 @@ Dev.Detect >STYA ARGS dex bpl .2 bra .4 - .3 inc ZPTmpPtr1+1 no match, try next slot.... lda ZPTmpPtr1+1 cmp #$C8 bne .1 - >LDYA L.MSG.DETECT.KO >SYSCALL printf diff --git a/DRV/UTHERNET.DRV.S.txt b/DRV/UTHERNET.DRV.S.txt index 210838d5..ea9aaff7 100644 --- a/DRV/UTHERNET.DRV.S.txt +++ b/DRV/UTHERNET.DRV.S.txt @@ -45,16 +45,13 @@ L.MAC5 .DA DCB+S.DCB.NIC.MAC+5 .DA 0 End Of Reloc Table *-------------------------------------- Dev.Detect >STYA ARGS - >LDYA L.MSG.DETECT >SYSCALL puts - ldx #$70 ldy #7 .1 lda A2osX.S,y IO based detection, avoid scanning in Disk Controller IO!!!! bne .2 - lda /PP.ID sta PacketPagePTR+1,x lda #PP.ID @@ -63,11 +60,9 @@ Dev.Detect >STYA ARGS lda PacketPageDATA+1,x cmp /DEVID bne .2 - lda PacketPageDATA,x cmp #DEVID beq .3 - .2 dec FD.DEV.NAME+3 txa sec @@ -75,35 +70,28 @@ Dev.Detect >STYA ARGS tax dey bne .1 - >LDYA L.MSG.DETECT.KO >SYSCALL puts lda #MLI.E.NODEV sec .99 rts - .3 stx DEVSLOTx0 sty DEVSLOT0x - lda /PP.REVISION Get Revision# of ths chip... sta PacketPagePTR+1,x lda #PP.REVISION sta PacketPagePTR,x - lda PacketPageDATA+1,x sta DIB+S.DIB.VERSION+1 set Hardware version lda PacketPageDATA,x sta DIB+S.DIB.VERSION - jsr Dev.ParseArgs bcs .99 - .8 >PUSHW L.FD.DEV.NAME >PUSHBI 2 >LDYA L.MSG.DETECT.OK >SYSCALL printf - >PUSHWI DRV.END >PUSHWI DRV.CS.END-DRV.CS.START >PUSHWI DRV.CS.START @@ -111,7 +99,6 @@ Dev.Detect >STYA ARGS >SYSCALL InsDrv bcs .9 >STYA FD.DEV+S.FD.DEV.DRVPTR - >PUSHW L.FD.DEV.NAME >LDYA L.FD.DEV >SYSCALL MKDEV @@ -120,15 +107,13 @@ Dev.Detect >STYA ARGS ldx DEVSLOT0x lda #A2osX.S.NIC sta A2osX.S,x - -* clc -.9 rts +* clc.9 + rts *-------------------------------------- Dev.ParseArgs >LDYA ARGS >STYA ZPArgPTR lda (ZPArgPTR) bne .1 - lda A2osX.RANDOM16 eor A2osX.TIMER16 sta DCB+S.DCB.NIC.MAC+3 @@ -138,7 +123,6 @@ Dev.ParseArgs >LDYA ARGS sta DCB+S.DCB.NIC.MAC+5 clc rts - .1 >PUSHW L.MAC5 >PUSHW L.MAC4 >PUSHW L.MAC3 @@ -150,7 +134,6 @@ Dev.ParseArgs >LDYA ARGS >LDYA ZPArgPtr >SYSCALL sscanf bcc .8 - lda #E.SYN sec .8 rts @@ -197,10 +180,8 @@ STATUS >STYA ZPIOCTL ldy #S.IOCTL.STATCODE lda (ZPIOCTL),y beq .1 - cmp #S.IOCTL.STATCODE.GETDIB bne STATUS.DCB - ldx #S.DIB-1 .HS 2C bit abs .1 ldx #3 @@ -211,12 +192,10 @@ STATUS >STYA ZPIOCTL iny lda (ZPIOCTL),y sta .3+2 - .2 lda DIB,x .3 sta $ffff,x SELF MODIFIED dex bpl .2 - clc rts @@ -224,9 +203,7 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB bne STATUS.9 stz DCB+S.DCB.NIC.LINK - ldx DEVSLOTx0 - lda /PP.LineST sta PacketPagePTR+1,x lda #PP.LineST @@ -236,7 +213,6 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB lda PacketPageDATA,x and #PP.LineST.LinkOK beq .1 - lda #S.DCB.NIC.LINK.OK tsb DCB+S.DCB.NIC.LINK @@ -244,24 +220,19 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB sta PacketPagePTR+1,x lda #PP.TestCTL sta PacketPagePTR,x - lda PacketPageDATA+1,x ldy PacketPageDATA,x and /PP.TestCTL.FDX beq .1 - lda #S.DCB.NIC.LINK.FD tsb DCB+S.DCB.NIC.LINK - .1 ldy #S.IOCTL.BUFPTR lda (ZPIOCTL),y sta .3+1 iny lda (ZPIOCTL),y sta .3+2 - ldx #S.DCB.NIC-1 - .2 lda DCB,x .3 sta $ffff,x SELF MODIFIED dex @@ -269,15 +240,13 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB clc rts - STATUS.9 lda #MLI.E.BADCTL sec - rts + rts *-------------------------------------- OPEN lda #S.DIB.S.OPENED bit DIB+S.DIB.S bne .9 - jsr CLOSE * ldx DEVSLOTx0 Done by CLOSE @@ -286,7 +255,6 @@ OPEN lda #S.DIB.S.OPENED sta PacketPagePTR+1,x lda #PP.RxCTL sta PacketPagePTR,x - lda /PP.RxCTL.LID+PP.RxCTL.RxOKA+PP.RxCTL.IA+PP.RxCTL.BroadcastA+PP.RxCTL.RuntA sta PacketPageDATA+1,x lda #PP.RxCTL.LID+PP.RxCTL.RxOKA+PP.RxCTL.IA+PP.RxCTL.BroadcastA+PP.RxCTL.RuntA @@ -307,7 +275,6 @@ OPEN lda #S.DIB.S.OPENED >STYA PacketPagePTR,x >LDYA DCB+S.DCB.NIC.MAC+4 >STYA PacketPageDATA,x - lda /PP.LineCTL sta PacketPagePTR+1,x lda #PP.LineCTL @@ -317,49 +284,37 @@ OPEN lda #S.DIB.S.OPENED sta PacketPageDATA+1,x lda #PP.LineCTL.LID+PP.LineCTL.SerRxOn+PP.LineCTL.SerTxOn+PP.LineCTL.10BaseT sta PacketPageDATA,x - lda #S.DIB.S.OPENED tsb DIB+S.DIB.S - clc rts - .9 lda #MLI.E.OPEN sec rts *-------------------------------------- CLOSE ldx DEVSLOTx0 - lda /PP.SelfCTL sta PacketPagePTR+1,x lda #PP.SelfCTL sta PacketPagePTR,x - lda /PP.SelfCTL.LID+PP.SelfCTL.RESET sta PacketPageDATA+1,x lda #PP.SelfCTL.LID+PP.SelfCTL.RESET sta PacketPageDATA,x - lda /PP.SelfST sta PacketPagePTR+1,x lda #PP.SelfST sta PacketPagePTR,x - ldy #0 - .1 lda PacketPageDATA+1,x lda PacketPageDATA,x and #PP.SelfST.InitDone - bne .8 - iny bne .1 - .8 lda #S.DIB.S.OPENED trb DIB+S.DIB.S - clc rts *-------------------------------------- @@ -369,7 +324,6 @@ READ php >STYA ZPIOCTL ldx DEVSLOTx0 - lda /PP.RxEvent sta PacketPagePTR+1,x lda #PP.RxEvent @@ -382,15 +336,12 @@ READ php lda RTDATA+1,x discard RxStatus lda RTDATA,x - lda RTDATA+1,x get RxLength ldy #S.IOCTL.BYTECNT+1 - sta (ZPIOCTL),y pha lsr pha - lda RTDATA,x dey sta (ZPIOCTL),y @@ -407,20 +358,16 @@ READ php sta Counter+1 pla - >SYSCALL2 getmem bcs READWRITE.99 - >STYA ZPBufPtr phx - phy ldy #S.IOCTL.BUFPTR+1 sta (ZPIOCTL),y dey pla sta (ZPIOCTL),y - ldx DEVSLOTx0 ldy #0 @@ -429,18 +376,15 @@ READ php bne .3 inc Counter+1 beq .8 - .3 lda RTDATA,x sta (ZPBufPtr),y iny - lda RTDATA+1,x sta (ZPBufPtr),y iny bne .2 inc ZPBufPtr+1 bra .2 - .8 pla hMem plp @@ -455,7 +399,6 @@ READWRITE.99 plp *-------------------------------------- WRITE php sei - >STYA ZPIOCTL ldx DEVSLOTx0 @@ -464,7 +407,6 @@ WRITE php sta TxCMD+1,x lda #PP.TxCMD.LID+PP.TxCMD.TxStartFULL sta TxCMD,x - ldy #S.IOCTL.BYTECNT+1 lda (ZPIOCTL),y sta TxLength+1,x @@ -493,17 +435,14 @@ WRITE php ldy PacketPageDATA,x bit /PP.BusST.Rdy4TxNOW beq READWRITE.9 - ldy #S.IOCTL.BUFPTR lda (ZPIOCTL),y sta ZPBufPtr iny lda (ZPIOCTL),y sta ZPBufPtr+1 - ldx #5 ldy #S.ETH.SRCMAC+5 - .10 lda DCB+S.DCB.NIC.MAC,x sta (ZPBufPtr),y dey @@ -518,20 +457,17 @@ WRITE php bne .2 inc Counter+1 beq .8 - .2 lda (ZPBufPtr),y sta RTDATA,x iny bne .3 inc ZPBufPtr+1 - .3 lda (ZPBufPtr),y sta RTDATA+1,x iny bne .1 inc ZPBufPtr+1 bne .1 - .8 plp clc rts diff --git a/DRV/X.SSC.DRV.S.txt b/DRV/X.SSC.DRV.S.txt index eac4d9d3..666dbaac 100644 --- a/DRV/X.SSC.DRV.S.txt +++ b/DRV/X.SSC.DRV.S.txt @@ -51,11 +51,9 @@ Dev.Detect >STYA ARGS >LDYA L.MSG.DETECT >SYSCALL puts - stz ZPArgPtr lda #$C1 sta ZPArgPtr+1 - .1 and #$0f tay lda A2osX.S,y @@ -70,13 +68,11 @@ Dev.Detect >STYA ARGS dex bpl .2 bra .4 - .3 inc FD.DEV.NAME+3 inc ZPArgPtr+1 no match, try next slot.... lda ZPArgPtr+1 cmp #$C8 bne .1 - >LDYA L.MSG.DETECT.KO >SYSCALL puts @@ -98,15 +94,12 @@ Dev.Detect >STYA ARGS clc adc #$8F sta DEVSLOTn08F - jsr Dev.ParseArgs bcs .9 - .8 >PUSHW L.FD.DEV.NAME >PUSHBI 2 >LDYA L.MSG.DETECT.OK >SYSCALL printf - >PUSHWI DRV.END >PUSHWI DRV.CS.END-DRV.CS.START >PUSHWI DRV.CS.START @@ -114,7 +107,6 @@ Dev.Detect >STYA ARGS >SYSCALL InsDrv bcs .9 >STYA FD.DEV+S.FD.DEV.DRVPTR - >PUSHW L.FD.DEV.NAME >LDYA L.FD.DEV >SYSCALL MKDEV @@ -127,22 +119,18 @@ Dev.ParseArgs >LDYA ARGS bne .1 clc rts - .1 stz ZPhParity stz ZPhControl - >LDYAI 256 >SYSCALL getmem bcs .2 >STYA ZPParityPtr stx ZPhParity - >LDYAI 256 >SYSCALL getmem .2 bcs .90 >STYA ZPControlPtr stx ZPhControl - >PUSHW ZPControlPtr >PUSHW ZPParityPtr >PUSHW L.DCB.STOP @@ -154,7 +142,6 @@ Dev.ParseArgs >LDYA ARGS >SYSCALL sscanf bcs .90 - .90 lda ZPhControl beq .91 >SYSCALL freemem @@ -175,7 +162,7 @@ MSG.DETECT .AS "Apple SSC (Super Serial Card,//c Serial Port) Driver" .DO SSCIRQ=1 .AS " (IRQ Enabled)" .FIN - .AZ "." + .AZ "." MSG.DETECT.OK .AZ "SSC Installed As Device : %s\r\n" MSG.DETECT.KO .AZ "No SSC Found." SSCANF.ARGS .AZ "%u,%d,%d,%s,%s" @@ -216,14 +203,11 @@ DRV.CS.START cld .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 @@ -232,7 +216,6 @@ STATUS jsr STATUS.CONTROL.Init sta (ZPBufPtr),y dey bpl .2 - clc rts @@ -240,7 +223,6 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB bne .3 ldy #S.DCB.COM-1 - .2 lda DCB,y sta (ZPBufPtr),y dey @@ -248,36 +230,27 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB clc rts - .3 cmp #S.IOCTL.STATCODE.EOF bne STATUS.9 lda DIB+S.DIB.S and #S.DIB.S.OPENED beq OPEN.E - .DO SSCIRQ=1 lda INBUF.TAIL eor INBUF.HEAD beq .4 NO DATA? eof = TRUE - lda #1 - .4 dec clc rts .ELSE - - - .FIN - .8 clc rts - STATUS.9 lda #MLI.E.BADCTL sec - rts + rts *-------------------------------------- CONTROL jsr STATUS.CONTROL.Init @@ -285,9 +258,7 @@ CONTROL jsr STATUS.CONTROL.Init lda (ZPIOCTL),y cmp #S.IOCTL.CTRLCODE.SETDCB bne STATUS.9 - ldy #S.DCB.COM-1 - .2 lda (ZPBufPtr),y sta DCB,y dey @@ -296,23 +267,17 @@ CONTROL jsr STATUS.CONTROL.Init OPEN lda DIB+S.DIB.S bit #S.DIB.S.OPENED beq OPEN.1 - OPEN.E lda #MLI.E.OPEN sec rts - OPEN.1 php sei - ldx DEVSLOTn08F - stz SSC.RESET-$8F,x lda #SSC.CTL.CLKINT+SSC.CTL.B9600+SSC.CTL.8D+SSC.CTL.1S+SSC.CMD.NOP sta SSC.CTL-$8F,x - .DO SSCIRQ=1 - lda #SSC.CMD.TEIRQ+SSC.CMD.TE+SSC.CMD.DTR sta SSC.CMD-$8F,x @@ -322,10 +287,8 @@ OPEN.1 php stz OUTBUF.TAIL .ELSE - lda #SSC.CMD.RIRQDIS+SSC.CMD.TE+SSC.CMD.DTR sta SSC.CMD-$8F,x - .FIN lda SSC.DATA-$8F,x discard any garbage byte @@ -340,7 +303,6 @@ OPEN.1 php *-------------------------------------- CLOSE php sei - ldx DEVSLOTn08F stz SSC.RESET-$8F,x @@ -353,67 +315,54 @@ CLOSE php *-------------------------------------- READ php sei - jsr READ.WRITE.Init stz ZPCount2 stz ZPCount2+1 - .10 inc ZPCount bne .11 inc ZPCount+1 - beq .8 - + beq .8 .11 .DO SSCIRQ=1 ldy INBUF.TAIL cpy INBUF.HEAD beq .2 - lda INBUF,y iny cpy #BUF.SIZE bne .1 - ldy #0 - .1 sty INBUF.TAIL sta (ZPBufPtr) inc ZPBufPtr bne .12 inc ZPBufPtr+1 - .12 inc ZPCount2 bne .10 inc ZPCount2+1 - bra .10 - + bra .10 .FIN - .2 lda SSC.STATUS-$8F,x bit #SSC.STATUS.nDSR true when 0 bne .9 bit #SSC.STATUS.RDRF incoming char? beq .8 - lda SSC.DATA-$8F,x sta (ZPBufPtr) inc ZPBufPtr bne .13 inc ZPBufPtr+1 - .13 inc ZPCount2 bne .2 inc ZPCount2+1 bra .2 - .8 lda ZPCount2 bne .81 ora ZPCount2+1 beq .99 lda ZPCount2 - .81 ldy #S.IOCTL.BYTECNT sta (ZPIOCTL),y iny @@ -422,51 +371,42 @@ READ php plp clc - rts - + rts .9 lda #MLI.E.IO .HS 2C BIT ABS .99 lda #E.NODATA plp sec - rts + rts *-------------------------------------- WRITE php sei - jsr READ.WRITE.Init - .2 inc ZPCount bne .3 inc ZPCount+1 beq .8 - .3 .DO SSCIRQ=1 lda SSC.STATUS-$8F,x bit #SSC.STATUS.nDSR true when 0 bne .9 - lda OUTBUF.HEAD cmp OUTBUF.TAIL Buffer Empty? bne .6 not empty, queue char lda SSC.STATUS-$8F,x - and #SSC.STATUS.TDRE Register Empty ? beq .5 not empty, queue char - lda (ZPBufPtr) yes, write directly to ACIA inc ZPBufPtr bne .4 inc ZPBufPtr+1 .4 sta SSC.DATA-$8F,x - bra .2 .5 lda OUTBUF.HEAD - .6 tay inc and #BUF.MASK @@ -474,37 +414,28 @@ WRITE php beq .99 Buffer Full!! sta OUTBUF.HEAD - lda (ZPBufPtr) inc ZPBufPtr bne .7 inc ZPBufPtr+1 - .7 sta OUTBUF,y - bra .2 - .ELSE + .ELSE .4 lda SSC.STATUS-$8F,x bit #SSC.STATUS.nDSR true when 0 bne .9 - bit #SSC.STATUS.TDRE Outgoing char? beq .4 - lda (ZPBufPtr) inc ZPBufPtr bne .5 inc ZPBufPtr+1 - .5 sta SSC.DATA-$8F,x - bra .2 .FIN - .8 plp clc - rts - + rts .9 lda #MLI.E.IO .HS 2C BIT ABS .99 lda #E.NODATA @@ -525,7 +456,6 @@ STATUS.CONTROL.Init lda (ZPIOCTL),y sta ZPBufPtr+1 - iny #S.IOCTL.BYTECNT lda (ZPIOCTL),y @@ -537,7 +467,6 @@ STATUS.CONTROL.Init lda (ZPIOCTL),y eor #$ff sta ZPCount+1 - rts *-------------------------------------- * IRQ Handler @@ -546,53 +475,41 @@ STATUS.CONTROL.Init .DO SSCIRQ=1 IRQ ldx DEVSLOTn08F lda SSC.STATUS-$8F,x - * and #SSC.STATUS.IRQ Useless bpl .9 IRQ from this device ? no, exit !!!!Applewin bug #308!!!! bit #SSC.STATUS.RDRF incoming char? - beq .2 - + beq .2 *------------ IRQ In pha - lda INBUF.HEAD tay save actual head for later - inc and #BUF.MASK - cmp INBUF.TAIL + cmp INBUF.TAIL beq .1 buffer full, discard and exit - sta INBUF.HEAD lda SSC.DATA-$8F,x read data to clear IRQ sta INBUF,y .1 pla - *------------ IRQ Out - .2 bit #SSC.STATUS.TDRE beq .8 no transmition possible.... ldy OUTBUF.TAIL something to transmit ? cpy OUTBUF.HEAD beq .8 in that case, HOW TO CLEAR IRQ ???? - lda OUTBUF,y sta SSC.DATA-$8F,x write data to clear IRQ - tya inc and #BUF.MASK - sta OUTBUF.TAIL - .8 clc rts - .9 sec rts .FIN diff --git a/DRV/X.U2.DRV.S.txt b/DRV/X.U2.DRV.S.txt index 12ee3557..1ee726e7 100644 --- a/DRV/X.U2.DRV.S.txt +++ b/DRV/X.U2.DRV.S.txt @@ -45,18 +45,14 @@ Dev.Detect >STYA ARGS >LDYA L.MSG.DETECT >SYSCALL puts - ldx #$70+$88 ldy #7 - .1 lda A2osX.S,y IO based detection, avoid scanning in Disk Controller IO!!!! bne .2 - lda #W5100.MR.RST sta W5100.MR,x lda #0 - .10 dec give some time.... bne .10 @@ -69,16 +65,13 @@ Dev.Detect >STYA ARGS lda W5100.MR,x cmp #W5100.MR.AI+W5100.MR.IND bne .2 - >AR.SELECT RTR - lda W5100.DR,x Get RTR HI cmp /2000 bne .2 lda W5100.DR,x Get RTR LO cmp #2000 beq .3 - .2 dec FD.DEV.NAME+3 txa sec @@ -86,27 +79,22 @@ Dev.Detect >STYA ARGS tax dey bne .1 - >LDYA L.MSG.DETECT.KO >SYSCALL puts lda #MLI.E.NODEV sec rts - .3 stx DEVSLOTx0 sty DEVSLOT0x lda #A2osX.S.NIC sta A2osX.S,y - jsr Dev.ParseArgs bcs .9 - .8 >PUSHW L.FD.DEV.NAME >PUSHBI 2 >LDYA L.MSG.DETECT.OK >SYSCALL printf - >PUSHWI DRV.END >PUSHWI DRV.CS.END-DRV.CS.START >PUSHWI DRV.CS.START @@ -114,16 +102,13 @@ Dev.Detect >STYA ARGS >SYSCALL InsDrv bcs .9 >STYA FD.DEV+S.FD.DEV.DRVPTR - >PUSHW L.FD.DEV.NAME >LDYA L.FD.DEV >SYSCALL MKDEV bcs .9 - ldx DEVSLOT0x lda #A2osX.S.NIC sta A2osX.S,x - * clc .9 rts *-------------------------------------- @@ -131,7 +116,6 @@ Dev.ParseArgs >LDYA ARGS >STYA ZPArgPTR lda (ZPArgPTR) bne .1 - lda A2osX.RANDOM16 eor A2osX.TIMER16 sta DCB+S.DCB.NIC.MAC+3 @@ -141,7 +125,6 @@ Dev.ParseArgs >LDYA ARGS sta DCB+S.DCB.NIC.MAC+5 clc rts - .1 >PUSHW L.MAC5 >PUSHW L.MAC4 >PUSHW L.MAC3 @@ -153,7 +136,6 @@ Dev.ParseArgs >LDYA ARGS >LDYA ZPArgPtr >SYSCALL sscanf bcc .8 - lda #E.SYN sec .8 rts @@ -176,7 +158,7 @@ FD.DEV .DA #S.FD.T.CDEV .DA 0 BUSPTR .BS 2 DRVPTR .DA 0 DCBPTR - .DA 0 BUFPTR + .DA 0 BUFPTR FD.DEV.NAME .AZ "ETH7" *-------------------------------------- * Driver Code @@ -213,10 +195,8 @@ STATUS >STYA ZPIOCTL ldy #S.IOCTL.STATCODE lda (ZPIOCTL),y beq .1 - cmp #S.IOCTL.STATCODE.GETDIB bne STATUS.DCB - ldx #S.DIB-1 .HS 2C bit abs .1 ldx #3 @@ -227,15 +207,12 @@ STATUS >STYA ZPIOCTL iny lda (ZPIOCTL),y sta .3+2 - .2 lda DIB,x .3 sta $ffff,x SELF MODIFIED dex bpl .2 - clc rts - STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB bne STATUS.9 @@ -245,9 +222,7 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB iny lda (ZPIOCTL),y sta .3+2 - ldx #S.DCB.NIC-1 - .2 lda DCB,x .3 sta $ffff,x SELF MODIFIED dex @@ -255,10 +230,9 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB clc rts - STATUS.9 lda #MLI.E.BADCTL sec - rts + rts *-------------------------------------- .DO U2AI=1 CONTROL >STYA ZPIOCTL @@ -267,21 +241,17 @@ CONTROL >STYA ZPIOCTL lda (ZPIOCTL),y cmp #S.IOCTL.CTRLCODE.SETDCB bne STATUS.9 - .1 ldy #S.IOCTL.BUFPTR lda (ZPIOCTL),y sta .2+1 iny lda (ZPIOCTL),y sta .2+2 - ldx #S.DCB.NIC-1 - .2 lda $ffff,x SELF MODIFIED sta DCB,x dex bpl .2 - .FIN *-------------------------------------- OPEN lda #S.DIB.S.OPENED @@ -291,7 +261,6 @@ OPEN lda #S.DIB.S.OPENED lda #MLI.E.OPEN sec rts - .10 jsr CLOSE * ldx DEVSLOTx0 Done by CLOSE @@ -300,7 +269,6 @@ OPEN lda #S.DIB.S.OPENED sta W5100.MR,x >AR.SELECT SHAR - ldy #0 .1 lda DCB+S.DCB.NIC.MAC,y @@ -325,41 +293,32 @@ OPEN lda #S.DIB.S.OPENED .DO U2AI=1 >AR.SELECT S0.TOS stz W5100.DR,x - * >AR.SELECT S0.TTL lda #K.IP.TTL sta W5100.DR,x >AR.SELECT GAR ldy #0 - .2 lda DCB+S.DCB.NIC.GW,y sta W5100.DR,x iny cpy #4 bne .2 - * >AR.SELECT SUBR Implicit, next to GAR - ldy #0 - .3 lda DCB+S.DCB.NIC.MASK,y sta W5100.DR,x iny cpy #4 bne .3 - >AR.SELECT SIPR - ldy #0 - .4 lda DCB+S.DCB.NIC.IP,y sta W5100.DR,x iny cpy #4 bne .4 .FIN - >AR.SELECT S0.CR lda #W5100.AR.S0.CR.OPEN sta W5100.DR,x @@ -375,11 +334,9 @@ CLOSE ldx DEVSLOTx0 lda $C019 we can use VBL as we are not on //c .1 eor $C019 bpl .1 - lda $C019 .2 eor $C019 bpl .2 - clc rts *-------------------------------------- @@ -415,18 +372,15 @@ READ php .DO U2AI=1 ldy #0 - .10 lda W5100.DR,x sta RX.IP,y iny cpy #4 - bne .10 - + bne .10 ldy W5100.DR,x get RX.Size HI sty RXTX.Size+1 lda W5100.DR,x get RX.Size LO sta RXTX.Size - clc adc #S.IP pha @@ -454,7 +408,6 @@ READ php sta (ZPIOCTL),y ldy #S.IOCTL.BYTECNT - .DO U2AI=1 lda RXTX.Size sta (ZPIOCTL),y @@ -464,7 +417,6 @@ READ php clc adc #6 Total Size : Add 6 bytes for IPRAW sta RXTX.Size - iny lda RXTX.Size+1 @@ -480,7 +432,6 @@ READ php sta (ZPIOCTL),y eor #$ff sta Counter - iny lda RXTX.Size+1 @@ -489,11 +440,9 @@ READ php eor #$ff sta Counter+1 .FIN - .DO U2AI=1 ldx #3 ldy #S.IP.SRC+3 - .11 lda RX.IP,x sta (ZPBufPtr),y dey @@ -511,7 +460,6 @@ READ php bne .3 inc Counter+1 beq .4 - .3 lda W5100.DR,x sta (ZPBufPtr),y iny @@ -528,7 +476,6 @@ READ php lda Offset+1 adc RXTX.Size+1 - sta W5100.DR,x write HI pla sta W5100.DR,x write LO @@ -545,9 +492,7 @@ READ php *-------------------------------------- WRITE php sei - >STYA ZPIOCTL - ldy #S.IOCTL.BYTECNT lda (ZPIOCTL),y .DO U2AI=1 @@ -566,11 +511,9 @@ WRITE php sta RXTX.Size+1 eor #$ff sta Counter+1 - ldx DEVSLOTx0 >AR.SELECT S0.TX.FSR - lda W5100.DR,x get send size HI ldy W5100.DR,x LO cpy RXTX.Size @@ -578,18 +521,15 @@ WRITE php bcs WRITE.1 lda #E.NODATA - plp sec rts - WRITE.1 ldy #S.IOCTL.BUFPTR lda (ZPIOCTL),y sta ZPBufPtr iny lda (ZPIOCTL),y sta ZPBufPtr+1 - .DO U2AI=1 >AR.SELECT S0.DIPR ldy #S.IP.DST @@ -599,7 +539,6 @@ WRITE.1 ldy #S.IOCTL.BUFPTR iny cpy #S.IP.DST+4 bne .1 - >AR.SELECT S0.PROTO ldy #S.IP.PROTOCOL lda (ZPBufPtr),y @@ -607,7 +546,6 @@ WRITE.1 ldy #S.IOCTL.BUFPTR .ELSE ldy #S.ETH.SRCMAC+5 ldx #5 - .1 lda DCB+S.DCB.NIC.MAC,x sta (ZPBufPtr),y dey @@ -616,7 +554,6 @@ WRITE.1 ldy #S.IOCTL.BUFPTR ldx DEVSLOTx0 .FIN - >AR.SELECT S0.TX.WR lda W5100.DR,x Get HI ldy W5100.DR,x Get LO @@ -627,39 +564,32 @@ WRITE.1 ldy #S.IOCTL.BUFPTR tya sta W5100.AR+1,x Write LO sta Offset - .DO U2AI=1 ldy #S.IP .ELSE ldy #0 .FIN - .2 inc Counter bne .3 inc Counter+1 beq .8 - .3 lda (ZPBufPtr),y sta W5100.DR,x iny bne .2 inc ZPBufPtr+1 bne .2 - .8 >AR.SELECT S0.TX.WR - lda Offset clc adc RXTX.Size pha save LO - lda Offset+1 adc RXTX.Size+1 sta W5100.DR,x write HI pla sta W5100.DR,x write LO - >AR.SELECT S0.CR lda #W5100.AR.S0.CR.SEND sta W5100.DR,x diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index 4a833b39..3aae7970 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -493,13 +493,6 @@ S.FD.PIPE.Size .EQ 12 * S.FD.PIPE .EQ 14 *-------------------------------------- -* Task Function Indexes -*-------------------------------------- -PS.INIT .EQ 0 -PS.RUN .EQ 2 -PS.DOEVENT .EQ 4 -PS.QUIT .EQ 6 -*-------------------------------------- * PS STRUCT *-------------------------------------- S.PS.F .EQ 0 @@ -510,6 +503,10 @@ S.PS.F.EVENT .EQ %00000010 S.PS.F.NOHUP .EQ %00000001 S.PS.S .EQ 1 +S.PS.S.INIT .EQ 0 +S.PS.S.RUN .EQ 2 +S.PS.S.DOEVENT .EQ 4 +S.PS.S.QUIT .EQ 6 S.PS.PPID .EQ 2 S.PS.PID .EQ 3 diff --git a/INC/APPLESOFT.I.txt b/INC/APPLESOFT.I.txt index 741f0866..4ac059fc 100644 --- a/INC/APPLESOFT.I.txt +++ b/INC/APPLESOFT.I.txt @@ -18,7 +18,7 @@ SGNCPR .EQ $AB FLAGS OPP SIGN IN FP ROUT FAC.EXTENSION .EQ $AC FAC EXTENSION BYTE CHRGET .EQ $B1 -> $C8 CHRGOT .EQ $B7 -TXTPTR .EQ $B8 +TXTPTR .EQ $B8 *-------------------------------------- BASICLD .EQ $E000 ENTER BASIC COLD BASICWM .EQ $E003 RE-ENTER BASIC WARM diff --git a/INC/MACROS.I.txt b/INC/MACROS.I.txt index ff38a512..9b1a799c 100644 --- a/INC/MACROS.I.txt +++ b/INC/MACROS.I.txt @@ -289,7 +289,6 @@ FPU.FOUT .EQ 58 PrintF .MA INCW.G >INC.G ]1 bne :1 - iny lda (pData),y inc @@ -309,10 +308,8 @@ FPU.FOUT .EQ 58 PrintF bne :1 dec sta (pData),y - iny lda (pData),y - :1 dec sta (pData),y .EM diff --git a/INC/MLI.E.I.txt b/INC/MLI.E.I.txt index 9a986d9b..0dcebb35 100644 --- a/INC/MLI.E.I.txt +++ b/INC/MLI.E.I.txt @@ -4,10 +4,10 @@ NEW *-------------------------------------- *$00 - No Error MLI.E.BADCALL .EQ $01 Bad Call Number -*MLI.E.BADCNT .EQ $04 Bad Parameter Count +MLI.E.BADCNT .EQ $04 Bad Parameter Count *MLI.E.BUSERR .EQ $06 Communications Error MLI.E.BADCTL .EQ $21 Invalid Status Code -*MLI.E.IRQFULL .EQ $25 Interrupt Table Full +MLI.E.IRQFULL .EQ $25 Interrupt Table Full MLI.E.IO .EQ $27 I/O Error MLI.E.NODEV .EQ $28 No Device Connected MLI.E.WRTPROT .EQ $2B Write Protected @@ -28,8 +28,8 @@ MLI.E.EOF .EQ $4C End of File, No More Data MLI.E.BEYEOF .EQ $4D Beyond EOF MLI.E.LOCKED .EQ $4E File Access Error, File Locked MLI.E.OPEN .EQ $50 File Already Open -* .EQ $51 Directory Structure Damaged -* .EQ $53 Invalid Parameter +MLI.E.BADDIR .EQ $51 Directory Structure Damaged +MLI.E.INVPARAM .EQ $53 Invalid Parameter * .EQ $55 Too Many Volumes * .EQ $56 Bad Buffer Address * .EQ $57 Duplicate Volume diff --git a/LIB/LIBBLKDEV.S.txt b/LIB/LIBBLKDEV.S.txt index 8a9a2ea1..f843c9d8 100644 --- a/LIB/LIBBLKDEV.S.txt +++ b/LIB/LIBBLKDEV.S.txt @@ -68,8 +68,8 @@ CS.START cld .DA D2TrkRNIB .DA D2TrkW16s .DA D2TrkWNIB -L.TrkWriter .DA TrkWriter -L.ProDOS.Boot .DA ProDOS.Boot +L.TrkWriter .DA TrkWriter +L.ProDOS.Boot .DA ProDOS.Boot .DA 0 *-------------------------------------- LIB.LOAD @@ -93,20 +93,16 @@ GetProDOSCatSize >PULLB VolDirHdr.Options >PULLB VolDirHdr.CatSize >PULLW VolDirHdr.TB - GetProDOSCatSize.I lda VolDirHdr.TB Get DevSizeLo clc for now, no partial bitmap blk to add - tay DevSize is xxxxxxxx00000000 ? - beq .1 + beq .1 sec - .1 lda VolDirHdr.TB+1 Get DevSizeHI bit #$0f DevSize is xxxx000000000000 ? beq .2 sec - .2 php lsr lsr @@ -138,45 +134,34 @@ GetProDOSCatSize.I *\-------------------------------------- BuildProDOSCat >PULLW ZPPtr1 DstBuf >PULLW ZPPtr2 VolName - >PULLB VolDirHdr.Options >PULLB VolDirHdr.CatSize inc inc sta VolDirHdr.BMPtr >PULLW VolDirHdr.TB - ldx #3 - .1 lda DATELO,x sta VolDirHdr.CT,x dex bpl .1 - * Blk 0 : ProDOS Boot Code - >LDYA L.ProDOS.Boot >STYA ZPPtr3 - ldy #0 ldx #2 2 pages - .2 lda (ZPPtr3),y sta (ZPPtr1),y iny bne .2 - inc ZPPtr3+1 inc ZPPtr1+1 - dex bne .2 - * Blk 1 : (SOS boot code) inc ZPPtr1+1 inc ZPPtr1+1 - * Blk 2 : First Directory Block * ldy #0 @@ -187,41 +172,31 @@ BuildProDOSCat >PULLW ZPPtr1 DstBuf lda #3 next block ldx VolDirHdr.CatSize - dex bne .30 txa - .30 sta VolDirHdr.next * stz VolDirHdr.next+1 - .3 lda (ZPPtr2),y beq .31 iny sta VolDirHdr.Name,y cpy #15 bne .3 - .31 tya * and #$0f make sure 15 bytes max ora #$F0 Volume Directory Header sta VolDirHdr.Name - ldy #VolDirHdr.size-1 - .4 lda VolDirHdr,y sta (ZPPtr1),y dey bpl .4 - * Blk 3...n : additional Directory Blocks - lda #3 Actual Block ID ldy #2 next blk ptr - .41 inc ZPPtr1+1 inc ZPPtr1+1 Next Block - dex bmi .40 @@ -233,25 +208,19 @@ BuildProDOSCat >PULLW ZPPtr1 DstBuf plx bne .42 txa - .42 sta (ZPPtr1),y bra .41 - * BitMap Blocks : 0=Used 1=free .40 jsr GetProDOSCatSize.I X=blk used for boot/dir/bitmap - lda VolDirHdr.TB eor #$ff sta Count lda VolDirHdr.TB+1 eor #$ff sta Count+1 - ldy #0 - .50 lda #%10000000 - .5 dex bmi .8 @@ -263,7 +232,6 @@ BuildProDOSCat >PULLW ZPPtr1 DstBuf bne .5 iny bne .50 - .7 lda #%10000000 .8 inc Count @@ -281,9 +249,8 @@ BuildProDOSCat >PULLW ZPPtr1 DstBuf bne .7 inc ZPPtr1+1 bra .7 - .88 clc - rts + rts */-------------------------------------- *\-------------------------------------- D2TrkRNIB @@ -324,41 +291,29 @@ D2TrkWNIB >PULLB DrvSlt lda Status Lib is busy....? beq .10 - lda DrvSlt cmp DrvSltInUse resume previous access ? - - .10 lda DEVNUM last drive accessed by ProDOS and #$F0 only DSSS pha jsr CheckDiskII was it a DISK II ? bcs .1 no, no need to check if spinning - pla pha jsr DrvSpinCheck bcc .1 not spinning....continue pla sta D2DrvOff,x - lda #Status.PrvDrvOff jmp SetStatusAndExit - .1 pla - cmp DrvSlt * beq - lda DrvSlt jsr DrvTrkSelect bcs .9 - ldy #TrkWriter.Size - - - clc .9 rts @@ -374,7 +329,6 @@ SetStatusAndExit * Y=target Track Number * 4 *-------------------------------------- DrvTrkSelect jsr DrvSelect - clc rts @@ -387,37 +341,30 @@ CheckDiskII and #$70 only 0SSS lsr ora #$C0 make Cn sta .2+2 - ldx #3 4 bytes to check - .1 ldy DiskII.OFS,x -.2 lda $C000,y Self Modified +.2 lda $C000,y Self Modified cmp DiskII.SIG,x bne .9 dex bpl .1 clc all bytes match, Disk II rts - .9 sec rts *-------------------------------------- * A=DSSS0000 *-------------------------------------- DrvSpinCheck jsr DrvSelect - ldy #0 lda D2RData,x - .1 cmp D2RData,x bne .8 spinning dey bne .1 - clc CC:not spinning rts - .8 sec rts *-------------------------------------- @@ -430,7 +377,6 @@ DrvSelect pha asl adc #D2DrvSel1 sta .1+1 - .1 lda D2DrvSel1,x Drv 1/2 select lda D2ReadMode,x Make sure readmode @@ -455,32 +401,24 @@ TrkWriter.Start lda D2ReadMode,x .1 lda (ZPPtr1),y (5) as NibbleBuf is page alligned, no page crossing beq .8 (2)(3 if Z) END OF TRACK - * nobody will never try to write 00000000, right? - cmp #$80 (2) if CC, it is a sync byte - ora #$80 (2) make sure Bit7 high - sta D2WriteMode,x (5) ora D2WShift,x (4) keep C unmodified - iny (2) bne .2 (2)(3 if nz) - inc ZPPtr1+1 (5) bcs .1 (2)(3 if cs) regular 32us byte * 32us Byte,next page : 5+2 (beq failed) +2+2+5+4+2+2 (bne failed) + 5 + 3 (bcs succeeded) = 32 - nop (2) Sync 40us byte : add 8 cycles nop (2) nop (2) bra .1 (3) * 40us Byte,next page : 5+2 (beq failed) +2+2+5+4+2+2 (bne failed) + 5 + 2 (bcs failed) +2+2+2+3 = 40 - .2 nop (2) nop (2) @@ -502,11 +440,9 @@ TrkWriter.Start lda D2ReadMode,x plp clc rts - .9 lda #$2B Write Protected sec rts - TrkWriter.Size .EQ *-TrkWriter.Start .EP *-------------------------------------- @@ -548,7 +484,7 @@ ProDOS.Boot .HS 01.38.b0.03.4c.32.a1.86.43.c9.03.08.8a.29.70.4a VolDirHdr VolDirHdr.Prev .BS 2 pointer to previous block VolDirHdr.Next .BS 2 pointer to next block -VolDirHdr.Name .BS 16 +VolDirHdr.Name .BS 16 .HS 00.00.00.00.00.00.00.00 VolDirHdr.CT .BS 4 Creation time .HS 01.00.C3.27.0D version/min version/access/EL/EPB diff --git a/LIB/LIBCRYPT.S.txt b/LIB/LIBCRYPT.S.txt index ab4ff151..21b3b18a 100644 --- a/LIB/LIBCRYPT.S.txt +++ b/LIB/LIBCRYPT.S.txt @@ -143,18 +143,14 @@ MD5 >PULLW ZPDataPtr >LDYA ZPDataPtr >SYSCALL2 strlen >STYA ZPDataLen - .1 jsr MD5Init bcs .9 - pha save MD5 Context hMem jsr MD5Update.I jsr MD5Finalize.I - pla >SYSCALL2 FreeMem Free MD5 Context - clc .9 rts */-------------------------------------- @@ -170,24 +166,18 @@ MD5 >PULLW ZPDataPtr MD5Init >LDYAI S.MD5 >SYSCALL2 getmem bcs .9 - >STYA ZPCtxPtr - ldy #0 - .1 lda MD5.ABCDINIT,y sta (ZPCtxPtr),y iny cpy #S.MD5.BITCOUNT bne .1 - lda #0 - .2 sta (ZPCtxPtr),y iny cpy #S.MD5 Includes S.MD5.FINALIZED Flag bne .2 - txa clc .9 rts @@ -207,71 +197,55 @@ MD5Update >SYSCALL2 GetMemPtr get MD5 Context >STYA ZPCtxPtr >PULLW ZPDataPtr get DATA >PULLW ZPDataLen get LEN - MD5Update.I ldy #S.MD5.FINALIZED lda (ZPCtxPtr),y beq .1 - sec rts - .1 lda ZPDataLen+1 More than 256 Bytes remaining to hash ? bne .3 yes lda ZPDataLen bne .2 Len = O ? clc All data processed rts - .2 cmp #64 More than 64 Bytes remaining to hash ? bcc .50 yes - .3 lda #64 .50 sta ZPChunkLen Save Chunk Len jsr MD5UpdateBitCount - ldy #0 - .51 lda (ZPDataPtr),y Load Buffer with data sta MD5.BUFFER64,y iny cpy ZPChunkLen bne .51 - cpy #64 Full 64 Bytes DATA ? beq .58 - * Append "$80" & Padding & original size lda #$80 no, Append $80 sta MD5.BUFFER64,y - lda #0 - .52 iny Pad with 0 to 64 cpy #64 beq .53 sta MD5.BUFFER64,y bra .52 - .53 ldy #S.MD5.EXTRABIT Mark MD5 Context as Appended lda #$80 sta (ZPCtxPtr),y lda ZPChunkLen cmp #56 Enough room for BITCOUNT ? bcs .58 no - jsr MD5AppendBitCount - .58 jsr MD5Transform jsr MD5UpdateABCD0 - .8 lda ZPDataLen Substract Bytes processed from LEN sec sbc ZPChunkLen get back chunk Len sta ZPDataLen bcs .81 dec ZPDataLen+1 - .81 lda ZPDataPtr Add Bytes processed to DATA clc adc ZPChunkLen @@ -290,24 +264,18 @@ MD5Update.I ldy #S.MD5.FINALIZED * ## RETURN VALUE *\-------------------------------------- MD5Finalize pha - >SYSCALL2 GetMemPtr >STYA ZPCtxPtr get MD5 Context - >PULLW ZPHashPtr - jsr MD5Finalize.I pla >SYSCALL2 FreeMem rts - MD5Finalize.I ldy #S.MD5.FINALIZED lda (ZPCtxPtr),y bne .11 - jsr MD5ExtraChunk - .11 ldy #S.MD5.ABCD0 .1 lda (ZPCtxPtr),y @@ -320,9 +288,7 @@ MD5Finalize.I ldy #S.MD5.FINALIZED sta (ZPHashPtr) inc ZPHashPtr bne .2 - inc ZPHashPtr+1 - .2 lda (ZPCtxPtr),y and #$0F tax @@ -330,16 +296,12 @@ MD5Finalize.I ldy #S.MD5.FINALIZED sta (ZPHashPtr) inc ZPHashPtr bne .3 - inc ZPHashPtr+1 - .3 iny cpy #S.MD5.ABCD0+16 bne .1 - lda #0 sta (ZPHashPtr) - clc .9 rts *-------------------------------------- @@ -398,7 +360,7 @@ MD5UpdateBitCount cpy #7 bne .1 -.8 rts +.8 rts *-------------------------------------- * MD5ExtraChunk * In : @@ -461,7 +423,6 @@ MD5Transform ldy #15 init ABCD Chunk with Context ABCD0 bpl .1 stz MD5.i Start Proceed 0 to 63 bytes - lda #0 lda MD5.i .2 lsr @@ -476,7 +437,6 @@ MD5Transform ldy #15 init ABCD Chunk with Context ABCD0 lda MD5.i cmp #64 bne .2 - rts *-------------------------------------- MD5.XXXX jmp (J.MD5.XXXX,x) @@ -505,7 +465,6 @@ MD5.XXXX.END >MOV32 MD5.D,MD5.DTemp >MOV32 MD5.C,MD5.D >MOV32 MD5.B,MD5.C >ADC32 MD5.A,MD5.F,MD5.F - lda MD5.i asl asl @@ -529,7 +488,6 @@ MD5.XXXX.END >MOV32 MD5.D,MD5.DTemp tay ldx #0 clc - .2 lda MD5.BUFFER64,y ADC32 M[g],MD5.F,MD5.F adc MD5.F,x sta MD5.F,x diff --git a/LIB/LIBETALK.S.AARP.txt b/LIB/LIBETALK.S.AARP.txt index d3e59011..361667b6 100644 --- a/LIB/LIBETALK.S.AARP.txt +++ b/LIB/LIBETALK.S.AARP.txt @@ -26,7 +26,6 @@ AARP.Clear ldx #K.AARPCACHE.SIZE*S.AARPCACHE *\-------------------------------------- AARP.Query >PULLW ZPPtrADDR ADDR >PULLW ZPPtrMAC MAC - ldy #3 .1 lda (ZPPtrADDR),y sta AARP.TmpCache+S.AARPCACHE.ADDR,y @@ -34,14 +33,13 @@ AARP.Query >PULLW ZPPtrADDR ADDR bpl .1 jsr AARP.QUERY.I bcs .9 - ldy #5 .2 lda AARP.TmpCache+S.AARPCACHE.MAC,y sta (ZPPtrMAC),y dey bpl .2 clc -.9 rts +.9 rts */-------------------------------------- * # AARP.Add * Add a static AARP cache record @@ -51,7 +49,6 @@ AARP.Query >PULLW ZPPtrADDR ADDR *\-------------------------------------- AARP.Add >PULLW ZPPtrADDR ADDR >PULLW ZPPtrMAC MAC - stz AARP.TmpCache+S.AARPCACHE.TTL stz AARP.TmpCache+S.AARPCACHE.TTL+1 @@ -61,7 +58,6 @@ AARP.Add >PULLW ZPPtrADDR ADDR sta AARP.TmpCache+S.AARPCACHE.ADDR,y dey bpl .1 - ldy #5 .2 lda (ZPPtrMAC),y @@ -70,20 +66,17 @@ AARP.Add >PULLW ZPPtrADDR ADDR bpl .2 lda #S.AARPCACHE.S.RESOLVED+S.AARPCACHE.S.STATIC - AARP.ADD.I sta AARP.TmpCache jsr AARP.FIND.BY.ADDR bcc .1 jsr AARP.FIND.FREE - .1 ldy #S.AARPCACHE-1 .2 lda AARP.TmpCache,y sta (ZPCachePtr),y dey bpl .2 - clc rts */-------------------------------------- @@ -101,7 +94,6 @@ AARP.GetCache >LDYA L.AARP.CACHE *-------------------------------------- AARP.AddFromFrameInPtr ldy #S.DDP2.SRC.NET - lda (ZPFrameInPtr),y sta AARP.TmpCache+S.AARPCACHE.ADDR+1,x iny @@ -111,21 +103,17 @@ AARP.AddFromFrameInPtr iny lda (ZPFrameInPtr),y sta AARP.TmpCache+S.AARPCACHE.ADDR+3,x - ldy #S.ETH.SRCMAC+5 ldx #5 - .2 lda (ZPFrameInPtr),y sta AARP.TmpCache+S.AARPCACHE.MAC,x dey dex bpl .2 - lda #K.AARP.TTL sta AARP.TmpCache+S.AARPCACHE.TTL lda /K.AARP.TTL sta AARP.TmpCache+S.AARPCACHE.TTL+1 - lda #S.AARPCACHE.S.RESOLVED jmp AARP.ADD.I *-------------------------------------- @@ -140,55 +128,44 @@ AARP.IN bra .10 dey dex bpl .1 - .10 ldy #S.AARP.OPERATION+1 HI byte lda (ZPFrameInPtr),y cmp #S.AARP.OPERATION.REQ beq AARP.IN.REQ - cmp #S.AARP.OPERATION.REP beq AARP.IN.REP - AARP.IN.EXIT lda hFrameIn beq .8 stz hFrameIn >SYSCALL2 FreeMem .8 clc rts - AARP.IN.REQ ldy #S.AARP.SPA+3 ldx #3 - .1 lda (ZPFrameInPtr),y sta AARP.REP.TPA,x dey dex bpl .1 - ldy #S.AARP.SHA+5 ldx #5 - .2 lda (ZPFrameInPtr),y sta AARP.REP.DSTMAC,x sta AARP.REP.THA,x dey dex bpl .2 - >LDYA L.AARP.REP jsr AARP.Send - bra AARP.IN.EXIT AARP.IN.REP lda #K.AARP.TTL sta AARP.TmpCache+S.AARPCACHE.TTL lda /K.AARP.TTL sta AARP.TmpCache+S.AARPCACHE.TTL+1 - ldy #S.AARP.SPA+3 ldx #3 - .1 lda (ZPFrameInPtr),y sta AARP.TmpCache+S.AARPCACHE.ADDR,x dey @@ -197,15 +174,12 @@ AARP.IN.REP lda #K.AARP.TTL ldy #S.AARP.SHA+5 ldx #5 - .2 lda (ZPFrameInPtr),y sta AARP.TmpCache+S.AARPCACHE.MAC,x dey dex bpl .2 - lda #S.AARPCACHE.S.RESOLVED - jsr AARP.ADD.I jmp AARP.IN.EXIT *-------------------------------------- @@ -214,22 +188,18 @@ AARP.QUERY.I jsr AARP.FIND.BY.ADDR lda (ZPCachePtr) get status... bpl .9 Pending... - ldy #S.AARPCACHE.MAC - .2 lda (ZPCachePtr),y sta AARP.TmpCache,y iny cpy #S.AARPCACHE.MAC+6 bne .2 - ldy #S.AARPCACHE.TTL lda #K.AARP.TTL sta (ZPCachePtr),y iny lda /K.AARP.TTL sta (ZPCachePtr),y - clc rts @@ -239,18 +209,14 @@ AARP.QUERY.I jsr AARP.FIND.BY.ADDR sta AARP.REQ.TPA,x dex bpl .4 - >LDYA L.AARP.REQ jsr AARP.Send bcs .99 - lda #K.AARP.PENDING.TTL sta AARP.TmpCache+S.AARPCACHE.TTL stz AARP.TmpCache+S.AARPCACHE.TTL+1 - lda #S.AARPCACHE.S.PENDING jsr AARP.ADD.I - .9 lda #ERR.AARP.PENDING sec .99 rts @@ -261,30 +227,25 @@ AARP.FIND.BY.ADDR lda #K.AARPCACHE.SIZE sta TmpOffset - .1 lda (ZPCachePtr) beq .3 ldx #3 ldy #S.AARPCACHE.ADDR+3 - .2 lda AARP.TmpCache+S.AARPCACHE.ADDR,x cmp (ZPCachePtr),y bne .3 dey dex bpl .2 - clc rts - .3 lda ZPCachePtr clc adc #S.AARPCACHE sta ZPCachePtr bcc .8 inc ZPCachePtr+1 - .8 dec TmpOffset bne .1 sec @@ -298,11 +259,9 @@ AARP.FIND.FREE >LDYA L.AARP.CACHE sta TmpDWord+1 ldx #K.AARPCACHE.SIZE - .1 lda (ZPCachePtr) beq .8 bpl .6 - ldy #S.AARPCACHE.TTL lda (ZPCachePtr),y sec @@ -311,13 +270,11 @@ AARP.FIND.FREE >LDYA L.AARP.CACHE lda (ZPCachePtr),y sbc TmpDWord+1 bcc .6 - lda (ZPCachePtr),y sta TmpDWord+1 dey lda (ZPCachePtr),y sta TmpDWord - >LDYA ZPCachePtr >STYA ZPTmpPtr1 save lowest TTL slot ... @@ -327,28 +284,22 @@ AARP.FIND.FREE >LDYA L.AARP.CACHE sta ZPCachePtr bcc .7 inc ZPCachePtr+1 - .7 dex bne .1 - >LDYA ZPTmpPtr1 >STYA ZPCachePtr lda #0 sta (ZPCachePtr) - .8 clc rts *-------------------------------------- AARP.EXPIRE >LDYA L.AARP.CACHE >STYA ZPCachePtr - ldx #K.AARPCACHE.SIZE - .1 lda (ZPCachePtr) beq .2 and #S.AARPCACHE.S.STATIC bne .2 - ldy #S.AARPCACHE.TTL sec lda (ZPCachePtr),y @@ -359,17 +310,14 @@ AARP.EXPIRE >LDYA L.AARP.CACHE sbc #0 sta (ZPCachePtr),y bcs .2 - lda #0 sta (ZPCachePtr) - .2 lda ZPCachePtr clc adc #S.AARPCACHE sta ZPCachePtr bcc .3 inc ZPCachePtr+1 - .3 dex bne .1 rts diff --git a/LIB/LIBETALK.S.CFG.txt b/LIB/LIBETALK.S.CFG.txt index 5868b433..3dca4443 100644 --- a/LIB/LIBETALK.S.CFG.txt +++ b/LIB/LIBETALK.S.CFG.txt @@ -3,9 +3,7 @@ NEW .LIST OFF *-------------------------------------- CFG.SET >PULLW ZPTmpPtr1 ETKCFG - ldy #S.ETKCFG-1 - .1 lda (ZPTmpPtr1),y sta ETKCFG,y dey @@ -20,7 +18,6 @@ CFG.SET >PULLW ZPTmpPtr1 ETKCFG sta AARP.REP.SHA,x dex bpl .2 - clc rts *-------------------------------------- diff --git a/LIB/LIBETALK.S.FRM.txt b/LIB/LIBETALK.S.FRM.txt index 444be527..c2df18b4 100644 --- a/LIB/LIBETALK.S.FRM.txt +++ b/LIB/LIBETALK.S.FRM.txt @@ -4,12 +4,10 @@ NEW *-------------------------------------- *-------------------------------------- FRM.Send ldx #3 - .1 lda ZPFrameOutPtr,x Get Frame Ptr & Len sta IOCTL+S.IOCTL.BUFPTR,x dex bpl .1 - FRM.Send.IOCTL >PUSHW L.IOCTL >PUSHBI IOCTL.WRITE lda ETKCFG+S.NETCFG.DevID diff --git a/LIB/LIBETALK.S.txt b/LIB/LIBETALK.S.txt index a6522a29..6378a1b9 100644 --- a/LIB/LIBETALK.S.txt +++ b/LIB/LIBETALK.S.txt @@ -47,10 +47,8 @@ CS.START cld *-------------------------------------- .1 .DA LIB.LOAD .DA LIB.UNLOAD - .DA CFG.SET .DA CFG.GET - .DA INCOMING .DA PULSE @@ -73,14 +71,12 @@ LIB.LOAD ldx RefCount bne .8 jsr AARP.CLEAR - .8 inc RefCount clc rts *-------------------------------------- LIB.UNLOAD dec RefCount - clc rts *-------------------------------------- @@ -88,7 +84,6 @@ INCOMING sta hFrameIn >PULLW ZPTmpPtr1 ldy #S.IOCTL.BUFPTR+3 - .1 lda (ZPTmpPtr1),y Get Frame Ptr & Len sta ZPFrameInPtr-S.IOCTL.BUFPTR,y dey @@ -98,15 +93,12 @@ INCOMING sta hFrameIn lda (ZPFrameInPtr),y tax iny - lda (ZPFrameInPtr),y - + lda (ZPFrameInPtr),y cmp #S.ETH.SNAP.PROTO.AARP bne .2 cpx /S.ETH.SNAP.PROTO.AARP bne .2 - jmp AARP.IN - .2 cmp #S.ETH.SNAP.PROTO.DDP bne .9 cpx /S.ETH.SNAP.PROTO.DDP @@ -130,7 +122,7 @@ PULSE and #S.EVT.F.T1SEC .INB USR/SRC/LIB/LIBETALK.S.DDP .INB USR/SRC/LIB/LIBETALK.S.ELAP .INB USR/SRC/LIB/LIBETALK.S.FRM - .INB USR/SRC/LIB/LIBETALK.S.RTMP + .INB USR/SRC/LIB/LIBETALK.S.RTMP *-------------------------------------- CS.END *-------------------------------------- diff --git a/LIB/LIBGUI.G.BM.txt b/LIB/LIBGUI.G.BM.txt index 4ab30fa5..383d3ff8 100644 --- a/LIB/LIBGUI.G.BM.txt +++ b/LIB/LIBGUI.G.BM.txt @@ -6,7 +6,6 @@ BM.Apple .DA #S.BM.F.BBP4 .DA 16 W .DA 7 H .DA 0 no MASK.OFS - .HS FFF6 green (8) .HS 6FF6 green (8) .HS EEEE yellow (15) diff --git a/LIB/LIBGUI.G.CUR.txt b/LIB/LIBGUI.G.CUR.txt index 69875d15..db38f05a 100644 --- a/LIB/LIBGUI.G.CUR.txt +++ b/LIB/LIBGUI.G.CUR.txt @@ -32,7 +32,6 @@ CUR.Arrow .DA #S.BM.F.BBP1 .DA 11 W .DA 13 H .DA CUR.Arrow.MASK-CUR.Arrow - .DA %000.00000000 .DA %000.00000010 .DA %000.00000110 @@ -46,7 +45,6 @@ CUR.Arrow .DA #S.BM.F.BBP1 .DA %000.11110010 .DA %000.11100000 .DA %000.00000000 - CUR.Arrow.MASK .DA %111.11111100 .DA %111.11111000 .DA %111.11110000 @@ -66,7 +64,6 @@ CUR.ResizeX .DA #S.BM.F.BBP1 .DA 14 W .DA 7 H .DA CUR.ResizeX.MASK-CUR.ResizeX - .DA %000000.00000000 .DA %000100.00001000 .DA %001100.00001100 @@ -88,7 +85,6 @@ CUR.ResizeY .DA #S.BM.F.BBP1 .DA 9 W .DA 11 H .DA CUR.ResizeY.MASK-CUR.ResizeY - .DA %0.00000000 .DA %0.00010000 .DA %0.01111100 @@ -118,7 +114,6 @@ CUR.ResizeXY1 .DA #S.BM.F.BBP1 .DA 11 W .DA 11 H .DA CUR.ResizeXY1.MASK-CUR.ResizeXY1 - .DA %000.00000000 .DA %011.11000000 .DA %011.10000000 @@ -148,7 +143,6 @@ CUR.ResizeXY2 .DA #S.BM.F.BBP1 .DA 11 W .DA 11 H .DA CUR.ResizeXY2.MASK-CUR.ResizeXY2 - .DA %000.00000000 .DA %000.00011110 .DA %000.00001110 @@ -178,7 +172,6 @@ CUR.Cross .DA #S.BM.F.BBP1 .DA 11 W .DA 11 H .DA CUR.Cross.MASK-CUR.Cross - .DA %000.00100000 .DA %000.01010000 .DA %000.01010000 @@ -238,7 +231,6 @@ CUR.Wait1 .DA #S.BM.F.BBP1 .DA 11 W .DA 13 H .DA CUR.Wait4.MASK-CUR.Wait1 - .DA %000.00000000 .DA %001.11111100 .DA %001.00000100 @@ -258,7 +250,6 @@ CUR.Wait2 .DA #S.BM.F.BBP1 .DA 11 W .DA 13 H .DA CUR.Wait4.MASK-CUR.Wait2 - .DA %000.00000000 .DA %001.11111100 .DA %001.11111100 @@ -278,7 +269,6 @@ CUR.Wait3 .DA #S.BM.F.BBP1 .DA 11 W .DA 13 H .DA CUR.Wait4.MASK-CUR.Wait3 - .DA %000.00000000 .DA %001.11111100 .DA %001.11111100 @@ -298,7 +288,6 @@ CUR.Wait4 .DA #S.BM.F.BBP1 .DA 11 W .DA 13 H .DA CUR.Wait4.MASK-CUR.Wait4 - .DA %000.00000000 .DA %001.11111100 .DA %001.11111100 @@ -312,7 +301,6 @@ CUR.Wait4 .DA #S.BM.F.BBP1 .DA %001.00000100 .DA %001.11111100 .DA %000.00000000 - CUR.Wait4.MASK .DA %110.00000011 .DA %100.00000001 .DA %100.00000001 @@ -332,7 +320,6 @@ CUR.Wait5 .DA #S.BM.F.BBP1 .DA 16 W .DA 14 H .DA CUR.Wait5.MASK-CUR.Wait5 - .DA %00000000.00000000 .DA %00000010.00000000 .DA %00000110.00000000 @@ -347,7 +334,6 @@ CUR.Wait5 .DA #S.BM.F.BBP1 .DA %00000000.01100000 .DA %00000000.01000000 .DA %00000000.00000000 - CUR.Wait5.MASK .DA %11111100.11111111 .DA %11111000.11111111 .DA %11110000.11111111 @@ -368,7 +354,6 @@ CUR.Wait6 .DA #S.BM.F.BBP1 .DA 16 W .DA 14 H .DA CUR.Wait6.MASK-CUR.Wait6 - .DA %00000000.00000000 .DA %00000000.01000000 .DA %00000000.01100000 @@ -383,7 +368,6 @@ CUR.Wait6 .DA #S.BM.F.BBP1 .DA %00000110.00000000 .DA %00000010.00000000 .DA %00000000.00000000 - CUR.Wait6.MASK .DA %11111111.00111111 .DA %11111111.00011111 .DA %11111111.00001111 diff --git a/LIB/LIBGUI.S.BUT.txt b/LIB/LIBGUI.S.BUT.txt index c42a288f..eda9c871 100644 --- a/LIB/LIBGUI.S.BUT.txt +++ b/LIB/LIBGUI.S.BUT.txt @@ -12,7 +12,6 @@ BUT.New >STYA ZPPtr1 ldy #S.BUT.hBM lda (ZPPtr1),y beq .1 - ldy #S.BM.W * >SYSCALL2 GetStkObjProp diff --git a/LIB/LIBGUI.S.CLIP.txt b/LIB/LIBGUI.S.CLIP.txt index 27dfceef..35e9830e 100644 --- a/LIB/LIBGUI.S.CLIP.txt +++ b/LIB/LIBGUI.S.CLIP.txt @@ -25,18 +25,15 @@ CLIP.Text CLIP.BitBlt.9 pla CLIP.BitBlt.99 sec rts - CLIP.BitBlt lda CB.Cache+S.CB.DstX ldx CB.Cache+S.CB.DstX+1 pha >SCMPAX OBJ.Cache+S.OBJ.X2 bpl CLIP.BitBlt.9 DestX after X2....exit - pla >SCMPAX OBJ.Cache+S.OBJ.X1 bpl .1 DestX Inside X1-X2, go check if X1+W fit in - * S.CB.DstX before S.OBJ.X1: D=S.OBJ.X1-S.CB.DstX, S.CB.SrcW-=D, S.CB.DstX=+=D, S.CB.X1+=D lda OBJ.Cache+S.OBJ.X1 Compute D.... @@ -46,7 +43,6 @@ CLIP.BitBlt lda CB.Cache+S.CB.DstX lda OBJ.Cache+S.OBJ.X1+1 sbc CB.Cache+S.CB.DstX+1 sta D+1 ....always positive - lda CB.Cache+S.CB.SrcW S.CB.SrcW-=D sec sbc D @@ -55,7 +51,6 @@ CLIP.BitBlt lda CB.Cache+S.CB.DstX sbc D+1 sta CB.Cache+S.CB.SrcW+1 bcc CLIP.BitBlt.99 Negative!!!! nothing to do,exit... - lda CB.Cache+S.CB.DstX S.CB.DstX+=D clc adc D @@ -63,7 +58,6 @@ CLIP.BitBlt lda CB.Cache+S.CB.DstX lda CB.Cache+S.CB.DstX+1 adc D+1 sta CB.Cache+S.CB.DstX+1 - lda CB.Cache+S.CB.X1 S.CB.X1+=D clc adc D @@ -80,20 +74,16 @@ CLIP.BitBlt lda CB.Cache+S.CB.DstX tax lda OBJ.Cache+S.OBJ.X2+1 sbc CB.Cache+S.CB.DstX+1 - inx bne .2 inc - .2 tay - cpx CB.Cache+S.CB.SrcW sbc CB.Cache+S.CB.SrcW+1 bcs CLIP.BitBlt.Y D >= SrcW....nothing to clip stx CB.Cache+S.CB.SrcW SrcW < D, make SrcW=D sty CB.Cache+S.CB.SrcW+1 - CLIP.BitBlt.Y lda CB.Cache+S.CB.DstY ldx CB.Cache+S.CB.DstY+1 pha @@ -102,13 +92,10 @@ CLIP.BitBlt.Y lda CB.Cache+S.CB.DstY pla sec rts - .10 pla >SCMPAX OBJ.Cache+S.OBJ.Y1 bpl .1 DestY Inside Y1-Y2, go check if Y1+H fit in - * S.CB.DstY above S.OBJ.Y1: D=S.OBJ.Y1-S.CB.DstY, S.CB.SrcH-=D, S.CB.DstY=0, S.CB.Y1+=D - lda OBJ.Cache+S.OBJ.Y1 Compute D.... sec sbc CB.Cache+S.CB.DstY @@ -116,7 +103,6 @@ CLIP.BitBlt.Y lda CB.Cache+S.CB.DstY lda OBJ.Cache+S.OBJ.Y1+1 sbc CB.Cache+S.CB.DstY+1 sta D+1 ....always positive - lda CB.Cache+S.CB.SrcH S.CB.SrcH-=D sec sbc D @@ -125,7 +111,6 @@ CLIP.BitBlt.Y lda CB.Cache+S.CB.DstY sbc D+1 sta CB.Cache+S.CB.SrcH+1 bcc .99 Negative!!!! nothing to do,exit... - lda CB.Cache+S.CB.DstY Dst.Y+=D clc adc D @@ -133,7 +118,6 @@ CLIP.BitBlt.Y lda CB.Cache+S.CB.DstY lda CB.Cache+S.CB.DstY+1 adc D+1 sta CB.Cache+S.CB.DstY+1 - lda CB.Cache+S.CB.Y1 S.CB.Y1+=D clc adc D @@ -156,17 +140,14 @@ CLIP.BitBlt.Y lda CB.Cache+S.CB.DstY inc .2 tay - cpx CB.Cache+S.CB.SrcH sbc CB.Cache+S.CB.SrcH+1 bcs .8 D >= SrcH....nothing to clip stx CB.Cache+S.CB.SrcH SrcH < D, make SrcH=D sty CB.Cache+S.CB.SrcH+1 - .8 clc rts - .9 pla .99 sec rts @@ -178,39 +159,31 @@ CLIP.Line.TOP .EQ 8 *-------------------------------------- CLIP.Line jsr CLIP.Line.EncodeP1 jsr CLIP.Line.EncodeP2 - .1 lda CLIP.Line.P1 ora CLIP.Line.P2 beq .88 - lda CLIP.Line.P1 and CLIP.Line.P2 bne .99 - lda CLIP.Line.P1 beq .5 - bit #CLIP.Line.TOP beq .2 * Y1 is above S.CB.Y1.... -* DY=Y2-Y1; - +* DY=Y2-Y1; jsr CLIP.Line.EncodeP1 bra .1 - .2 bit #CLIP.Line.BOTTOM beq .3 -* Y1 is below S.CB.Y2.... - +* Y1 is below S.CB.Y2.... jsr CLIP.Line.EncodeP1 bra .1 - .3 bit #CLIP.Line.RIGHT beq .4 * X1 is after S.CB.X2.... jsr CLIP.Line.EncodeP1 bra .1 -* X1 is before S.CB.X1.... +* X1 is before S.CB.X1.... .4 jsr CLIP.Line.EncodeP1 bra .1 @@ -219,26 +192,23 @@ CLIP.Line jsr CLIP.Line.EncodeP1 bit #CLIP.Line.TOP beq .6 -* Y2 is above S.CB.Y1.... +* Y2 is above S.CB.Y1.... jsr CLIP.Line.EncodeP2 bra .1 - .6 bit #CLIP.Line.BOTTOM beq .7 * Y2 is below S.CB.Y2.... jsr CLIP.Line.EncodeP2 bra .1 - .7 bit #CLIP.Line.RIGHT beq .8 * X2 is after S.CB.X2.... jsr CLIP.Line.EncodeP2 bra .1 -* X2 is before S.CB.X1.... +* X2 is before S.CB.X1.... .8 jsr CLIP.Line.EncodeP2 bra .1 - .88 clc rts @@ -251,13 +221,10 @@ CLIP.Line.EncodeP1 lda CB.Cache+S.CB.X1 ldx CB.Cache+S.CB.X1+1 jsr CLIP.Line.EncodeX.AX - tay - lda CB.Cache+S.CB.Y1 ldx CB.Cache+S.CB.Y1+1 jsr CLIP.Line.EncodeY.AX - sta CLIP.Line.P1 rts *-------------------------------------- @@ -267,13 +234,10 @@ CLIP.Line.EncodeP2 lda CB.Cache+S.CB.X2 ldx CB.Cache+S.CB.X2+1 jsr CLIP.Line.EncodeX.AX - tay - lda CB.Cache+S.CB.Y2 ldx CB.Cache+S.CB.Y2+1 jsr CLIP.Line.EncodeY.AX - sta CLIP.Line.P2 rts *-------------------------------------- @@ -285,7 +249,6 @@ CLIP.Line.EncodeX.AX ora #CLIP.Line.LEFT plx rts - .1 pla >SCMPAX OBJ.Cache+S.OBJ.X1 bpl .8 @@ -301,14 +264,12 @@ CLIP.Line.EncodeY.AX ora #CLIP.Line.TOP plx rts - .1 pla >SCMPAX OBJ.Cache+S.OBJ.Y1 bpl .8 tya ora #CLIP.Line.BOTTOM - -.8 rts +.8 rts *-------------------------------------- MAN SAVE USR/SRC/LIB/LIBGUI.S.CLIP diff --git a/LIB/LIBGUI.S.CUR.txt b/LIB/LIBGUI.S.CUR.txt index 4675cc0d..e5690721 100644 --- a/LIB/LIBGUI.S.CUR.txt +++ b/LIB/LIBGUI.S.CUR.txt @@ -8,7 +8,6 @@ UpdateCursor lda CUR.T inc cmp #CUR.T.WAIT+12 bne SetCursor - lda #CUR.T.WAIT *-------------------------------------- * Set X2,Y2,SrcPtr @@ -17,39 +16,26 @@ SetCursor sta CUR.T lda CUR.bVisible bpl .1 - jsr HideCursor.I - .1 ldx CUR.T - lda L.Cursors,x sta CUR.CB+S.CB.SrcPtr sta ZPPtr1 - lda L.Cursors+1,x sta CUR.CB+S.CB.SrcPtr+1 sta ZPPtr1+1 - ldy #S.BM.W - lda (ZPPtr1),y sta CUR.CB+S.CB.SrcW - iny - lda (ZPPtr1),y sta CUR.CB+S.CB.SrcW+1 - iny S.BM.H - lda (ZPPtr1),y sta CUR.CB+S.CB.SrcH - iny - lda (ZPPtr1),y sta CUR.CB+S.CB.SrcH+1 - lda CUR.bVisible bmi ShowCursor.I @@ -58,19 +44,15 @@ SetCursor.RTS rts * Set DestX,DestY *-------------------------------------- SetCursorPos >PULLW ZPPtr1 - lda CUR.bVisible bpl .1 - jsr HideCursor.I - .1 ldy #S.POINT-1 -.2 lda (ZPPtr1),y +.2 lda (ZPPtr1),y sta CUR.Pos,y dey bpl .2 - lda CUR.bVisible bmi ShowCursor.I @@ -78,17 +60,13 @@ SetCursorPos >PULLW ZPPtr1 *-------------------------------------- HideCursor lda CUR.bVisible bpl .9 - jsr HideCursor.I - stz CUR.bVisible .9 rts *-------------------------------------- ShowCursor lda CUR.bVisible bmi .9 - jsr ShowCursor.I - dec CUR.bVisible .9 rts *-------------------------------------- @@ -98,37 +76,28 @@ HideCursor.I lda #S.CB.OP.RESTORE *-------------------------------------- ShowCursor.I lda #S.CB.OP.ORA+S.CB.OP.MASK+S.CB.OP.SAVE sta CUR.CB+S.CB.OP - ldx CUR.T - lda CUR.Pos+S.POINT.X sec sbc CUR.HotPoints,x sta CUR.CB+S.CB.DstX - lda CUR.Pos+S.POINT.X+1 sbc #0 sta CUR.CB+S.CB.DstX+1 - lda CUR.Pos+S.POINT.Y sec sbc CUR.HotPoints+1,x sta CUR.CB+S.CB.DstY - lda CUR.Pos+S.POINT.Y+1 sbc #0 sta CUR.CB+S.CB.DstY+1 - DrawCursor.I >LDYA L.SCR jsr OBJ.Get - >LDYA L.CUR.CB jsr CLIP.YA bcs .9 - >LDYA L.CUR.CB jmp GFXWrite.YA - .9 rts *-------------------------------------- MAN diff --git a/LIB/LIBGUI.S.DRAW.txt b/LIB/LIBGUI.S.DRAW.txt index f9b965fd..538d8a1b 100644 --- a/LIB/LIBGUI.S.DRAW.txt +++ b/LIB/LIBGUI.S.DRAW.txt @@ -2,28 +2,22 @@ NEW AUTO 3,1 *-------------------------------------- Draw >PULLW ZPCBPtr Get CB - >PULLYA Get GC jsr OBJ.Get - .1 >LDYA ZPCBPtr jsr CB.Get - ldx CB.Cache+S.CB.CMD Get Cmd beq .8 jsr CLIP.X bcs .7 - ldx CB.Cache+S.CB.CMD cpx #S.CB.CMD.DRAWLINE bcc .2 Native DRV Cmd jsr Draw.Jmp bra .7 - .2 jsr GFXWrite.CB - .7 lda (ZPCBPtr) Get Cmd tax lda CB.CmdLen,x @@ -33,11 +27,10 @@ Draw >PULLW ZPCBPtr Get CB bcc .1 inc ZPCBPtr+1 bra .1 - -.8 clc -.9 rts - -Draw.Jmp jmp (J.Cmds-S.CB.CMD.DRAWLINE,x) +.8 clc + .9 + rts +Draw.Jmp jmp (J.Cmds-S.CB.CMD.DRAWLINE,x) *-------------------------------------- * In: Control Block in CB.Cache * CMD @@ -53,20 +46,17 @@ DrawLine lda CB.Cache+S.CB.X2 sec sbc CB.Cache+S.CB.X1 sta DX - lda CB.Cache+S.CB.X2+1 sbc CB.Cache+S.CB.X1+1 sta DX+1 DX = X2 - X1 bmi .1 DX < 0.... - ora DX bne .2 DX > 0... lda #S.CB.CMD.VLINE sta CB.Cache+S.CB.CMD jmp GFXWrite.CB DX=0 : VLIN Y1,Y2 At X1 - .1 >SWAP16 CB.Cache+S.CB.X1,CB.Cache+S.CB.X2 * >SWAP16 CB.Cache+S.CB.Y1,CB.Cache+S.CB.Y2 lda CB.Cache+S.CB.Y1 @@ -83,22 +73,17 @@ DrawLine lda CB.Cache+S.CB.X2 sec sbc CB.Cache+S.CB.Y1 sta DY - * lda CB.Cache+S.CB.Y2+1 lda #0 * sbc CB.Cache+S.CB.Y1+1 sbc #0 sta DY+1 DY = Y2 - Y1 - bmi .3 DY < 0 ... - ora DY bne .4 - lda #S.CB.CMD.HLINE sta CB.Cache+S.CB.CMD jmp GFXWrite.CB DY=0 : HLIN X1,X2 At Y1 - .3 >NOT16 DY set DY=-DY lda #$ff sta IY set IY=-1 @@ -106,20 +91,16 @@ DrawLine lda CB.Cache+S.CB.X2 .4 lda #S.CB.CMD.SETPIXEL sta CB.Cache+S.CB.CMD jsr GFXWrite.CB - lda DX sec sbc DY tax - lda DX+1 * sbc DY+1 sbc #0 bmi DrawLine.IncY DY is greater than DX, we will increase on Y axis - txa beq DrawLine.IncXY DX=DY, go inc X & Y - jmp DrawLine.IncX DY is lower than DX, we will increase on X axis DrawLine.IncXY lda DX DX=DY @@ -133,21 +114,16 @@ DrawLine.IncXY lda DX DX=DY bne .2 inc Counter+1 beq .8 - .2 inc CB.Cache+S.CB.X1 bne .3 inc CB.Cache+S.CB.X1+1 - .3 lda CB.Cache+S.CB.Y1 Y1=Y1+IY clc adc IY sta CB.Cache+S.CB.Y1 - jsr GFXWrite.CB bra .1 - .8 rts - DrawLine.IncY lda DY eor #$ff sta Counter @@ -159,7 +135,6 @@ DrawLine.IncY lda DY asl sta IE pha - lda DX+1 rol sta IE+1 @@ -169,28 +144,22 @@ DrawLine.IncY lda DY sec sbc DY sta D - txa sbc DY+1 sta D+1 - lda DX INE=2*(DX-DY) sec sbc DY pha - lda DX+1 sbc DY+1 tax - pla - asl sta INE txa rol sta INE+1 - .1 inc Counter bne .2 inc Counter+1 @@ -198,7 +167,6 @@ DrawLine.IncY lda DY .2 lda D+1 IF D < 0 ... bmi .4 - lda D D > 0 : D=D+INE clc adc INE @@ -206,13 +174,10 @@ DrawLine.IncY lda DY lda D+1 adc INE+1 sta D+1 - inc CB.Cache+S.CB.X1 X1=X1+1 bne .5 inc CB.Cache+S.CB.X1+1 - - bra .5 - + bra .5 .4 lda D D > 0 : D=D+IE clc adc IE @@ -220,15 +185,12 @@ DrawLine.IncY lda DY lda D+1 adc IE+1 sta D+1 - .5 lda CB.Cache+S.CB.Y1 Y1=Y1+IY clc adc IY sta CB.Cache+S.CB.Y1 - jsr GFXWrite.CB bra .1 - .8 rts DrawLine.IncX lda DX @@ -237,44 +199,36 @@ DrawLine.IncX lda DX lda DX+1 eor #$ff sta Counter+1 - lda DY IE=2*DY asl sta IE pha - * lda DY+1 lda #0 rol sta IE+1 tax - pla D=IE-DX sec sbc DX sta D - txa sbc DX+1 sta D+1 - lda DY INE=2*(DY-DX) sec sbc DX pha - * lda DY+1 lda #0 sbc DX+1 tax - pla asl sta INE txa rol sta INE+1 - .1 inc Counter bne .2 inc Counter+1 @@ -282,7 +236,6 @@ DrawLine.IncX lda DX .2 lda D+1 ID D < 0 .... bmi .4 - lda D D > 0 : D=D+INE clc adc INE @@ -290,14 +243,11 @@ DrawLine.IncX lda DX lda D+1 adc INE+1 sta D+1 - lda CB.Cache+S.CB.Y1 Y1=Y1+IY clc adc IY sta CB.Cache+S.CB.Y1 - - bra .5 - + bra .5 .4 lda D D < 0 : D=D+IE clc adc IE @@ -305,14 +255,11 @@ DrawLine.IncX lda DX lda D+1 adc IE+1 sta D+1 - .5 inc CB.Cache+S.CB.X1 X1=X1+1 bne .6 inc CB.Cache+S.CB.X1+1 - .6 jsr GFXWrite.CB bra .1 - .8 rts *-------------------------------------- DrawText >LDYA L.CB.Cache @@ -320,12 +267,9 @@ DrawText >LDYA L.CB.Cache >SYSCALL2 OSD bcs .9 - jsr GFXWrite.CB - lda CB.Cache+S.CB.SrcPtr >SYSCALL2 FreeStkObj - .9 rts *-------------------------------------- diff --git a/LIB/LIBGUI.S.EVT.txt b/LIB/LIBGUI.S.EVT.txt index 38375551..b5efc89b 100644 --- a/LIB/LIBGUI.S.EVT.txt +++ b/LIB/LIBGUI.S.EVT.txt @@ -2,7 +2,6 @@ NEW AUTO 3,1 *-------------------------------------- EVT.Get - *-------------------------------------- MAN SAVE USR/SRC/LIB/LIBGUI.S.EVT diff --git a/LIB/LIBGUI.S.MENU.txt b/LIB/LIBGUI.S.MENU.txt index afdefdde..5554c92a 100644 --- a/LIB/LIBGUI.S.MENU.txt +++ b/LIB/LIBGUI.S.MENU.txt @@ -4,14 +4,12 @@ NEW * Y,A = ptr to menu definition *-------------------------------------- MENU.New >STYA ZPPtr1 - lda #2 1px Border sta DX sta DY stz DX+1 stz DY+1 - clc rts *-------------------------------------- diff --git a/LIB/LIBGUI.S.MOU.txt b/LIB/LIBGUI.S.MOU.txt index 95b833b0..00acf85a 100644 --- a/LIB/LIBGUI.S.MOU.txt +++ b/LIB/LIBGUI.S.MOU.txt @@ -6,12 +6,10 @@ MOU.Init >LDYA L.DEVNAME.MOUSE >SYSCALL2 open bcc .2 - inc DEVNAME.MOUSE+8 lda DEVNAME.MOUSE+8 cmp #'8' bne .1 - rts .2 sta hDevMouse @@ -21,32 +19,26 @@ MOU.Init MOU.Setup lda DCB.GFX+S.DCB.GFX.W+1 sta MouseClamp+3 lsr - sta CUR.Pos+S.POINT.X+1 - + sta CUR.Pos+S.POINT.X+1 lda DCB.GFX+S.DCB.GFX.W sta MouseClamp+2 ror - sta CUR.Pos+S.POINT.X - + sta CUR.Pos+S.POINT.X lda DCB.GFX+S.DCB.GFX.H+1 sta MouseClamp+7 lsr - sta CUR.Pos+S.POINT.Y+1 - + sta CUR.Pos+S.POINT.Y+1 lda DCB.GFX+S.DCB.GFX.H sta MouseClamp+6 ror - sta CUR.Pos+S.POINT.Y - + sta CUR.Pos+S.POINT.Y >PUSHW L.MouseClamp >PUSHBI IOCTL.CONTROL lda hDevMouse >SYSCALL2 IOCTL bcs .9 - >LDYA L.CUR.SaveBuf >STYA CUR.CB+S.CB.DstPtr - lda #CUR.T.ARROW jsr SetCursor jsr ShowCursor @@ -56,7 +48,6 @@ MOU.Setup lda DCB.GFX+S.DCB.GFX.W+1 *-------------------------------------- MOU.Quit lda hDevMouse beq .8 - pha >PUSHBI IOCTL.CLOSE >PUSHWZ @@ -69,21 +60,18 @@ MOU.Quit lda hDevMouse MOU.ReadMouse lda A2osX.ASCREEN GUI screen active ? cmp DCB.GFX+S.DCB.GFX.DEVID bne .9 no, exit.... - lda hDevMouse beq .9 - pha * >PUSHW ZPPtr1 >PUSHBI IOCTL.READ - pla >SYSCALL2 IOCTL rts .9 sec - >RET 2 Discard PTR + >RET 2 Discard PTR *-------------------------------------- MAN SAVE USR/SRC/LIB/LIBGUI.S.MOU diff --git a/LIB/LIBGUI.S.PAT.txt b/LIB/LIBGUI.S.PAT.txt index 75d5a1f5..4817e562 100644 --- a/LIB/LIBGUI.S.PAT.txt +++ b/LIB/LIBGUI.S.PAT.txt @@ -14,7 +14,6 @@ GetCPattern tax asl ora D tay - txa and #$f0 sta D @@ -25,7 +24,6 @@ GetCPattern tax ora D ldx #7 - .1 sta PAT.Buf+S.BM,x dex pha @@ -34,7 +32,6 @@ GetCPattern tax pla dex bpl .1 - lda #S.BM.F.BBP1 sta PAT.Buf+S.BM.F clc diff --git a/LIB/LIBGUI.S.WND.txt b/LIB/LIBGUI.S.WND.txt index b29c6c4e..4709190b 100644 --- a/LIB/LIBGUI.S.WND.txt +++ b/LIB/LIBGUI.S.WND.txt @@ -5,57 +5,45 @@ WND.Init >PUSHBI 0 >LDYA L.DEVNAME.GFX >SYSCALL2 open bcs .9 - sta SCR+S.SCREEN.hDEV - >LDYA L.DCB.GFX >STYA IOCTL+S.IOCTL.BUFPTR lda #S.IOCTL.STATCODE.GETDCB sta IOCTL+S.IOCTL.STATCODE - >PUSHW L.IOCTL >PUSHBI IOCTL.STATUS lda SCR+S.SCREEN.hDEV >SYSCALL2 IOCTL - -.9 rts +.9 rts *-------------------------------------- WND.Setup >LDYA DCB.GFX+S.DCB.GFX.W >STYA SCR+S.OBJ.W >STYA WND.Desktop+S.OBJ.W >STYA WND.SysBar+S.OBJ.W - lda SYSFON.H clc adc #6 sta WND.SysBar+S.OBJ.H - lda DCB.GFX+S.DCB.GFX.H sta SCR+S.OBJ.H sec sbc WND.SysBar+S.OBJ.H sta WND.Desktop+S.OBJ.H sta WND.SysBar+S.OBJ.X1 - lda DCB.GFX+S.DCB.GFX.H+1 sta WND.SysBar+S.OBJ.H+1 sbc #0 sta WND.Desktop+S.OBJ.H+1 sta WND.SysBar+S.OBJ.X1+1 - >LDYA L.SCR jsr OBJ.SetX2Y2 - >LDYA L.WND.Desktop >STYA SCR.Childs jsr OBJ.SetX2Y2 - >LDYA L.WND.SysBar jsr OBJ.SetX2Y2 >STYA SCR.Childs+2 - >LDYA L.WND.Desktop - lda #CUR.T.ARROW sta WND.Desktop+S.WND.hCUR sta WND.SysBar+S.WND.hCUR @@ -63,15 +51,13 @@ WND.Setup >LDYA DCB.GFX+S.DCB.GFX.W *-------------------------------------- WND.Quit lda SCR+S.SCREEN.hDEV beq .8 - pha >PUSHBI IOCTL.CLOSE >PUSHWZ pla >SYSCALL2 IOCTL -.8 - clc +.8 clc rts *-------------------------------------- WND.New >STYA ZPPtr1 @@ -79,17 +65,13 @@ WND.New >STYA ZPPtr1 >LDYAI S.WND >SYSCALL2 getmem bcs .9 - >STYA ZPWNDPtr - ldy #S.WND-1 - .1 lda (ZPPtr1),y sta (ZPWNDPtr),y dey bpl .1 - -.9 rts +.9 rts *-------------------------------------- WND.Paint >STYA ZPPtr1 diff --git a/LIB/LIBGUI.S.txt b/LIB/LIBGUI.S.txt index ac55e760..27b2b6f9 100644 --- a/LIB/LIBGUI.S.txt +++ b/LIB/LIBGUI.S.txt @@ -40,7 +40,7 @@ WND.MAX .EQ 64 bvc :1 eor #$80 :1 .EQ * - .EM + .EM *-------------------------------------- ZPPtr1 .EQ ZPLIB @@ -127,14 +127,10 @@ LIB.LOAD lda LibCount jsr WND.Init bcs .9 - jsr WND.Setup - lda hDevMouse beq .8 - jsr MOU.Setup - .8 inc LibCount clc @@ -142,23 +138,17 @@ LIB.LOAD lda LibCount *-------------------------------------- LIB.UNLOAD dec LibCount bne .8 - jsr MOU.Quit - - - .8 clc rts *-------------------------------------- OBJ.Get >STYA .1+1 ldx #S.OBJ-1 - .1 lda $ffff,x SELF MODIFIED sta OBJ.Cache,x dex bpl .1 - rts *-------------------------------------- OBJ.SetX2Y2 >STYA ZPObjPtr @@ -172,7 +162,6 @@ OBJ.SetX2Y2 >STYA ZPObjPtr lda (ZPObjPtr),y sbc #0 tax - pla clc ldy #S.OBJ.X1 @@ -181,13 +170,11 @@ OBJ.SetX2Y2 >STYA ZPObjPtr txa iny adc (ZPObjPtr),y - ldy #S.OBJ.X2+1 sta (ZPObjPtr),y dey pla sta (ZPObjPtr),y - ldy #S.OBJ.H lda (ZPObjPtr),y clc @@ -197,7 +184,6 @@ OBJ.SetX2Y2 >STYA ZPObjPtr lda (ZPObjPtr),y sbc #0 tax - pla clc ldy #S.OBJ.Y1 @@ -206,7 +192,6 @@ OBJ.SetX2Y2 >STYA ZPObjPtr txa iny adc (ZPObjPtr),y - ldy #S.OBJ.Y2+1 sta (ZPObjPtr),y dey @@ -218,12 +203,10 @@ OBJ.SetX2Y2 >STYA ZPObjPtr CB.Get >STYA .1+1 ldx #S.CB-1 - .1 lda $ffff,x SELF MODIFIED sta CB.Cache,x dex bpl .1 - rts *-------------------------------------- GFXWrite.CB >LDYA L.CB.Cache diff --git a/LIB/LIBPAK.S.IN.txt b/LIB/LIBPAK.S.IN.txt index 43f95806..71891601 100644 --- a/LIB/LIBPAK.S.IN.txt +++ b/LIB/LIBPAK.S.IN.txt @@ -8,7 +8,6 @@ Pak.In.Init >LDYA Pak.SrcPtr lda Pak.Shnk+S.PAKSHNK.LEN eor #$ff sta Pak.SrcCnt - lda Pak.Shnk+S.PAKSHNK.LEN+1 eor #$ff sta Pak.SrcCnt+1 @@ -18,10 +17,8 @@ Pak.In.Init >LDYA Pak.SrcPtr Pak.In.GetRH lda #$ff cmp Pak.SrcCnt+1 return 255 if not $ffxx bne .1 - lda Pak.SrcCnt eor #$ff return !xx if $ffxx - .1 rts *-------------------------------------- Pak.In.MoveFWA clc @@ -29,7 +26,6 @@ Pak.In.MoveFWA clc sta ZPSrcPtr bcc .8 inc ZPSrcPtr+1 - .8 rts *-------------------------------------- Pak.In.Get8Bits ldy #8 @@ -45,19 +41,15 @@ Pak.In.Get4Bits ldy #4 Pak.In.GetBit ldx Pak.In.Mask bne .1 jsr Pak.In.NxtByte - ldx #8 - -.1 dex +.1 dex stx Pak.In.Mask - pha Don't trash A lda (UnZPSrcPtr) and Pak.In.BitMask,x cmp #1 if 0:CC, i>0 CS - pla - rts Bit is in C + rts Bit is in C *-------------------------------------- Pak.In.GetByte lda (UnZPSrcPtr) Pak.In.NxtByte inc UnZPSrcPtr diff --git a/LIB/LIBPAK.S.LZ.txt b/LIB/LIBPAK.S.LZ.txt index e18b81f7..513ca87b 100644 --- a/LIB/LIBPAK.S.LZ.txt +++ b/LIB/LIBPAK.S.LZ.txt @@ -15,123 +15,95 @@ Pak.LZ jsr Pak.In.Init Init SrcPtr,SrcCnt jsr Pak.Out.Init * future optimization, make P grows from 2 to 12 while increasing W size - * lda #2 Ptr width starts at 2 bits * sta Pak.LZ.PWidth - * lda #%00000011 Ptr Mask Starts at %000000000011 * sta Pak.LZ.PMaskLO * stz Pak.LZ.PMaskHI - lda #$ff sta Pak.LZ.WCnt sta Pak.LZ.WCnt+1 WCnt=!0 .1 jsr Pak.In.GetRH Z if EOF beq .80 - cmp #3 bcc .8 no more than 2 bytes left....store - cmp #19 more than 18 bytes left, limit to 18 bcc .2 lda #18 - .2 tax X = Read ahead max size - lda ZPSrcPtr make ZPSrcWPtr=ZPSrcPtr sta ZPSrcWPtr - lda ZPSrcPtr sta ZPSrcWPtr - lda Pak.LZ.WCnt sta ZPCnt lda Pak.LZ.WCnt+1 sta ZPCnt+1 - stz Pak.LZ.BestLen - .3 inc ZPCnt bne .4 inc ZPCnt+1 beq .7 reached begining of window....store - lda ZPSrcWPtr make ZPSrcWPtr-=1 sec sbc #1 sta ZPSrcWPtr bcs .4 dec ZPSrcWPtr+1 - .4 ldy #0 phx save Read ahead max size .5 lda (ZPSrcPtr),y Try to find a match cmp (ZPSrcWPtr),y bne .6 - iny dex don't exceed 18 or Src Buffer bne .5 - .6 plx get back Read ahead max size cpy #3 matched a least 3 chars ? bcc .3 no....try one char back in Wnd - cpy Pak.LZ.BestLen better than last match ? bcc .3 no....try one char back in Wnd - sty Pak.LZ.BestLen lda ZPSrcWPtr sta Pak.LZ.BestPtr lda ZPSrcWPtr+1 sta Pak.LZ.BestPtr+1 bra .3 - .7 lda Pak.LZ.BestLen do we match something ? beq .8 - lda Pak.LZ.BestPtr sec sbc ZPSrcPtr sta Pak.LZ.BestPtr - lda Pak.LZ.BestPtr+1 sbc ZPSrcPtr+1 sta Pak.LZ.BestPtr+1 - tya get len dec Adjust range 0-15 dec dec ora Pak.LZ.BestPtr+1 merge with P.HI - sec jsr Pak.Out.PutCA Put 9 bits 1+LLLL+PPPP bcs .99 - lda Pak.LZ.BestPtr Put 8 bits pppppppp - jsr Pak.Out.PutA bcs .99 - tya bra .81 - .8 lda (ZPSrcPtr) clc jsr Pak.Out.PutCA Put 9 bits 0+xxxxxxxx bcs .99 lda #1 - .81 jsr Pak.In.MoveFWA tya jsr LZ.MoveWndY bra .3 bra .71 - .80 clc .99 rts *-------------------------------------- @@ -147,18 +119,13 @@ LZ.MoveWndY tya tax lda #0 sbc Pak.LZ.WCnt+1 - cpx #WSIZE^$FF sbc /WSIZE^$FF - bcs .1 - ldx #WSIZE^$FF lda /WSIZE^$FF - .1 stx Pak.LZ.WCnt sta Pak.LZ.WCnt+1 - rts *-------------------------------------- MAN diff --git a/LIB/LIBPAK.S.OUT.txt b/LIB/LIBPAK.S.OUT.txt index 7895863a..9dfe319e 100644 --- a/LIB/LIBPAK.S.OUT.txt +++ b/LIB/LIBPAK.S.OUT.txt @@ -24,8 +24,7 @@ Pak.Out.PutA ldy #8 bcs Pak.Out.Put.rts dey bne .1 - -Pak.Out.Put.rts rts +Pak.Out.Put.rts rts *-------------------------------------- Pak.Out.PutYBits asl @@ -41,19 +40,14 @@ Pak.Out.PutBitC pha lda Pak.Out.Mask tsb Pak.Out.Byte clc - .1 lsr Pak.Out.Mask bne .8 - jsr Pak.Out.PutByte bcs .9 - jsr Pak.Out.Init - .8 pla * clc rts - .9 pla * sec rts @@ -62,34 +56,26 @@ Pak.Out.PutByte inc Pak.DstCnt bne .1 inc Pak.DstCnt+1 beq .9 - .1 bit Pak.bPass2 bmi .6 - phx tax - inc Pak.CntL,x bne .2 inc Pak.CntH,x - .2 plx bra .7 - .6 sta (ZPDstPtr) inc ZPDstPtr bne .2 inc ZPDstPtr+1 - .7 inc Pak.Stat+S.PAKSTAT.PASS2,x bne .8 inc Pak.Stat+S.PAKSTAT.PASS2+1,x - .8 clc rts - .9 sec rts *-------------------------------------- diff --git a/LIB/LIBTCPIP.S.ARP.txt b/LIB/LIBTCPIP.S.ARP.txt index a8105b10..93f7bde4 100644 --- a/LIB/LIBTCPIP.S.ARP.txt +++ b/LIB/LIBTCPIP.S.ARP.txt @@ -9,7 +9,6 @@ NEW *\-------------------------------------- ARP.Clear lda hARPCache bne .1 - >LDYAI K.ARPCACHE.SIZE*S.ARPCACHE >SYSCALL2 GetMem0 bcs .9 @@ -20,7 +19,6 @@ ARP.Clear lda hARPCache lda #0 tay - .2 sta (ZPCachePtr),y iny cpy #K.ARPCACHE.SIZE*S.ARPCACHE @@ -40,7 +38,6 @@ ARP.Clear lda hARPCache *\-------------------------------------- ARP.Query >PULLW ZPPtrIP IP >PULLW ZPPtrMAC MAC - ldy #3 .1 lda (ZPPtrIP),y sta ARP.TmpCache+S.ARPCACHE.IP,y @@ -48,14 +45,13 @@ ARP.Query >PULLW ZPPtrIP IP bpl .1 jsr ARP.QUERY.I bcs .9 - ldy #5 .2 lda ARP.TmpCache+S.ARPCACHE.MAC,y sta (ZPPtrMAC),y dey bpl .2 clc -.9 rts +.9 rts */-------------------------------------- * # ARP.Add * Add a static ARP cache record @@ -65,7 +61,6 @@ ARP.Query >PULLW ZPPtrIP IP *\-------------------------------------- ARP.Add >PULLW ZPPtrIP IP >PULLW ZPPtrMAC MAC - stz ARP.TmpCache+S.ARPCACHE.TTL stz ARP.TmpCache+S.ARPCACHE.TTL+1 @@ -75,7 +70,6 @@ ARP.Add >PULLW ZPPtrIP IP sta ARP.TmpCache+S.ARPCACHE.IP,y dey bpl .1 - ldy #5 .2 lda (ZPPtrMAC),y @@ -84,20 +78,17 @@ ARP.Add >PULLW ZPPtrIP IP bpl .2 lda #S.ARPCACHE.S.RESOLVED+S.ARPCACHE.S.STATIC - ARP.ADD.I sta ARP.TmpCache jsr ARP.FIND.BY.IP bcc .1 jsr ARP.FIND.FREE - .1 ldy #S.ARPCACHE-1 .2 lda ARP.TmpCache,y sta (ZPCachePtr),y dey bpl .2 - clc rts */-------------------------------------- @@ -111,7 +102,6 @@ ARP.GetCache lda hARPCache >SYSCALL2 GetMemPtr bcs .9 >STYA ZPCachePtr - .9 rts *-------------------------------------- * PRIVATE @@ -119,27 +109,22 @@ ARP.GetCache lda hARPCache ARP.AddFromFrameInPtr ldy #S.IP.SRC+3 ldx #3 - .1 lda (ZPFrameInPtr),y sta ARP.TmpCache+S.ARPCACHE.IP,x dey dex bpl .1 - ldy #S.ETH.SRCMAC+5 ldx #5 - .2 lda (ZPFrameInPtr),y sta ARP.TmpCache+S.ARPCACHE.MAC,x dey dex bpl .2 - lda #K.ARP.TTL sta ARP.TmpCache+S.ARPCACHE.TTL lda /K.ARP.TTL sta ARP.TmpCache+S.ARPCACHE.TTL+1 - lda #S.ARPCACHE.S.RESOLVED jmp ARP.ADD.I *-------------------------------------- @@ -152,54 +137,43 @@ ARP.IN ldy #S.ARP.TPA+3 dey dex bpl .1 - ldy #S.ARP.OPERATION+1 HI byte lda (ZPFrameInPtr),y cmp #S.ARP.OPERATION.REQ beq ARP.IN.REQ - cmp #S.ARP.OPERATION.REP beq ARP.IN.REP - ARP.IN.EXIT lda hFrameIn beq .8 stz hFrameIn >SYSCALL2 FreeMem .8 clc rts - ARP.IN.REQ ldy #S.ARP.SPA+3 ldx #3 - .1 lda (ZPFrameInPtr),y sta ARP.REP.TPA,x dey dex bpl .1 - ldy #S.ARP.SHA+5 ldx #5 - .2 lda (ZPFrameInPtr),y sta ARP.REP.DSTMAC,x sta ARP.REP.THA,x dey dex bpl .2 - >LDYA L.ARP.REP jsr ARP.Send - bra ARP.IN.EXIT ARP.IN.REP lda #K.ARP.TTL sta ARP.TmpCache+S.ARPCACHE.TTL lda /K.ARP.TTL sta ARP.TmpCache+S.ARPCACHE.TTL+1 - ldy #S.ARP.SPA+3 ldx #3 - .1 lda (ZPFrameInPtr),y sta ARP.TmpCache+S.ARPCACHE.IP,x dey @@ -208,15 +182,12 @@ ARP.IN.REP lda #K.ARP.TTL ldy #S.ARP.SHA+5 ldx #5 - .2 lda (ZPFrameInPtr),y sta ARP.TmpCache+S.ARPCACHE.MAC,x dey dex bpl .2 - lda #S.ARPCACHE.S.RESOLVED - jsr ARP.ADD.I jmp ARP.IN.EXIT *-------------------------------------- @@ -225,22 +196,18 @@ ARP.QUERY.I jsr ARP.FIND.BY.IP lda (ZPCachePtr) get status... bpl .9 Pending... - ldy #S.ARPCACHE.MAC - .2 lda (ZPCachePtr),y sta ARP.TmpCache,y iny cpy #S.ARPCACHE.MAC+6 bne .2 - ldy #S.ARPCACHE.TTL lda #K.ARP.TTL sta (ZPCachePtr),y iny lda /K.ARP.TTL sta (ZPCachePtr),y - clc rts @@ -250,18 +217,14 @@ ARP.QUERY.I jsr ARP.FIND.BY.IP sta ARP.REQ.TPA,x dex bpl .4 - >LDYA L.ARP.REQ jsr ARP.Send bcs .99 - lda #K.ARP.PENDING.TTL sta ARP.TmpCache+S.ARPCACHE.TTL stz ARP.TmpCache+S.ARPCACHE.TTL+1 - lda #S.ARPCACHE.S.PENDING jsr ARP.ADD.I - .9 lda #ERR.ARP.PENDING sec .99 rts @@ -269,29 +232,24 @@ ARP.QUERY.I jsr ARP.FIND.BY.IP ARP.FIND.BY.IP jsr ARP.GetCache ldx #K.ARPCACHE.SIZE - .1 lda (ZPCachePtr) beq .3 ldy #S.ARPCACHE.IP - .2 lda ARP.TmpCache,y cmp (ZPCachePtr),y bne .3 iny cpy #S.ARPCACHE.IP+4 bne .2 - clc rts - .3 lda ZPCachePtr clc adc #S.ARPCACHE sta ZPCachePtr bcc .8 inc ZPCachePtr+1 - .8 dex bne .1 @@ -305,11 +263,9 @@ ARP.FIND.FREE jsr ARP.GetCache sta TmpDWord+1 ldx #K.ARPCACHE.SIZE - .1 lda (ZPCachePtr) beq .8 bpl .6 - ldy #S.ARPCACHE.TTL lda (ZPCachePtr),y sec @@ -318,13 +274,11 @@ ARP.FIND.FREE jsr ARP.GetCache lda (ZPCachePtr),y sbc TmpDWord+1 bcc .6 - lda (ZPCachePtr),y sta TmpDWord+1 dey lda (ZPCachePtr),y sta TmpDWord - >LDYA ZPCachePtr >STYA ZPTmpPtr1 save lowest TTL slot ... @@ -334,27 +288,21 @@ ARP.FIND.FREE jsr ARP.GetCache sta ZPCachePtr bcc .7 inc ZPCachePtr+1 - .7 dex bne .1 - >LDYA ZPTmpPtr1 >STYA ZPCachePtr lda #0 sta (ZPCachePtr) - .8 clc rts *-------------------------------------- ARP.EXPIRE jsr ARP.GetCache - ldx #K.ARPCACHE.SIZE - .1 lda (ZPCachePtr) beq .2 and #S.ARPCACHE.S.STATIC bne .2 - ldy #S.ARPCACHE.TTL sec lda (ZPCachePtr),y @@ -365,17 +313,14 @@ ARP.EXPIRE jsr ARP.GetCache sbc #0 sta (ZPCachePtr),y bcs .2 - lda #0 sta (ZPCachePtr) - .2 lda ZPCachePtr clc adc #S.ARPCACHE sta ZPCachePtr bcc .3 inc ZPCachePtr+1 - .3 dex bne .1 rts diff --git a/LIB/LIBTCPIP.S.CFG.txt b/LIB/LIBTCPIP.S.CFG.txt index d43d9000..7527dfac 100644 --- a/LIB/LIBTCPIP.S.CFG.txt +++ b/LIB/LIBTCPIP.S.CFG.txt @@ -3,14 +3,11 @@ NEW .LIST OFF *-------------------------------------- CFG.SET >PULLW ZPTmpPtr1 IPCFG - ldy #S.IPCFG-1 - .1 lda (ZPTmpPtr1),y sta IPCFG,y dey bpl .1 - ldx #5 .2 lda IPCFG+S.NETCFG.MAC,x @@ -20,37 +17,30 @@ CFG.SET >PULLW ZPTmpPtr1 IPCFG sta ARP.REP.SHA,x dex bpl .2 - ldx #3 - .3 lda IPCFG+S.IPCFG.IP,x sta SA.LOCAL+S.SOCKADDR.ADDR,x sta ARP.REQ.SPA,x sta ARP.REP.SPA,x dex bpl .3 - lda IPCFG+S.NETCFG.DevFlags and #S.DCB.NIC.FLAGS.ARPOFFLOAD beq .5 - >LDYA L.DCB.NIC >STYA IOCTL+S.IOCTL.BUFPTR lda #S.IOCTL.STATCODE.GETDCB sta IOCTL+S.IOCTL.STATCODE - >PUSHW L.IOCTL >PUSHBI IOCTL.STATUS lda IPCFG+S.NETCFG.DevID >SYSCALL2 IOCTL - + ldx #11 IP/MASK/GW - .4 lda IPCFG+S.IPCFG.IP,x sta DCB.NIC+S.DCB.NIC.IP,x dex bpl .4 - lda S.IOCTL.CTRLCODE.SETDCB sta S.IOCTL.CTRLCODE @@ -59,12 +49,10 @@ CFG.SET >PULLW ZPTmpPtr1 IPCFG lda IPCFG+S.NETCFG.DevID >SYSCALL2 IOCTL bcs .9 - .5 lda hDNSSocket beq .6 jsr SKT.Shutdown stz hDNSSocket - .6 lda IPCFG+S.IPCFG.DNS1 beq .8 @@ -74,22 +62,17 @@ CFG.SET >PULLW ZPTmpPtr1 IPCFG bcs .9 sta hDNSSocket - stz SA.LOCAL+S.SOCKADDR.PORT stz SA.LOCAL+S.SOCKADDR.PORT+1 - >PUSHW L.SA.LOCAL lda hDNSSocket jsr SKT.Bind bcs .9 - >LDYAI UDP.PORT.DNS >STYA SA.REMOTE+S.SOCKADDR.PORT - >PUSHW L.SA.REMOTE lda hDNSSocket jmp SKT.Connect - .8 clc .9 rts *-------------------------------------- diff --git a/LIB/LIBTCPIP.S.DNS.txt b/LIB/LIBTCPIP.S.DNS.txt index 0bd600ee..4b095535 100644 --- a/LIB/LIBTCPIP.S.DNS.txt +++ b/LIB/LIBTCPIP.S.DNS.txt @@ -25,20 +25,19 @@ DNS.Clear ldx #K.DNSCACHE.SIZE*S.DNSCACHE *\-------------------------------------- DNS.Query >PULLW ZPPtrDNS Get host string >PULLW ZPPtrIP Get IP address to fill - + DNS.Query.I jsr DNS.FIND.BY.NAME bcs DNS.REQUEST - + lda (ZPCachePtr) get status... bpl .9 Pending... - + lda ZPCachePtr clc adc #S.DNSCACHE.IP sta ZPCachePtr bcc .1 inc ZPCachePtr+1 - .1 ldy #3 .2 lda (ZPCachePtr),y @@ -57,42 +56,37 @@ DNS.REQUEST lda hDNSSocket jsr DNS.CSTR2DNS Y=DNS string len+0 bcs .99 - + iny lda /S.DNS.QTYPE.A sta DNS.MSG,y iny lda #S.DNS.QTYPE.A sta DNS.MSG,y - iny lda /S.DNS.QCLASS.IN sta DNS.MSG,y iny lda #S.DNS.QCLASS.IN sta DNS.MSG,y - iny - tya - sta DNS.MSG.LEN - lda #0 - sta DNS.MSG.LEN+1 - + + sty DNS.MSG.LEN + stz DNS.MSG.LEN+1 + >LDYA A2osX.RANDOM16 >STYA DNS.MSG.ID - >STYA DNS.TmpCache+S.DNSCACHE.ID - + lda #K.DNS.PENDING.TTL sta DNS.TmpCache+S.DNSCACHE.TTL stz DNS.TmpCache+S.DNSCACHE.TTL+1 stz DNS.TmpCache+S.DNSCACHE.TTL+2 stz DNS.TmpCache+S.DNSCACHE.TTL+3 - lda #S.DNSCACHE.STATUS.PENDING jsr DNS.ADD.I bcs .9 - + jsr DNS.REQUEST.SEND bcs .99 @@ -107,85 +101,73 @@ DNS.REQUEST lda hDNSSocket DNS.REQUEST.SEND >LDYAI UDP.PORT.DNS >STYA SA.REMOTE+S.SOCKADDR.PORT - + ldy #3 - + .1 lda IPCFG+S.IPCFG.DNS1,y sta SA.REMOTE+S.SOCKADDR.ADDR,y dey bpl .1 + jsr .4 - + ldy #3 - + .2 lda IPCFG+S.IPCFG.DNS2,y beq .8 sta SA.REMOTE+S.SOCKADDR.ADDR,y dey bpl .2 - -.4 >PUSHW L.SA.REMOTE +.4 >PUSHW L.SA.REMOTE >PUSHW DNS.MSG.LEN >PUSHW L.DNS.MSG lda hDNSSocket jmp SKT.SendTo - .8 clc - rts + rts *-------------------------------------- DNS.CSTR2DNS lda (ZPPtrDNS) beq .9 - >LDYA ZPPtrDNS >SYSCALL2 strlen tax bne .9 - + cpy #K.DNS.MAXLEN-1 bcs .9 - lda #0 Ending 0 sta DNS.MSG.NAME+1,y phy save len for later - ldx #0 dey - .1 lda (ZPPtrDNS),y and #$7f cmp #'.' beq .2 - cmp #'A' bcc .10 cmp #'Z'+1 bcs .10 adc #$20 - .10 inx bra .3 - -.2 txa +.2 txa ldx #0 - .3 sta DNS.MSG.NAME+1,y dey bpl .1 - stx DNS.MSG.NAME - pla Get back Len sec +1 adc #S.DNS-S.UDP compute offset next to NAME tay * clc rts - .9 sec - rts + rts */-------------------------------------- * # DNS.Add * Add a static DNS record @@ -195,23 +177,17 @@ DNS.CSTR2DNS lda (ZPPtrDNS) *\-------------------------------------- DNS.Add >PULLW ZPPtrDNS Get host string >PULLW ZPPtrIP Get host IP address - ldy #3 - .1 lda (ZPPtrIP),y sta DNS.TmpCache+S.DNSCACHE.IP,y dey bpl .1 - stz DNS.TmpCache+S.DNSCACHE.TTL stz DNS.TmpCache+S.DNSCACHE.TTL+1 stz DNS.TmpCache+S.DNSCACHE.TTL+2 stz DNS.TmpCache+S.DNSCACHE.TTL+3 - lda #S.DNSCACHE.STATUS.RESOLVED+S.DNSCACHE.STATUS.STATIC - DNS.ADD.I sta DNS.TmpCache - jsr DNS.FIND.BY.NAME bcc .2 Found, go update... @@ -223,18 +199,15 @@ DNS.ADD.I sta DNS.TmpCache txa ldy #S.DNSCACHE.hNAME sta (ZPCachePtr),y - + .2 lda DNS.TmpCache sta (ZPCachePtr) - ldy #S.DNSCACHE.ID - .3 lda DNS.TmpCache,y sta (ZPCachePtr),y iny cpy #S.DNSCACHE bne .3 - clc .9 rts */-------------------------------------- @@ -251,33 +224,25 @@ DNS.GetCAche >LDYA L.DNS.CACHE DNS.FIND.BY.NAME >LDYA L.DNS.CACHE >STYA ZPCachePtr - ldx #K.DNSCACHE.SIZE - .1 lda (ZPCachePtr) beq .6 empty DNS cache entry? - phx - >PUSHW ZPPtrDNS ldy #S.DNSCACHE.hNAME lda (ZPCachePtr),y >SYSCALL2 GetMemPtr - >SYSCALL2 StrCaseCmp plx bcc .8 - .6 lda ZPCachePtr clc adc #S.DNSCACHE sta ZPCachePtr bcc .7 inc ZPCachePtr+1 - .7 dex bne .1 - sec .8 rts *-------------------------------------- @@ -286,7 +251,6 @@ DNS.UPDATE.BY.ID >STYA ZPCachePtr ldx #K.DNSCACHE.SIZE - .1 lda (ZPCachePtr) beq .6 empty DNS cache entry? bmi .6 resolved ? @@ -302,33 +266,27 @@ DNS.UPDATE.BY.ID lda #S.DNSCACHE.STATUS.RESOLVED sta (ZPCachePtr) - ldy #S.DNSCACHE.TTL .2 lda DNS.TmpCache,y sta (ZPCachePtr),y iny cpy #S.DNSCACHE bne .2 - clc rts - .6 lda ZPCachePtr clc adc #S.DNSCACHE sta ZPCachePtr bcc .7 inc ZPCachePtr+1 - .7 dex bne .1 - sec rts *-------------------------------------- DNS.FIND.FREE >LDYA L.DNS.CACHE >STYA ZPCachePtr - lda #$ff sta TmpDWord sta TmpDWord+1 @@ -336,40 +294,30 @@ DNS.FIND.FREE >LDYA L.DNS.CACHE sta TmpDWord+3 ldx #K.DNSCACHE.SIZE - .1 lda (ZPCachePtr) beq .8 empty DNS cache entry? bit #S.DNSCACHE.STATUS.STATIC+S.DNSCACHE.STATUS.PENDING bne .7 Static/Pending.....skip - phx - ldy #S.DNSCACHE.TTL ldx #3 - sec - .2 lda TmpDWord,x is saved TTL greater then actual TTL? sbc (ZPCachePtr),y iny dex bpl .2 - bcc .6 no, - ldy #S.DNSCACHE.TTL ldx #3 - .3 lda (ZPCachePtr),y Save new lowest TTL sta TmpDWord,x iny dex bpl .3 - >LDYA ZPCachePtr >STYA ZPTmpPtr1 save lowest TTL slot ... - .6 plx .7 lda ZPCachePtr @@ -378,10 +326,8 @@ DNS.FIND.FREE >LDYA L.DNS.CACHE sta ZPCachePtr bcc .71 inc ZPCachePtr+1 - .71 dex bne .1 no empty slot found, discard lowest TTL - >LDYA ZPTmpPtr1 >STYA ZPCachePtr jsr DNS.FREE @@ -391,41 +337,31 @@ DNS.FIND.FREE >LDYA L.DNS.CACHE *-------------------------------------- DNS.EXPIRE >LDYA L.DNS.CACHE >STYA ZPCachePtr - ldx #K.DNSCACHE.SIZE - .1 lda (ZPCachePtr) beq .7 empty DNS cache entry? bit #S.DNSCACHE.STATUS.STATIC bne .7 - phx - ldy #S.DNSCACHE.TTL ldx #4 clc - .2 lda (ZPCachePtr),y sbc #0 sta (ZPCachePtr),y iny dex bne .2 - bcs .6 - jsr DNS.FREE - -.6 plx - +.6 plx .7 lda ZPCachePtr clc adc #S.DNSCACHE sta ZPCachePtr bcc .8 inc ZPCachePtr+1 - .8 dex bne .1 @@ -435,12 +371,10 @@ DNS.EXPIRE >LDYA L.DNS.CACHE DNS.FREE ldy #S.DNSCACHE.hNAME lda (ZPCachePtr),y beq .1 - >SYSCALL2 FreeMem .1 lda #0 sta (ZPCachePtr) -DNS.FREE.RTS - rts +DNS.FREE.RTS rts *-------------------------------------- DNS.POLL lda hDNSSocket beq DNS.FREE.RTS @@ -463,12 +397,10 @@ DNS.POLL lda hDNSSocket iny lda (ZPFrameInPtr),y sta DNS.TmpCache+S.DNSCACHE.ID+1 - ldy #S.DNS.ANCOUNT+1 lda (ZPFrameInPtr),y beq .9 pha save Answer count... - ldy #S.DNS.QDCOUNT+1 lda (ZPFrameInPtr),y @@ -476,32 +408,25 @@ DNS.POLL lda hDNSSocket tax beq .3 no QUERY to skip - .1 lda (ZPFrameInPtr),y beq .2 bpl .11 Pointer ? iny yes, skip 2 bytes iny bra .2 - .11 tya sec adc (ZPFrameInPtr),y Skip LEN+1 bytes tay bra .1 - .2 iny iny iny Skip QTYPE & QCLASS iny - iny next pos - .21 dex skip another QUERY ? bne .1 - plx get back answer count - .3 lda (ZPFrameInPtr),y beq .32 bpl .31 Pointer ? @@ -514,12 +439,10 @@ DNS.POLL lda hDNSSocket adc (ZPFrameInPtr),y Skip LEN+1 bytes tay bra .3 - .32 iny skip S.DNS.QTYPE HIGH lda (ZPFrameInPtr),y cmp #S.DNS.QTYPE.A beq .40 - tya clc adc #7 skip CLASS,TTL+DATALENHIGH @@ -530,12 +453,9 @@ DNS.POLL lda hDNSSocket dex bne .3 bra .9 - .40 iny skip QCLASS iny - iny next pos - ldx #3 .4 lda (ZPFrameInPtr),y sta DNS.TmpCache+S.DNSCACHE.TTL,x @@ -546,16 +466,13 @@ DNS.POLL lda hDNSSocket iny skip DATALEN iny ldx #0 - .5 lda (ZPFrameInPtr),y sta DNS.TmpCache+S.DNSCACHE.IP,x iny inx cpx #4 bne .5 - jsr DNS.UPDATE.BY.ID - .9 lda hFrameIn >SYSCALL2 FreeMem clc diff --git a/LIB/LIBTCPIP.S.FRM.txt b/LIB/LIBTCPIP.S.FRM.txt index 14f12cd4..75cef98b 100644 --- a/LIB/LIBTCPIP.S.FRM.txt +++ b/LIB/LIBTCPIP.S.FRM.txt @@ -9,7 +9,6 @@ FRM.GetTargetSKT.TCPUDP iny lda (ZPFrameInPtr),y sta SKT.REM.ADDR+S.SOCKADDR.PORT - iny #S.TCPUDP.DSTPORT lda (ZPFrameInPtr),y sta SKT.LOC.ADDR+S.SOCKADDR.PORT+1 @@ -20,23 +19,19 @@ FRM.GetTargetSKT.TCPUDP FRM.GetTargetSKT.RAW ldy #S.IP.SRC+3 ldx #3 - .1 lda (ZPFrameInPtr),y sta SKT.REM.ADDR+S.SOCKADDR.ADDR,x dey dex bpl .1 - ldy #S.IP.DST+3 ldx #3 - .2 lda (ZPFrameInPtr),y sta SKT.LOC.ADDR+S.SOCKADDR.ADDR,x dey dex bpl .2 - - rts + rts *-------------------------------------- * FRM.NewIP * In: @@ -52,55 +47,43 @@ FRM.NewIP stx .8+1 bne .1 lda #S.TCP bra .4 - .1 cpx #S.IP.PROTOCOL.UDP bne .2 lda #S.UDP bra .4 - .2 lda #S.IP bra .4 - .4 sta .5+1 save Header len for reset later clc adc ZPDataOutLen sta ZPFrameOutLen tay - lda #0 adc ZPDataOutLen+1 sta ZPFrameOutLen+1 - >SYSCALL2 getmem bcs .9 - stx hFrameOut >STYA ZPFrameOutPtr ldy #0 - .5 ldx #$ff Self Modified, header length - lda #0 .6 sta (ZPFrameOutPtr),y iny dex bne .6 - tya * clc adc ZPFrameOutPtr sta ZPDataOutPtr - lda #0 adc ZPFrameOutPtr+1 sta ZPDataOutPtr+1 - lda IPCFG+S.NETCFG.DevFlags and #S.DCB.NIC.FLAGS.IPOFFLOAD bne .7 - ldy #S.ETH.EII.TYPE lda /S.ETH.EII.TYPE.IP sta (ZPFrameOutPtr),y @@ -111,7 +94,6 @@ FRM.NewIP stx .8+1 ldy #S.IP.V.IHL.DSCP.ECN lda #$45 sta (ZPFrameOutPtr),y - * iny * lda #$0 * sta (ZPFrameOutPtr),y @@ -120,18 +102,14 @@ FRM.NewIP stx .8+1 * sta (ZPFrameOutPtr),y * iny * sta (ZPFrameOutPtr),y - ldy #S.IP.IDENTIFICATION+1 - lda IP.ID ldx IP.ID+1 inc bne .61 inx stx IP.ID+1 - .61 sta IP.ID - sta (ZPFrameOutPtr),y dey txa @@ -145,7 +123,6 @@ FRM.NewIP stx .8+1 .8 lda #$ff sta (ZPFrameOutPtr),y - .9 rts *-------------------------------------- * clc Queue if fail @@ -154,17 +131,14 @@ FRM.NewIP stx .8+1 FRM.SendIP php ldx #3 Copy SRC.IP even if IP offload ldy #S.IP.SRC+3 for proper UDP/TCP CRC calculation - .1 lda IPCFG+S.IPCFG.IP,x sta (ZPFrameOutPtr),y dey dex bpl .1 - lda IPCFG+S.NETCFG.DevFlags and #S.DCB.NIC.FLAGS.IPOFFLOAD bne .21 - ldy #S.IP.TOTAL.LENGTH+1 lda ZPFrameOutLen sec @@ -174,13 +148,11 @@ FRM.SendIP php lda ZPFrameOutLen+1 sbc /S.ETH.EII sta (ZPFrameOutPtr),y - lda #0 ldy #S.IP.HDR.CHECKSUM sta (ZPFrameOutPtr),y iny sta (ZPFrameOutPtr),y - stz IP.CHECKSUM RESET IP CHECKSUM stz IP.CHECKSUM+1 @@ -188,7 +160,6 @@ FRM.SendIP php ldy #S.IP.V.IHL.DSCP.ECN ldx #10 10 words for IP Header - .2 lda (ZPFrameOutPtr),y adc IP.CHECKSUM sta IP.CHECKSUM @@ -200,7 +171,6 @@ FRM.SendIP php iny dex bne .2 - ldy #S.IP.HDR.CHECKSUM lda IP.CHECKSUM adc #0 @@ -218,40 +188,30 @@ FRM.SendIP php bne .3 jsr IP.ComputeTCPChecksum bra .5 - .3 cmp #S.IP.PROTOCOL.UDP bne .4 - lda ZPFrameOutLen sec sbc #S.IP - ldy #S.UDP.LENGTH+1 sta (ZPFrameOutPtr),y - lda ZPFrameOutLen+1 sbc /S.IP - dey sta (ZPFrameOutPtr),y - jsr IP.ComputeUDPChecksum bra .5 - .4 cmp #S.IP.PROTOCOL.ICMP bne .5 jsr IP.ComputeICMPChecksum - .5 lda IPCFG+S.NETCFG.DevFlags and #S.DCB.NIC.FLAGS.ARPOFFLOAD bne .6 jsr IP.SetDestMAC bcs FRM.Queue - .6 jsr FRM.Send bcs FRM.Queue - jsr FRM.Discard plp @@ -260,7 +220,6 @@ FRM.SendIP php *-------------------------------------- FRM.Queue plp bcs .9 DONT queue - ldy hFrameOut no hFrame, cannot queue for retry beq FRM.Discard.9 @@ -268,12 +227,9 @@ FRM.Queue plp inx cpx #K.FRMQUEUE.SIZE bne .1 - ldx #0 - .1 cpx FRM.QUEUE.Tail beq FRM.Discard CS - ldy FRM.QUEUE.Head stx FRM.QUEUE.Head @@ -286,7 +242,6 @@ FRM.Queue plp sta FRM.QUEUE.LenL,y lda ZPFrameOutLen+1 sta FRM.QUEUE.LenH,y - clc .9 rts *-------------------------------------- @@ -294,7 +249,6 @@ FRM.Discard lda hFrameOut beq FRM.Discard.9 >SYSCALL2 FreeMem stz hFrameOut - FRM.Discard.9 sec rts *-------------------------------------- @@ -302,7 +256,6 @@ FRM.Retry ldx FRM.QUEUE.Tail .1 cpx FRM.QUEUE.Head beq .8 Queue is empty, exit... - lda FRM.QUEUE.LenL,x sta ZPFrameOutLen lda FRM.QUEUE.LenH,x @@ -311,16 +264,13 @@ FRM.Retry ldx FRM.QUEUE.Tail lda FRM.QUEUE.hMem,x >SYSCALL2 GetMemPtr >STYA ZPFrameOutPtr - ldx FRM.QUEUE.Tail - lda FRM.QUEUE.State,x cmp #ERR.ARP.PENDING bne .2 jsr IP.SetDestMAC Err is ARP or higher, retry getting MAC bcs .3 still error getting dest MAC - .2 jsr FRM.Send try sending again to DRV bcc .4 @@ -331,27 +281,21 @@ FRM.Retry ldx FRM.QUEUE.Tail .4 ldx FRM.QUEUE.Tail lda FRM.QUEUE.hMem,x Success,or max retry, discard entry - inx cpx #K.FRMQUEUE.SIZE bne .5 - ldx #0 - .5 stx FRM.QUEUE.Tail >SYSCALL2 FreeMem - bra FRM.Retry .8 rts *-------------------------------------- FRM.Send ldx #3 - .1 lda ZPFrameOutPtr,x Get Frame Ptr & Len sta IOCTL+S.IOCTL.BUFPTR,x dex bpl .1 - FRM.Send.IOCTL >PUSHW L.IOCTL >PUSHBI IOCTL.WRITE lda IPCFG+S.NETCFG.DevID diff --git a/LIB/LIBTCPIP.S.HST.txt b/LIB/LIBTCPIP.S.HST.txt index 29dc89fd..902d2492 100644 --- a/LIB/LIBTCPIP.S.HST.txt +++ b/LIB/LIBTCPIP.S.HST.txt @@ -4,20 +4,21 @@ NEW *-------------------------------------- HST.GetByName >PULLW ZPPtrDNS >PULLW ZPPtrIP - + ldx #3 - + .1 txa clc adc ZPPtrIP tay lda ZPPtrIP+1 adc #0 + >PUSHYA @IP[3][2][1][0] dex bpl .1 - + >PUSHBI 8 4 PTRs on stack >PUSHW L.HST.SScanF >LDYA ZPPtrDNS @@ -29,8 +30,6 @@ HST.GetByName >PULLW ZPPtrDNS *-------------------------------------- HST.GetByAddr >PULLW ZPPtrIP >PULLW ZPPtrDNS - - sec rts *-------------------------------------- diff --git a/LIB/LIBTCPIP.S.ICMP.txt b/LIB/LIBTCPIP.S.ICMP.txt index c17707e7..c953f959 100644 --- a/LIB/LIBTCPIP.S.ICMP.txt +++ b/LIB/LIBTCPIP.S.ICMP.txt @@ -6,45 +6,37 @@ ICMP.IN ldy #S.ICMP.TYPE lda (ZPFrameInPtr),y cmp #S.ICMP.TYPE.ECHOREP beq ICMP.IN.ECHOREP - cmp #S.ICMP.TYPE.ECHOREQ bne ICMP.IN.EXIT *-------------------------------------- ICMP.IN.ECHOREQ ldy #S.IP.DST+3 ldx #3 - .1 lda (ZPFrameInPtr),y cmp IPCFG+S.IPCFG.IP,x bne ICMP.IN.EXIT dey dex bne .1 - ldy #S.ICMP.TYPE lda #S.ICMP.TYPE.ECHOREP sta (ZPFrameInPtr),y jsr ARP.AddFromFrameInPtr - lda hFrameIn * stz hFrameIn DO NOT DISCARD this frame,it is SOURCE frame!!! - sta hFrameOut >LDYA ZPFrameInPtr >STYA ZPFrameOutPtr ldx #3 ldy #S.IP.DST+3 - .3 lda ARP.TmpCache+S.ARPCACHE.IP,x sta (ZPFrameOutPtr),y dey dex bpl .3 - clc Queue if fail jmp FRM.SendIP - ICMP.IN.EXIT lda hFrameIn beq .8 >SYSCALL2 FreeMem @@ -52,7 +44,6 @@ ICMP.IN.EXIT lda hFrameIn .8 rts *-------------------------------------- ICMP.IN.ECHOREP jsr FRM.GetTargetSKT.RAW - ldy #S.ICMP.IDENTIFIER lda (ZPFrameInPtr),y sta SKT.LOC.ADDR+S.SOCKADDR.PORT+1 @@ -62,12 +53,9 @@ ICMP.IN.ECHOREP jsr FRM.GetTargetSKT.RAW jsr SKT.FindMatchingLocRem bcs ICMP.IN.EXIT - ldy #S.SOCKET.PROTO lda (ZPPtrSKT),y - cmp #S.IP.PROTOCOL.ICMP - bne ICMP.IN.EXIT - + cmp #S.IP.PROTOCOL.ICMP bne ICMP.IN.EXIT lda hFrameIn jsr SKT.AddToQueueA bcs ICMP.IN.EXIT Q full, discard... diff --git a/LIB/LIBTCPIP.S.IP.txt b/LIB/LIBTCPIP.S.IP.txt index b2621b4f..8a1ff3fc 100644 --- a/LIB/LIBTCPIP.S.IP.txt +++ b/LIB/LIBTCPIP.S.IP.txt @@ -8,7 +8,6 @@ IP.IN ldy #S.IP.PROTOCOL bne .2 jmp ICMP.IN - .2 cmp #S.IP.PROTOCOL.UDP bne .3 @@ -20,15 +19,12 @@ IP.IN ldy #S.IP.PROTOCOL jsr SKT.AddToQueueA bcs .9 Q full, discard... rts - .3 cmp #S.IP.PROTOCOL.TCP bne .9 jsr TCP.IN TCP may NOT discard FrameIn - .9 lda hFrameIn beq .8 >SYSCALL2 FreeMem - .8 clc rts *-------------------------------------- @@ -41,15 +37,11 @@ IP.ComputeICMPChecksum sbc #S.IP eor #$ff tax - lda ZPFrameOutLen+1 sbc /S.IP eor #$ff - ldy #S.ICMP.CHECKSUM - clc - jmp IP.ComputeChecksum *-------------------------------------- IP.ComputeUDPChecksum @@ -57,7 +49,6 @@ IP.ComputeUDPChecksum ldy #S.UDP.LENGTH+1 lda (ZPFrameOutPtr),y - adc #S.IP.PROTOCOL.UDP sta IP.CHECKSUM+1 @@ -65,7 +56,6 @@ IP.ComputeUDPChecksum lda (ZPFrameOutPtr),y adc /S.IP.PROTOCOL.UDP (all zero) sta IP.CHECKSUM - jsr IP.AddSrcDstIPToChecksum ldy #S.UDP.LENGTH+1 @@ -76,22 +66,18 @@ IP.ComputeUDPChecksum dey lda (ZPFrameOutPtr),y eor #$ff - ldy #S.UDP.CHECKSUM bra IP.ComputeChecksum *-------------------------------------- -IP.ComputeTCPChecksum +IP.ComputeTCPChecksum lda ZPFrameOutLen sec sbc #S.IP sta IP.CHECKSUM.TMP - lda ZPFrameOutLen+1 sbc /S.IP sta IP.CHECKSUM.TMP+1 - clc - * lda IP.CHECKSUM.TMP+1 * adc /S.IP.PROTOCOL.TCP (all zero) sta IP.CHECKSUM @@ -99,15 +85,12 @@ IP.ComputeTCPChecksum lda IP.CHECKSUM.TMP adc #S.IP.PROTOCOL.TCP sta IP.CHECKSUM+1 - jsr IP.AddSrcDstIPToChecksum - lda IP.CHECKSUM.TMP eor #$ff tax lda IP.CHECKSUM.TMP+1 eor #$ff - ldy #S.TCP.CHECKSUM *-------------------------------------- * X,A = !ByteCount, Y = Offset in Frame @@ -125,15 +108,13 @@ IP.ComputeChecksum >STYA ZPTmpPtr1 ldy #S.IP - + .1 inx bne .11 pla inc beq .8 - pha - .11 lda (ZPTmpPtr1),y adc IP.CHECKSUM sta IP.CHECKSUM @@ -141,28 +122,23 @@ IP.ComputeChecksum iny bne .20 inc ZPTmpPtr1+1 - .20 inx bne .2 pla inc beq .7 - pha .2 lda (ZPTmpPtr1),y adc IP.CHECKSUM+1 sta IP.CHECKSUM+1 - iny bne .1 inc ZPTmpPtr1+1 bra .1 - .7 adc IP.CHECKSUM+1 A=0 from beq .7 sta IP.CHECKSUM+1 - .8 ply lda IP.CHECKSUM adc #0 Don't forget to add last carry!!! @@ -178,7 +154,6 @@ IP.ComputeChecksum IP.AddSrcDstIPToChecksum ldy #S.IP.SRC ldx #4 4 words for SRC & DST IP - .1 lda (ZPFrameOutPtr),y adc IP.CHECKSUM sta IP.CHECKSUM @@ -189,34 +164,26 @@ IP.AddSrcDstIPToChecksum iny dex bne .1 - rts *-------------------------------------- IP.SetDestMAC ldy #S.IP.DST lda (ZPFrameOutPtr),y iny - .1 and (ZPFrameOutPtr),y iny cpy #S.IP.DST+4 bne .1 - cmp #$FF bne .3 not a broadcast.... - ldy #S.ETH.DSTMAC - .2 sta (ZPFrameOutPtr),y iny cpy #S.ETH.DSTMAC+6 bne .2 - clc rts - .3 ldy #S.IP.DST+3 ldx #3 - .4 lda (ZPFrameOutPtr),y eor IPCFG+S.IPCFG.IP,x and IPCFG+S.IPCFG.MASK,x @@ -227,33 +194,27 @@ IP.SetDestMAC ldy #S.IP.DST ldy #S.IP.DST+3 Same network, query ARP for dest IP ldx #3 - .5 lda (ZPFrameOutPtr),y sta ARP.TmpCache+S.ARPCACHE.IP,x dey dex bpl .5 bra .8 - .6 ldx #3 Not Same network, query ARP for GW .7 lda IPCFG+S.IPCFG.GW,x sta ARP.TmpCache+S.ARPCACHE.IP,x dex bpl .7 - .8 jsr ARP.QUERY.I bcs .99 - ldx #5 ldy #S.ETH.DSTMAC+5 - .11 lda ARP.TmpCache+S.ARPCACHE.MAC,x sta (ZPFrameOutPtr),y dey dex bpl .11 - clc .99 rts *-------------------------------------- diff --git a/LIB/LIBTCPIP.S.SKT.txt b/LIB/LIBTCPIP.S.SKT.txt index 3e134172..5f30d4e1 100644 --- a/LIB/LIBTCPIP.S.SKT.txt +++ b/LIB/LIBTCPIP.S.SKT.txt @@ -75,13 +75,11 @@ SKT.Socket.STREAM .9 rts SKT.Socket.FindFree ldy #0 - .1 lda SKT.TABLE,y beq .2 iny cpy #K.SKTTABLE.SIZE bne .1 - txa >SYSCALL2 freemem lda #E.OOH @@ -146,7 +144,6 @@ SKT.bind >SYSCALL2 GetMemPtr lda #ERR.SKT.BUSY * sec rts - .7 inx cpx #K.SKTTABLE.SIZE bne .2 @@ -186,14 +183,12 @@ SKT.connect.SEQPACKET lda #S.SOCKET.TCP.S.OPENED jsr SKT.StoreTCB.S - lda #S.TCP.OPTIONS.SYN jsr TCP.OUT.SendOptA Send SYN bcs .8 failed ARP lookup.... lda #S.SOCKET.TCP.S.SYNSENT jmp SKT.StoreTCB.S - .8 clc rts */-------------------------------------- @@ -232,8 +227,7 @@ SKT.listen >SYSCALL2 GetMemPtr .9 lda #ERR.SKT.BAD sec -SKT.listen.RTS - rts +SKT.listen.RTS rts */-------------------------------------- * # Accept * Accept a connection on a socket @@ -304,8 +298,8 @@ SKT.shutdown pha lda (ZPPtrSKT),y cmp #S.SOCKET.T.STREAM beq SKT.shutdown.STREAM -*-------------------------------------- -SKT.shutdown.LISTEN +*-------------------------------------- +SKT.shutdown.LISTEN SKT.shutdown.RAW SKT.shutdown.DGRAM SKT.shutdown.SEQPACKET @@ -350,11 +344,10 @@ SKT.shutdown.SEQPACKET >SYSCALL2 freemem * clc rts -*-------------------------------------- +*-------------------------------------- SKT.shutdown.STREAM pla jsr SKT.GetTCB - ldy #S.SOCKET.TCP.S lda (ZPPtrSKT),y cmp #S.SOCKET.TCP.S.ESTBLSH @@ -366,10 +359,8 @@ SKT.shutdown.STREAM lda #S.SOCKET.TCP.S.FINWT1 jmp SKT.StoreTCB.S - .1 cmp #S.SOCKET.TCP.S.CLWAIT beq .3 - .2 lda #S.TCP.OPTIONS.RST jsr TCP.OUT.SendOptA Send RST bcs .9 @@ -377,8 +368,8 @@ SKT.shutdown.STREAM .3 lda #S.SOCKET.TCP.S.TIMEWT jmp SKT.StoreTCB.S -.8 clc -.9 rts +.8 clc +.9 rts */-------------------------------------- * # Read (STREAM) * ## C @@ -406,13 +397,11 @@ SKT.Read jsr SKT.PullhFDDataInPtrLen lda (ZPPtrSKT),y sbc ZPDataInLen+1 bcs SKT.GetDataFromSktIn more data in pipe, get full buffer of data - stx ZPDataInLen less data than INUSED, Get only INUSED data lda (ZPPtrSKT),y sta ZPDataInLen+1 bra SKT.GetDataFromSktIn - .7 jsr SKT.CheckStream bcs .99 I/O error @@ -428,16 +417,13 @@ SKT.Read jsr SKT.PullhFDDataInPtrLen *-------------------------------------- SKT.GetDataFromSktIn jsr SKT.GetTCB - ldy #S.SOCKET.SQ.hInMem lda (ZPPtrSKT),y - .DO AUXPIPE=1 >SYSCALL2 GetStkObjPtr .ELSE >SYSCALL2 GetMemPtr .FIN - sty ZPTmpPtr1 * clc @@ -446,11 +432,9 @@ SKT.GetDataFromSktIn jsr SKT.GetNotDataInLen pha - .DO AUXPIPE=1 jsr SKT.SetupZPCode .FIN - ldy SKT.Cache+S.SOCKET.TCP.INTAIL .1 inx Check if room left in dest buffer @@ -466,7 +450,6 @@ SKT.GetDataFromSktIn .ELSE lda (ZPTmpPtr1),y .FIN - sta (ZPDataInPtr) inc ZPDataInPtr bne .3 @@ -474,7 +457,6 @@ SKT.GetDataFromSktIn .3 iny bne .1 - inc ZPTmpPtr1+1 inc SKT.Cache+S.SOCKET.TCP.INTAIL+1 @@ -488,7 +470,6 @@ SKT.GetDataFromSktIn sbc /K.TCP.WSIZE sta ZPTmpPtr1+1 bra .1 - .8 sty SKT.Cache+S.SOCKET.TCP.INTAIL * >ADC16 SKT.Cache+S.SOCKET.TCP.INFREE,ZPDataInLen @@ -500,7 +481,6 @@ SKT.GetDataFromSktIn jsr SKT.SubDataInLenAtSktX jsr SKT.StoreTCB - jsr TCP.SetSocketTCPO.ACK ACK=1 -> send WSIZE >LDYA ZPDataInLen @@ -540,7 +520,6 @@ SKT.AddDataToSktIn jsr SKT.GetNotDataInLen pha - ldy SKT.Cache+S.SOCKET.TCP.INHEAD .1 .DO AUXPIPE=1 @@ -563,33 +542,27 @@ SKT.AddDataToSktIn .4 iny bne .2 - .DO AUXPIPE=1 sta CLRWRITEAUX .FIN inc ZPTmpPtr1+1 - inc SKT.Cache+S.SOCKET.TCP.INHEAD+1 lda SKT.Cache+S.SOCKET.TCP.INHEAD+1 cmp /K.TCP.WSIZE bne .1 - stz SKT.Cache+S.SOCKET.TCP.INHEAD+1 - lda ZPTmpPtr1+1 * sec sbc /K.TCP.WSIZE sta ZPTmpPtr1+1 bra .1 - .9 sec rts .8 .DO AUXPIPE=1 sta CLRWRITEAUX .FIN - sty SKT.Cache+S.SOCKET.TCP.INHEAD * >ADC16 SKT.Cache+S.SOCKET.TCP.INUSED,ZPDataInLen @@ -616,14 +589,12 @@ SKT.Write jsr SKT.PullhFDDataInPtrLen jsr SKT.CheckStream bcs .99 - jsr SKT.GetTCB ldx SKT.Cache+S.SOCKET.TCP.OUTFREE cpx ZPDataInLen lda SKT.Cache+S.SOCKET.TCP.OUTFREE+1 sbc ZPDataInLen+1 - bcs SKT.AddDataToSktOut lda #E.NODATA Not enough room in Q,no data transfered @@ -654,7 +625,6 @@ SKT.AddDataToSktOut jsr SKT.GetNotDataInLen pha - .1 .DO AUXPIPE=1 sta SETWRITEAUX .FIN @@ -676,13 +646,10 @@ SKT.AddDataToSktOut .4 iny bne .2 - inc ZPTmpPtr1+1 - .DO AUXPIPE=1 sta CLRWRITEAUX .FIN - inc SKT.Cache+S.SOCKET.TCP.OUTHEAD+1 lda SKT.Cache+S.SOCKET.TCP.OUTHEAD+1 cmp /K.TCP.WSIZE @@ -699,7 +666,6 @@ SKT.AddDataToSktOut .8 .DO AUXPIPE=1 sta CLRWRITEAUX .FIN - sty SKT.Cache+S.SOCKET.TCP.OUTHEAD * >SBC16 SKT.Cache+S.SOCKET.TCP.OUTFREE,ZPDataInLen @@ -761,7 +727,6 @@ SKT.GetDataFromSktOut * clc adc SKT.Cache+S.SOCKET.TCP.OUTTAILSENT+1 sta ZPTmpPtr1+1 - lda ZPDataOutLen eor #$FF tax @@ -796,14 +761,11 @@ SKT.GetDataFromSktOut .3 iny bne .1 - inc ZPTmpPtr1+1 - inc SKT.Cache+S.SOCKET.TCP.OUTTAILSENT+1 lda SKT.Cache+S.SOCKET.TCP.OUTTAILSENT+1 cmp /K.TCP.WSIZE bne .1 - stz SKT.Cache+S.SOCKET.TCP.OUTTAILSENT+1 lda ZPTmpPtr1+1 @@ -949,10 +911,8 @@ SKT.Send clc jsr SKT.PullhFDDataInPtrLen plp bcc .1 - jsr SKT.PullRemAddr * jsr SKT.SetRemAddr - .1 ldy #S.SOCKET.T lda (ZPPtrSKT),y tax @@ -964,10 +924,10 @@ SKT.Send.RAW ldy #S.SOCKET.PROTO >LDYA ZPDataInLen jsr FRM.NewIP bcc SKT.Send.8 - rts *-------------------------------------- SKT.Send.DGRAM ldx #S.IP.PROTOCOL.UDP + >LDYA ZPDataInLen jsr FRM.NewIP bcs SKT.Send.9 jsr SKT.SetFrameOutTCPUDPPorts @@ -1046,14 +1006,11 @@ SKT.EOF.I ldy #S.SOCKET.TCP.INUSED iny ora (ZPPtrSKT),y bne .8 some DATA... - jsr SKT.CheckStream bcs .9 - lda #$ff no DATA, EOF = true * clc rts - .8 lda #0 ...EOF = false * clc .9 rts @@ -1072,9 +1029,7 @@ SKT.CheckStream ldy #S.SOCKET.T lda (ZPPtrSKT),y cmp #S.SOCKET.TCP.S.CLWAIT bcc .8 ESTBLSH or less - bne .91 more than CLWAIT - .8 lda #0 clc rts @@ -1083,7 +1038,7 @@ SKT.CheckStream ldy #S.SOCKET.T sec rts -.99 +.99 SKT.BAD lda #ERR.SKT.BAD sec rts @@ -1169,10 +1124,9 @@ SKT.FindMatchingLocRem ldy #S.SOCKET.PROTO lda (ZPPtrSKT),y - ldy #S.IP.PROTOCOL + ldy #S.IP.PROTOCOL cmp (ZPFrameInPtr),y bne .8 - ldy #S.SOCKET.LOC.ADDR .2 lda (ZPPtrSKT),y @@ -1208,14 +1162,13 @@ SKT.FindMatchingLocRem lda (ZPPtrSKT),y and #S.SOCKET.O.BROADCAST bne .43 -* sec +* sec rts this socket does not accept broadcast .41 ldy #S.SOCKET.REM.ADDR lda (ZPPtrSKT),y bne .44 - .43 ldy #S.SOCKET.REM.PORT Frame is Broadcast, or listening is 0.0.0.0 check port only .42 lda (ZPPtrSKT),y @@ -1267,12 +1220,10 @@ SKT.AddToQueueA pha rts *-------------------------------------- SKT.NewTCB ldx #S.SOCKET.TCP.INSEQNUM - .1 stz SKT.Cache,x inx cpx #S.SOCKET.TCP bne .1 - >LDYAI K.TCP.WSIZE >STYA SKT.Cache+S.SOCKET.TCP.INFREE @@ -1297,14 +1248,13 @@ SKT.NewTCB ldx #S.SOCKET.TCP.INSEQNUM txa ldy #S.SOCKET.SQ.hOutMem sta (ZPPtrSKT),y - ldx #3 .2 lda A2osX.TIMER16,x sta SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ,x dex bpl .2 -* clc +* clc .9 rts *-------------------------------------- SKT.GetTCB ldy #S.SOCKET.TCP.INSEQNUM @@ -1350,7 +1300,6 @@ SKT.SetFrameOutDstIP bpl .2 rts - .3 ldy #S.IP.DST+3 ...sent to provided SentTo ADDR .4 lda SKT.REM.ADDR+S.SOCKADDR.ADDR,x @@ -1376,12 +1325,10 @@ SKT.SetFrameOutTCPUDPPorts ldy #S.SOCKET.REM.PORT lda (ZPPtrSKT),y beq .1 - tax iny lda (ZPPtrSKT),y bra .2 - .1 lda SKT.REM.ADDR+S.SOCKADDR.PORT+1 ldx SKT.REM.ADDR+S.SOCKADDR.PORT @@ -1410,9 +1357,7 @@ SKT.CopyDataInToOut jsr SKT.GetNotDataInLen pha - ldy #0 - .1 inx bne .2 pla diff --git a/LIB/LIBTCPIP.S.TCP.txt b/LIB/LIBTCPIP.S.TCP.txt index b6c7894a..89af46e6 100644 --- a/LIB/LIBTCPIP.S.TCP.txt +++ b/LIB/LIBTCPIP.S.TCP.txt @@ -10,7 +10,6 @@ TCP.IN jsr FRM.GetTargetSKT.TCPUDP lda (ZPFrameInPtr),y and #S.TCP.OPTIONS.RST RST ? go Kill this socket... bne TCP.IN.RST ...and discard frame - ldy #S.SOCKET.TCP.S lda (ZPPtrSKT),y asl @@ -33,16 +32,13 @@ TCP.IN.JMP.LISTEN tax Same type a listening socket iny #S.SOCKET.PROTO lda (ZPPtrSKT),y - jsr SKT.Socket.I get new socket in ZPTmpPtr1 bcs TCP.IN.JMP.CLOSED jsr SKT.AddToQueueA Queued successfully ? - bcs TCP.IN.JMP.CLOSED no, discard frame and new socket jsr ARP.AddFromFrameInPtr - lda ZPTmpPtr1 sta ZPPtrSKT lda ZPTmpPtr1+1 @@ -53,16 +49,13 @@ TCP.IN.JMP.LISTEN jsr SKT.NewTCB bcs .99 - jsr TCP.IN.ACKTheSYN - lda #S.TCP.OPTIONS.SYN+S.TCP.OPTIONS.ACK jsr TCP.OUT.SendOptA SYN received, Send SYN.ACK bcs .9 lda #S.SOCKET.TCP.S.SYNRCVD jmp SKT.StoreTCB.S - .9 lda #ERR.SKT.OOS .99 rts *-------------------------------------- @@ -74,7 +67,6 @@ TCP.IN.JMP.SYNSENT bne .9 jsr SKT.GetTCB - ldx #3 ldy #S.TCP.ACKNUM+3 @@ -94,13 +86,10 @@ TCP.IN.JMP.SYNSENT lda #S.TCP.OPTIONS.ACK jsr TCP.OUT.SendOptA SYN.ACK received, Send, ACK bcs .9 - lda #S.SOCKET.TCP.S.ESTBLSH jmp SKT.StoreTCB.S - .9 lda #S.TCP.OPTIONS.RST jsr TCP.OUT.SendOptA Send RST - ldx SKT.Index lda SKT.TABLE,x jmp SKT.shutdown @@ -110,7 +99,6 @@ TCP.IN.JMP.SYNRCVD lda (ZPFrameInPtr),y cmp #S.TCP.OPTIONS.ACK bne .8 - jsr SKT.GetTCB ldx #3 @@ -127,7 +115,6 @@ TCP.IN.JMP.SYNRCVD dey dex bpl .1 - lda #S.SOCKET.TCP.S.ESTBLSH jmp SKT.StoreTCB.S @@ -176,13 +163,10 @@ TCP.IN.JMP.ESTBLSH adc SKT.Cache+S.SOCKET.TCP.OUTTAIL+1 and /K.TCP.WSIZE-1 sta SKT.Cache+S.SOCKET.TCP.OUTTAIL+1 - pla - clc adc SKT.Cache+S.SOCKET.TCP.OUTFREE sta SKT.Cache+S.SOCKET.TCP.OUTFREE - txa adc SKT.Cache+S.SOCKET.TCP.OUTFREE+1 sta SKT.Cache+S.SOCKET.TCP.OUTFREE+1 @@ -198,7 +182,6 @@ TCP.IN.JMP.ESTBLSH jsr SKT.StoreTCB * Store incoming data .4 jsr TCP.IN.SetDataInPtrAndLen - lda ZPDataInLen Incoming Data in this frame ? ora ZPDataInLen+1 beq .7 No data, ... @@ -225,7 +208,6 @@ TCP.IN.JMP.ESTBLSH jsr TCP.AddAYToSktCacheAtX .6 jsr SKT.StoreTCB update socket - * jsr TCP.SetSocketTCPO.ACK ...and ack data lda #S.TCP.OPTIONS.ACK jsr TCP.OUT.SendOptA @@ -239,17 +221,14 @@ TCP.IN.JMP.ESTBLSH lda #S.SOCKET.TCP.S.CLWAIT ldy #S.SOCKET.TCP.S sta (ZPPtrSKT),y - jsr TCP.IN.ACKTheFIN lda #S.TCP.OPTIONS.FIN+S.TCP.OPTIONS.ACK jsr TCP.SetSocketTCPO FIN received, Send FIN.ACK -* jsr TCP.OUT.SendOptA -.8 -* jsr TCP.OUT Send ACK as soon as possible +* jsr TCP.OUT.SendOptA +.8* jsr TCP.OUT Send ACK as soon as possible clc rts -.9 - sec +.9 sec rts *-------------------------------------- TCP.IN.JMP.CLWAIT @@ -261,17 +240,14 @@ TCP.IN.JMP.LASTACK lda (ZPFrameInPtr),y bit #S.TCP.OPTIONS.ACK beq .8 - ldy #S.SOCKET.TCP.S lda #S.SOCKET.TCP.S.TIMEWT sta (ZPPtrSKT),y - .8 clc rts *-------------------------------------- TCP.IN.JMP.FINWT1 jsr SKT.GetTCB - ldy #S.TCP.OPTIONS FIN sent, accept ACK or FIN/ACK packet lda (ZPFrameInPtr),y bit #S.TCP.OPTIONS.FIN @@ -295,7 +271,6 @@ TCP.IN.JMP.FINWT2 bit #S.TCP.OPTIONS.ACK beq TCP.IN.JMP.TIMEWT - jsr SKT.GetTCB jsr TCP.IN.ACKTheFIN @@ -313,12 +288,10 @@ TCP.IN.JMP.CLOSING lda (ZPFrameInPtr),y bit #S.TCP.OPTIONS.ACK beq .1 - ldy #S.SOCKET.TCP.S lda #S.SOCKET.TCP.S.TIMEWT sta (ZPPtrSKT),y - -.1 +.1 * clc * rts *-------------------------------------- @@ -330,9 +303,7 @@ TCP.IN.JMP.TIMEWT.RTS TCP.IN.ACKTheSYN ldy #S.TCP.SEQNUM+3 Get Remote SEQ ldx #3 - sec - .3 lda (ZPFrameInPtr),y Set OUTACK=SEQ+1 for new socket... adc #0 sta SKT.Cache+S.SOCKET.TCP.INSEQNUM,x @@ -344,9 +315,7 @@ TCP.IN.ACKTheSYN *-------------------------------------- TCP.IN.ACKTheFIN jsr TCP.SetSocketTCPO.ACK - ldx #3 - .1 inc SKT.Cache+S.SOCKET.TCP.INSEQNUM,x bne .8 dex @@ -365,7 +334,6 @@ TCP.IN.SetDataInPtrAndLen lda (ZPFrameInPtr),y sbc /S.IP-S.ETH.EII sta ZPDataInLen+1 - ldy #S.TCP.DATAOFFSET lda (ZPFrameInPtr),y and #$F0 Get TCP Header len in DWORD @@ -377,29 +345,22 @@ TCP.IN.SetDataInPtrAndLen sec sbc ZPDataInPtr TMP Storage sta ZPDataInLen - bcs .1 dec ZPDataInLen+1 - .1 lda ZPFrameInPtr clc adc #S.IP pha - lda ZPFrameInPtr+1 adc /S.IP tax - pla clc adc ZPDataInPtr TMP Storage bcc .2 - inx - .2 sta ZPDataInPtr stx ZPDataInPtr+1 - TCP.IN.RTS rts *-------------------------------------- TCP.SENDCLOSE ldx #0 @@ -407,7 +368,6 @@ TCP.SENDCLOSE ldx #0 .1 phx lda SKT.TABLE,x beq .8 - >SYSCALL2 GetMemPtr >STYA ZPPtrSKT @@ -415,29 +375,21 @@ TCP.SENDCLOSE ldx #0 lda (ZPPtrSKT),y cmp #AF.INET bne .8 - iny #S.SOCKET.T - lda (ZPPtrSKT),y cmp #S.SOCKET.T.SEQPACKET bcc .8 - ldy #S.SOCKET.TCP.S lda (ZPPtrSKT),y cmp #S.SOCKET.TCP.S.TIMEWT beq .4 - cmp #S.SOCKET.TCP.S.ESTBLSH bne .2 - jsr SKT.GetTCB jsr TCP.OUT - bra .8 - .2 cmp #S.SOCKET.TCP.S.OPENED bne .8 - jsr SKT.GetTCB lda #S.TCP.OPTIONS.SYN jsr TCP.OUT.SendOptA Send SYN @@ -450,7 +402,6 @@ TCP.SENDCLOSE ldx #0 lda #S.TCP.OPTIONS.SYN jsr TCP.OUT.SendOptA Send SYN bra .8 - .4 ldy #S.SOCKET.SQ.hInMem lda (ZPPtrSKT),y beq .5 @@ -459,7 +410,6 @@ TCP.SENDCLOSE ldx #0 .ELSE >SYSCALL2 freemem .FIN - .5 ldy #S.SOCKET.SQ.hOutMem lda (ZPPtrSKT),y beq .6 @@ -469,13 +419,11 @@ TCP.SENDCLOSE ldx #0 .ELSE >SYSCALL2 freemem .FIN - .6 plx phx lda SKT.TABLE,x stz SKT.TABLE,x >SYSCALL2 freemem - .8 plx inx cpx #K.SKTTABLE.SIZE @@ -485,12 +433,10 @@ TCP.SENDCLOSE ldx #0 *-------------------------------------- TCP.OUT lda SKT.Cache+S.SOCKET.TCP.OUTTOSEND+1 ldy SKT.Cache+S.SOCKET.TCP.OUTTOSEND - bne .1 tax bne .1 - * Y,A=0 : no data to send ldy #S.SOCKET.TCP.O @@ -498,7 +444,7 @@ TCP.OUT lda SKT.Cache+S.SOCKET.TCP.OUTTOSEND+1 bne TCP.OUT.SendOptA a least an option... clc No data, no flag....exit .9 rts - + .1 cpy #K.TCP.MSS pha sbc /K.TCP.MSS OUTDATA > MSS ? @@ -506,25 +452,19 @@ TCP.OUT lda SKT.Cache+S.SOCKET.TCP.OUTTOSEND+1 bcc .2 no....keep data len >LDYAI K.TCP.MSS yes send only MSS - .2 jsr TCP.NewFrame bcs .9 jsr SKT.GetDataFromSktOut - ldy #S.TCP.WINDOW lda SKT.Cache+S.SOCKET.TCP.INFREE+1 sta (ZPFrameOutPtr),y iny lda SKT.Cache+S.SOCKET.TCP.INFREE sta (ZPFrameOutPtr),y - lda #S.TCP.OPTIONS.ACK+S.TCP.OPTIONS.PSH - jsr TCP.OUT.Send - bcs .9 - lda ZPDataOutLen ldy ZPDataOutLen+1 ldx #S.SOCKET.TCP.OUTNEXTSEQ @@ -544,7 +484,6 @@ TCP.OUT.SendOptA tax dey lda (ZPPtrSKT),y - ldy #S.TCP.WINDOW+1 sta (ZPFrameOutPtr),y dey @@ -556,22 +495,17 @@ TCP.OUT.SendOptA TCP.OUT.Send ldy #S.TCP.OPTIONS sta (ZPFrameOutPtr),y - bit #S.TCP.OPTIONS.ACK beq .2 - ldx #3 ldy #S.TCP.ACKNUM+3 - .1 lda SKT.Cache+S.SOCKET.TCP.INSEQNUM,x sta (ZPFrameOutPtr),y dey dex bpl .1 - .2 ldx #3 ldy #S.TCP.SEQNUM+3 - .3 lda SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ,x sta (ZPFrameOutPtr),y dey @@ -581,7 +515,6 @@ TCP.OUT.Send ldy #S.TCP.OPTIONS sec DONT Queue if fail jsr FRM.SendIP bcs TCP.OUT.Send.9 - ldy #S.SOCKET.TCP.O lda #0 sta (ZPPtrSKT),y @@ -600,15 +533,12 @@ TCP.SetSocketTCPO TCP.NewFrame ldx #S.IP.PROTOCOL.TCP jsr FRM.NewIP bcs .9 - jsr SKT.SetFrameOutDstIP jsr SKT.SetFrameOutTCPUDPPorts - ldy #S.TCP.DATAOFFSET lda #$50 Header size = 5 DWORDS sta (ZPFrameOutPtr),y - clc .9 rts *-------------------------------------- @@ -616,7 +546,6 @@ TCP.AddAYToSktCacheAtX clc adc SKT.Cache+3,x sta SKT.Cache+3,x - tya adc SKT.Cache+2,x sta SKT.Cache+2,x @@ -624,7 +553,6 @@ TCP.AddAYToSktCacheAtX inc SKT.Cache+1,x bne .8 inc SKT.Cache,x - .8 rts *-------------------------------------- .DO IPDEBUG=1 diff --git a/LIB/LIBTCPIP.S.txt b/LIB/LIBTCPIP.S.txt index a120e2e6..4db3294f 100644 --- a/LIB/LIBTCPIP.S.txt +++ b/LIB/LIBTCPIP.S.txt @@ -82,23 +82,18 @@ CS.START cld *-------------------------------------- .1 .DA LIB.LOAD .DA LIB.UNLOAD - .DA CFG.SET .DA CFG.GET - .DA INCOMING .DA PULSE - .DA ARP.CLEAR .DA ARP.QUERY .DA ARP.ADD .DA ARP.GetCACHE - .DA DNS.CLEAR .DA DNS.QUERY .DA DNS.ADD .DA DNS.GetCACHE - .DA HST.GETBYNAME .DA HST.GETBYADDR @@ -109,15 +104,12 @@ CS.START cld .DA SKT.Accept .DA SKT.Shutdown - .DA SKT.Read .DA SKT.Write .DA SKT.Recv .DA SKT.Send - .DA SKT.RecvFrom .DA SKT.SendTo - .DA SKT.getsockopt .DA SKT.setsockopt @@ -174,14 +166,12 @@ LIB.LOAD ldx RefCount jsr ARP.CLEAR jsr DNS.CLEAR - .8 inc RefCount clc rts *-------------------------------------- LIB.UNLOAD dec RefCount - clc rts *-------------------------------------- @@ -189,30 +179,22 @@ INCOMING sta hFrameIn >PULLW ZPTmpPtr1 ldy #S.IOCTL.BUFPTR+3 - .1 lda (ZPTmpPtr1),y Get Frame Ptr & Len sta ZPFrameInPtr-S.IOCTL.BUFPTR,y dey bpl .1 - ldy #S.ETH.EII.TYPE lda (ZPFrameInPtr),y cmp /S.ETH.EII.TYPE.IP bne .9 - iny lda (ZPFrameInPtr),y - cmp #S.ETH.EII.TYPE.ARP bne .2 - jmp ARP.IN - .2 cmp #S.ETH.EII.TYPE.IP bne .9 - jmp IP.IN - .9 sec INCOMING.RTS rts @@ -226,7 +208,6 @@ PULSE and #S.EVT.F.T1SEC jsr ARP.EXPIRE every sec jsr DNS.EXPIRE - .1 jsr FRM.RETRY every 100ms jsr DNS.POLL jmp TCP.SENDCLOSE @@ -234,20 +215,16 @@ PULSE and #S.EVT.F.T1SEC GetDynPort inc DYNPORT.LAST bne .1 inc DYNPORT.LAST+1 - lda DYNPORT.LAST cmp #K.DYNPORT.END lda DYNPORT.LAST+1 sbc /K.DYNPORT.END - bcs .1 - lda #K.DYNPORT.START ldx /K.DYNPORT.START sta DYNPORT.LAST stx DYNPORT.LAST+1 rts CC - .1 lda DYNPORT.LAST ldx DYNPORT.LAST+1 clc @@ -260,7 +237,6 @@ FRM.Dump ldy #S.TCPUDP.DSTPORT iny lda (ZPFrameInPtr),y >PUSHA - ldy #S.IP.DST+3 lda (ZPFrameInPtr),y >PUSHA @@ -273,14 +249,12 @@ FRM.Dump ldy #S.TCPUDP.DSTPORT dey lda (ZPFrameInPtr),y >PUSHA - ldy #S.TCPUDP.SRCPORT lda (ZPFrameInPtr),y >PUSHA iny lda (ZPFrameInPtr),y >PUSHA - ldy #S.IP.SRC+3 lda (ZPFrameInPtr),y >PUSHA @@ -293,7 +267,6 @@ FRM.Dump ldy #S.TCPUDP.DSTPORT dey lda (ZPFrameInPtr),y >PUSHA - >PUSHBI 12 >LDYA L.MSG.FRM.Dump >SYSCALL2 Printf @@ -305,7 +278,6 @@ SKT.Dump ldy #S.SOCKET.REM.PORT+1 dey lda (ZPPtrSKT),y >PUSHA - ldy #S.SOCKET.REM.ADDR+3 lda (ZPPtrSKT),y >PUSHA @@ -318,14 +290,12 @@ SKT.Dump ldy #S.SOCKET.REM.PORT+1 dey lda (ZPPtrSKT),y >PUSHA - ldy #S.SOCKET.LOC.PORT+1 lda (ZPPtrSKT),y >PUSHA dey lda (ZPPtrSKT),y >PUSHA - ldy #S.SOCKET.LOC.ADDR+3 lda (ZPPtrSKT),y >PUSHA @@ -338,7 +308,6 @@ SKT.Dump ldy #S.SOCKET.REM.PORT+1 dey lda (ZPPtrSKT),y >PUSHA - >PUSHBI 12 >LDYA L.MSG.SKT.Dump >SYSCALL2 Printf @@ -387,7 +356,7 @@ FD.DSOCK .DA #S.FD.T.DSOCK .DA #AF.INET S.SOCKET.AF .BS 1 S.SOCKET.T .BS 1 S.SOCKET.PROTO -FD.DSOCK.SIZE .EQ *-FD.DSOCK +FD.DSOCK.SIZE .EQ *-FD.DSOCK *-------------------------------------- FD.SSOCK .DA #S.FD.T.SSOCK .DA #0 S.FD.HANDLER @@ -401,7 +370,7 @@ FD.SSOCK .DA #S.FD.T.SSOCK .DA #AF.INET S.SOCKET.AF .DA #S.SOCKET.T.STREAM .DA #S.IP.PROTOCOL.TCP -FD.SSOCK.SIZE .EQ *-FD.SSOCK +FD.SSOCK.SIZE .EQ *-FD.SSOCK *-------------------------------------- IOCTL .BS S.IOCTL DCB.NIC .BS S.DCB.NIC diff --git a/SBIN/CIFSD.S.txt b/SBIN/CIFSD.S.txt index 704ec62d..db85c37c 100644 --- a/SBIN/CIFSD.S.txt +++ b/SBIN/CIFSD.S.txt @@ -9,7 +9,7 @@ NEW .INB INC/A2OSX.I .INB INC/ETH.I .INB INC/LIBTCPIP.I - .INB INC/NET.SMB.I + .INB INC/NET.SMB.I *-------------------------------------- TIMEOUT.MAX .EQ 100 10 sec. *-------------------------------------- @@ -38,7 +38,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -56,14 +56,11 @@ CS.INIT >LDYA L.LIBTCPIP >SYSCALL LoadLib bcs .9 sta hLIBTCPIP - >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ? bcs .9 >STYA ZPIPCfgPtr - lda (ZPIPCfgPtr) Configured ? bmi .8 - lda #E.SYN sec rts @@ -80,14 +77,10 @@ CS.RUN jsr CS.RUN.CheckArgs jsr CS.RUN.Connect >DEBUG bcs .9 - jsr CS.RUN.Negotiate - - lda #0 sec .9 rts - .90 >LDYA L.MSG.USAGE >SYSCALL puts lda #E.SYN @@ -102,18 +95,15 @@ CS.RUN.CheckArgs lda #TIMEOUT.MAX sta TimeOut - .1 >PUSHEA.G SA.REMOTE+S.SOCKADDR.ADDR lda #1 >SYSCALL ArgV >PUSHYA >LIBCALL hLIBTCPIP,LIBTCPIP.HST.GETBYNAME bcc .2 - >SLEEP lda TimeOut bne .1 - lda #1 >SYSCALL ArgV >PUSHYA @@ -122,33 +112,26 @@ CS.RUN.CheckArgs >SYSCALL printf sec .9 rts - .2 lda #AF.INET >STA.G SA.LOCAL >STA.G SA.REMOTE - ldy #S.IPCFG.IP+3 - .3 lda (ZPIPCfgPtr),y pha dey cpy #S.IPCFG.IP-1 bne .3 - ldy #SA.REMOTE+S.SOCKADDR.PORT - .4 pla sta (pData),y iny cpy #SA.REMOTE+S.SOCKADDR.PORT+4 bne .4 - lda #TCP.PORT.CIFS >STA.G SA.REMOTE+S.SOCKADDR.PORT iny lda /TCP.PORT.CIFS sta (pData),y - clc @@ -165,7 +148,6 @@ CS.RUN.Connect >PUSHBI 0 no protocol >LDA.G hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.Bind bcs .9 - >PUSHEA.G SA.REMOTE >LDA.G hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.Connect @@ -183,12 +165,9 @@ CS.RUN.Negotiate *-------------------------------------- CS.DOEVENT lda (pEvent) bpl .9 is it a TIMER event? - lda TimeOut beq .9 - dec TimeOut - .9 sec do not discard TIMER event rts *-------------------------------------- @@ -245,8 +224,7 @@ SA.REMOTE .BS 1 S.SOCKADDR.AF .BS 1 .BS 4 S.SOCKADDR.ADDR .BS 2 S.SOCKADDR.PORT - -hSocket .BS 1 +hSocket .BS 1 DS.END .ED *-------------------------------------- diff --git a/SBIN/GETTY.S.txt b/SBIN/GETTY.S.txt index 1caa0dbb..f56c4634 100644 --- a/SBIN/GETTY.S.txt +++ b/SBIN/GETTY.S.txt @@ -64,49 +64,40 @@ CS.RUN ldy #S.PS.ARGC lda (pPs),y cmp #2 - bcc .9 - + bcc .9 .1 inc ArgIndex lda ArgIndex >SYSCALL ArgV bcs .8 - >STYA ZPPtr1 jsr CkeckOption bcs .9 beq .1 valid option, check next arg - lda ArgDev bne .2 - lda ArgIndex sta ArgDev bra .1 - .2 lda ArgProg bne .9 - lda ArgIndex sta ArgProg bra .1 - + .9 >PUSHBI 0 >LDYA L.MSG.USAGE >SYSCALL printf lda #E.SYN sec .99 rts - .8 lda ArgDev beq .9 lda ArgProg beq .9 - ldy #S.PS.hStdErr lda (pPs),y sta hErr - >PUSHWZ auxtype >PUSHBI 0 type >PUSHBI O.RDWR @@ -122,7 +113,6 @@ CS.RUN ldy #S.PS.ARGC sta (pPs),y iny #S.PS.hStdErr sta (pPs),y - sta hFILE CS.RUN.LOOP0 >SLEEP @@ -147,21 +137,16 @@ CS.RUN.LOOP1 >SLEEP >SYSCALL feof bcs CS.RUN.9 I/O error - tay bne .1 no char >SYSCALL GetChar bcs CS.RUN.9 - cmp #IAC beq CS.RUN.IACMODE - >SYSCALL PutChar bcs CS.RUN.EXIT - bra CS.RUN.LOOP1 - .1 lda TimeOut bne CS.RUN.LOOP1 @@ -172,16 +157,12 @@ CS.RUN.LOOP1 >SLEEP >PUSHBI 4 >LDYA L.MSG.GREETINGS >SYSCALL printf - bcs CS.RUN.EXIT unable to send greetings... - .2 >PUSHBI S.PS.F.HOLD lda ArgProg >SYSCALL ArgV >SYSCALL ExecV - >SLEEP - CS.RUN.EXIT lda bExitOnClose bmi .8 @@ -193,76 +174,58 @@ CS.RUN.9 rts *-------------------------------------- CS.RUN.IACMODE >SYSCALL GetChar Wait for IAC CMD (or SB) bcs CS.RUN.9 - sta IAC.CMD - >SYSCALL GetChar Wait for IAC SUBCMD bcs CS.RUN.9 - sta IAC.SUBCMD tax - lda IAC.CMD cmp #SB beq CS.RUN.IAC.SB *-------------------------------------- CS.RUN.IAC.CMD cmp #WILL bne .8 - cpx #TELOPT.TTYPE bne .2 - >PUSHWI TELNETOPT.TTYPE.LEN >PUSHW L.TELNETOPT.TTYPE bra .7 .2 cpx #TELOPT.LINEMODE bne .8 - >PUSHWI TELNETOPT.LMODE.LEN >PUSHW L.TELNETOPT.LMODE - .7 ldy #S.PS.hStdOut lda (pPs),y >SYSCALL fwrite - .8 jmp CS.RUN.LOOP1 *-------------------------------------- CS.RUN.IAC.SB >SYSCALL GetChar Wait for IAC SB.IS or SEND bcs .9 - sta IAC.SB.CMD - stz IAC.SB.LEN - .2 >SYSCALL GetChar bcs .9 cmp #IAC beq .4 end of DATA, go wait SE - ldy IAC.SB.LEN - sta (pData),y iny lda #0 sta (pData),y - sty IAC.SB.LEN cpy #IAC.BUF.MAX bne .2 bra .8 - .4 >SYSCALL GetChar bcs .9 - cmp #SE bne .8 lda IAC.SUBCMD cmp #TELOPT.TTYPE bne .8 - lda IAC.SB.CMD cmp #SB.IS bne .8 @@ -270,7 +233,6 @@ CS.RUN.IAC.SB >SYSCALL GetChar Wait for IAC SB.IS or SEND >PUSHW pData IAC.SB.DATA >LDYA L.ENV.TERM >SYSCALL SetEnv - .8 jmp CS.RUN.LOOP1 .9 rts *-------------------------------------- @@ -279,9 +241,7 @@ CS.DOEVENT lda (pEvent) lda TimeOut beq .9 - dec TimeOut - .9 sec do not discard TIMER event rts *-------------------------------------- @@ -289,36 +249,28 @@ CS.QUIT lda hFILE beq .8 >SYSCALL fclose - .8 clc rts *-------------------------------------- CkeckOption lda (ZPPtr1) cmp #'-' bne .8 - ldy #2 lda (ZPPtr1),y bne .8 - dey lda (ZPPtr1),y - ldx OptionList - .2 cmp OptionList,x beq .3 dex bne .2 - sec invalid option rts - .3 ldy OptionVars-1,x eor #$80 toggle option sta $0,y lda #0 exit with 0 - .8 clc !0 if not an option rts *-------------------------------------- diff --git a/SBIN/GUI.S.txt b/SBIN/GUI.S.txt index 40aae62f..b96c823d 100644 --- a/SBIN/GUI.S.txt +++ b/SBIN/GUI.S.txt @@ -55,19 +55,15 @@ CS.INIT >LDYA L.LIBGUI CS.RUN >PUSHW L.MouseData >LIBCALL hLIBGUI,LIBGUI.ReadMouse bcs .4 - lda MouseData+S.MOUSE.S bit #S.MOUSE.S.MOVE beq .1 >PUSHW L.MouseData >LIBCALL hLIBGUI,LIBGUI.SetCursorPos - lda MouseData+S.MOUSE.S - .1 bit #S.MOUSE.S.CLK beq .4 - >LDA.G CUR.T inc inc @@ -75,13 +71,11 @@ CS.RUN >PUSHW L.MouseData bne .2 lda #CUR.T.ARROW - .2 >STA.G CUR.T >LIBCALL hLIBGUI,LIBGUI.SetCursor jsr Destop.Paint - .4 .8 clc @@ -91,9 +85,7 @@ CS.DOEVENT lda (pEvent) bpl .9 asl bpl .9 - >LIBCALL hLIBGUI,LIBGUI.UpdateCursor - .9 sec rts *-------------------------------------- @@ -111,12 +103,11 @@ Destop.Paint >LIBCALL hLIBGUI,LIBGUI.HideCursor * >PUSHYA * >PUSHW L.GC.Clip - * >PUSHW L.CB.Marylin * >LIBCALL hLIBGUI,LIBGUI.Draw >LIBCALL hLIBGUI,LIBGUI.ShowCursor - rts + rts *-------------------------------------- CS.END LIBGUI .AZ "libgui" diff --git a/SBIN/HTTPD.S.txt b/SBIN/HTTPD.S.txt index 136c8f00..f4408e1d 100644 --- a/SBIN/HTTPD.S.txt +++ b/SBIN/HTTPD.S.txt @@ -33,7 +33,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -49,7 +49,7 @@ L.MSG.INCOMING .DA MSG.INCOMING L.MSG.DBG0 .DA MSG.DBG0 L.MSG.DBG1 .DA MSG.DBG1 L.HTTP.200OK .DA HTTP.200OK - .DA 0 + .DA 0 *-------------------------------------- CS.INIT >LDYA L.LIBTCPIP >SYSCALL LoadLib @@ -62,24 +62,18 @@ CS.RUN jsr Init.Timeout >LDYA L.MSG.TCPWAIT >SYSCALL puts - .1 >SLEEP - >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ? bcs .99 >STYA ZPIPCfgPtr - lda (ZPIPCfgPtr) Configured ? bmi CS.RUN.INIT - jsr Wait.Timeout bcs .99 - ldy #S.PS.hStdIn lda (pPs),y >SYSCALL feof bcs CS.RUN.RTS I/O err - tay bne .1 @@ -88,28 +82,23 @@ CS.RUN jsr Init.Timeout cmp #$03 bne .1 - >LDYA L.MSG.ABORT >SYSCALL puts lda #3 clc rts - .99 >LDYA L.MSG.TCPIPERR >SYSCALL puts lda #E.SYN sec CS.RUN.RTS rts - CS.RUN.INIT ldx #3 ldy #S.IPCFG.IP+3 - .1 lda (ZPIPCfgPtr),y sta SA.LOCAL+S.SOCKADDR.ADDR,x dey dex bpl .1 - >PUSHBI 0 no protocol lda #S.SOCKET.T.STREAM >LIBCALL hLIBTCPIP,LIBTCPIP.Socket @@ -121,51 +110,41 @@ CS.RUN.INIT ldx #3 pla >LIBCALL hLIBTCPIP,LIBTCPIP.Bind bcs CS.RUN.ERR - >LDA.G hSrvSocket >LIBCALL hLIBTCPIP,LIBTCPIP.Listen bcs CS.RUN.ERR - >LDYAI 512 >SYSCALL getmem bcs CS.RUN.RTS - >STYA ZPLinePtr txa >STA.G hLineBuf - >LDYA L.MSG.INITOK >SYSCALL puts CS.RUN.LOOP >SLEEP jsr CS.RUN.SERVER bcs CS.RUN.ERR - bra CS.RUN.LOOP - .9 >LDYA L.MSG.SKTERR >SYSCALL puts lda #E.SYN sec - CS.RUN.ERR rts *-------------------------------------- CS.RUN.SERVER >LDA.G hSrvSocket >LIBCALL hLIBTCPIP,LIBTCPIP.accept bcs .8 - >STA.G hClntSocket >SYSCALL GetMemPtr >STYA ZPSktPtr ldx #3 ldy #S.SOCKET.REM.ADDR+3 - .3 >PUSHB (ZPSktPtr),y dey dex bpl .3 - >PUSHB.G hClntSocket >PUSHBI 5 @@ -173,7 +152,6 @@ CS.RUN.SERVER >LDA.G hSrvSocket >SYSCALL printf jsr CS.RUN.CLIENT - .8 clc .9 rts *-------------------------------------- @@ -185,21 +163,17 @@ CS.RUN.CLIENT >LDA.G hClntSocket >LIBCALL hLIBTCPIP,LIBTCPIP.read bcc .2 - >PUSHYA >PUSHBI 2 >LDYA L.MSG.DBG0 >SYSCALL printf bra .8 - .2 phy ply bne .3 - pha pla beq .1 - .3 phy pha >PUSHYA @@ -208,7 +182,6 @@ CS.RUN.CLIENT >SYSCALL printf pla ply - >PUSHYA >PUSHW ZPLinePtr @@ -222,7 +195,6 @@ CS.RUN.CLIENT >LDA.G hClntSocket >LIBCALL hLIBTCPIP,LIBTCPIP.write - .8 >LDA.G hClntSocket >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown @@ -231,13 +203,10 @@ CS.RUN.CLIENT *-------------------------------------- CS.DOEVENT lda (pEvent) bpl .9 is it a TIMER event? - >LDA.G TimeOut beq .9 - dec sta (pData),y - .9 sec do not discard TIMER event rts *-------------------------------------- @@ -245,16 +214,12 @@ CS.QUIT ldy #hSrvSocket lda (pData),y beq .3 >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown - .3 >LDA.G hLineBuf beq .4 - >SYSCALL FreeMem - .4 lda hLIBTCPIP beq .8 >SYSCALL UnloadLib - .8 clc rts *-------------------------------------- diff --git a/SBIN/INITD.S.txt b/SBIN/INITD.S.txt index b1c5e300..2d0fe7ac 100644 --- a/SBIN/INITD.S.txt +++ b/SBIN/INITD.S.txt @@ -33,13 +33,13 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT .DA CS.QUIT L.MSG.CTRLR .DA MSG.CTRLR -L.MSG.ETCINIT .DA MSG.ETCINIT +L.MSG.ETCINIT .DA MSG.ETCINIT L.BINSHELL .DA BINSHELL L.ETCINIT .DA ETCINIT L.MSG.RUNNING .DA MSG.RUNNING @@ -58,45 +58,31 @@ CS.RUN ldy #S.PS.PID lda (pPS),y cmp #1 bne .9 - >SYSCALL getchar bcs .1 - cmp #$12 CTRL-R for Root mode bne .1 - >LDYA L.MSG.CTRLR >SYSCALL puts - >PUSHBI S.PS.F.HOLD >LDYA L.BINSHELL >SYSCALL ExecL - >SLEEP - .1 >LDYA L.MSG.ETCINIT >SYSCALL puts - >PUSHBI S.PS.F.HOLD >LDYA L.ETCINIT - >SYSCALL ExecL - >SLEEP - >LDYA L.MSG.RUNNING >SYSCALL puts - ldy #S.PS.F.HOLD ora (pPS),y sta (pPS),y - >SLEEP - lda #0 sec rts - .9 lda #E.SYN sec rts diff --git a/SBIN/INSDRV.S.txt b/SBIN/INSDRV.S.txt index c9eaf4de..22951e1f 100644 --- a/SBIN/INSDRV.S.txt +++ b/SBIN/INSDRV.S.txt @@ -27,7 +27,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -40,7 +40,6 @@ CS.RUN ldy #S.PS.ARGC lda (pPs),y cmp #1 bcc .9 - lda #1 get PTR to ARG[1] (Driver name) >SYSCALL ArgV >PUSHYA @@ -48,7 +47,6 @@ CS.RUN ldy #S.PS.ARGC >PUSHBI 2 >LDYA L.MSG.LOAD >SYSCALL printf - lda #1 get PTR to ARG[1] (Driver name) >SYSCALL ArgV diff --git a/SBIN/KCONFIG.S.txt b/SBIN/KCONFIG.S.txt index aa8b6044..523f25e4 100644 --- a/SBIN/KCONFIG.S.txt +++ b/SBIN/KCONFIG.S.txt @@ -68,7 +68,7 @@ T.MSG.SLOT.DESC .DA MSG.SLOT.NODEV .DA MSG.SLOT.NIC .DA MSG.SLOT.CLK .DA MSG.SLOT.DIS -L.MSG.PROMPT .DA MSG.PROMPT +L.MSG.PROMPT .DA MSG.PROMPT .DA 0 End Of Reloc Table *-------------------------------------- CS.INIT clc @@ -77,7 +77,6 @@ CS.INIT clc CS.RUN >PUSHBI 0 >LDYA L.MSG.TOPBAR >SYSCALL printf - jsr CS.RUN.Load bcs .1 >PUSHBI 0 @@ -91,7 +90,6 @@ CS.RUN >PUSHBI 0 >PUSHBI 0 >LDYA L.MSG.KCONF >SYSCALL printf - >LDYAI A2osX.KCONFIG jsr CS.RUN.DumpConfYA >PUSHBI 0 @@ -101,7 +99,6 @@ CS.RUN >PUSHBI 0 CS.RUN.REPaint >PUSHBI 0 >LDYA L.MSG.FCONF >SYSCALL printf - >LDYA ZPCfgPtr jsr CS.RUN.DumpConfYA @@ -110,10 +107,8 @@ CS.RUN.Loop >SYSCALL GetChar cmp #17 Ctrl-Q beq .8 - cmp #19 Ctrl-S bne .1 - jsr CS.RUN.Save bcc .10 >PUSHA @@ -121,13 +116,11 @@ CS.RUN.Loop >SYSCALL GetChar >LDYA L.MSG.QUIT.ERR bra .9 - .10 >PUSHBI 1 >LDYA L.MSG.QUIT.SAVED bra .9 - -.99 rts - +.99 rts + .1 cmp #20 Ctrl-T bne .2 @@ -135,36 +128,29 @@ CS.RUN.Loop >SYSCALL GetChar eor #3 sta (ZPCfgPtr) bra CS.RUN.REPaint - .2 cmp #3 Ctrl-C bne .3 - ldy #8 lda (ZPCfgPtr),y eor #A2osX.F.CHROOT sta (ZPCfgPtr),y bra CS.RUN.REPaint - .3 cmp #16 Ctrl-P bne .4 - ldy #8 lda (ZPCfgPtr),y eor #A2osX.F.PMODE sta (ZPCfgPtr),y bra CS.RUN.REPaint - .4 cmp #25 Ctrl-Y bne .5 - ldy #1 lda (ZPCfgPtr),y and #3 inc sta (ZPCfgPtr),y jmp CS.RUN.REPaint - -.5 cmp #'1' +.5 cmp #'1' bcc CS.RUN.Loop cmp #'8' bcs CS.RUN.Loop @@ -176,12 +162,9 @@ CS.RUN.Loop >SYSCALL GetChar eor #$FF sta (ZPCfgPtr),y jmp CS.RUN.REPaint - .8 >PUSHBI 0 >LDYA L.MSG.QUIT - .9 >SYSCALL printf - lda #0 sec rts @@ -190,11 +173,9 @@ CS.RUN.Load >PUSHEA.G StatBuf >LDYA L.FILENAME >SYSCALL Stat bcs .99 - * >LDA.G StatBuf+S.STAT.SIZE * eor #16 * bne .99 - * iny * lda (pData),y * iny @@ -202,11 +183,9 @@ CS.RUN.Load >PUSHEA.G StatBuf * iny * ora (pData),y * bne .99 - >LDA.G StatBuf+S.STAT.P.TYPE eor #S.FI.T.SYS bne .99 - >PUSHWI A2osX.KCONFIG >PUSHBI S.FI.T.SYS >PUSHBI O.RDONLY @@ -221,21 +200,17 @@ CS.RUN.Load >PUSHEA.G StatBuf >STYA ZPCfgPtr * clc rts - .99 >LDYAI 16 >SYSCALL GetMem >STYA ZPCfgPtr - stx hFileBuf ldy #15 - .1 lda A2osX.KCONFIG,y sta (ZPCfgPtr),y dey bpl .1 - sec rts *-------------------------------------- @@ -245,12 +220,10 @@ CS.RUN.Save >PUSHWI A2osX.KCONFIG >LDYA L.FILENAME >SYSCALL FOpen bcs .9 - pha save hFile >PUSHWI 16 LEN >PUSHW ZPCfgPtr - pla pha >SYSCALL FWrite @@ -263,7 +236,6 @@ CS.RUN.Save >PUSHWI A2osX.KCONFIG pla sec rts - .1 pla >SYSCALL FClose @@ -271,7 +243,6 @@ CS.RUN.Save >PUSHWI A2osX.KCONFIG *-------------------------------------- CS.RUN.DumpConfYA >STYA ZPTmp1 - >PUSHB (ZPTmp1) >PUSHBI 1 >LDYA L.MSG.HZ @@ -283,8 +254,7 @@ CS.RUN.DumpConfYA bne .10 >LDYA L.MSG.DISABLED bra .12 -.10 >LDYA L.MSG.ENABLED - +.10 >LDYA L.MSG.ENABLED .12 >PUSHYA >PUSHBI 2 >LDYA L.MSG.CHROOT @@ -296,40 +266,31 @@ CS.RUN.DumpConfYA bne .13 >LDYA L.MSG.DISABLED bra .14 -.13 >LDYA L.MSG.ENABLED - +.13 >LDYA L.MSG.ENABLED .14 >PUSHYA >PUSHBI 2 >LDYA L.MSG.PMODE >SYSCALL printf - ldy #1 lda (ZPTmp1),y >PUSHA >PUSHBI 1 >LDYA L.MSG.TTYS >SYSCALL printf - ldy #9 Slot 1 - .1 lda (ZPTmp1),y - ldx #SLOTS.MAX-1 .2 cmp SLOTS,x beq .3 - dex bne .2 - .3 phy txa asl tax - >PUSHB T.MSG.SLOT.DESC+1,x >PUSHB T.MSG.SLOT.DESC,x - pla pha sec @@ -343,7 +304,6 @@ CS.RUN.DumpConfYA iny cpy #16 bne .1 - >PUSHBI 0 >LDYA L.MSG.PROMPT >SYSCALL printf diff --git a/SBIN/LOGIN.S.txt b/SBIN/LOGIN.S.txt index f0637770..8fe509e0 100644 --- a/SBIN/LOGIN.S.txt +++ b/SBIN/LOGIN.S.txt @@ -95,17 +95,14 @@ CS.RUN.NOAUTH >PUSHBI 0 >LDYA L.MSG.NOAUTH >SYSCALL printf bcs .9 - jsr CS.RUN.SetRootSession bcs .9 - jmp CS.RUN.EXEC -.9 rts +.9 rts *-------------------------------------- CS.RUN.AUTH >LDYA L.LIBCRYPT >SYSCALL LoadLib bcs CS.INIT.RTS - sta hLIBCRYPT lda #3 @@ -115,7 +112,6 @@ CS.RUN.AUTH >LDYA L.LIBCRYPT >LDYA L.MSG.LOGIN >SYSCALL printf bcs .9 - lda #16 clc jsr CS.RUN.GetLine @@ -126,12 +122,10 @@ CS.RUN.AUTH >LDYA L.LIBCRYPT >SYSCALL GetPWName ror ZPbValidUser sta ZPUID - >PUSHBI 0 >LDYA L.MSG.PASSWORD >SYSCALL printf bcs .9 - lda #32 sec jsr CS.RUN.GetLine @@ -144,24 +138,19 @@ CS.RUN.AUTH >LDYA L.LIBCRYPT jsr CS.RUN.CHECKPWD bcs .8 - jsr CS.RUN.SetUserSession bcs .9 jmp CS.RUN.EXEC - .8 >PUSHBI 0 >LDYA L.MSG.BAD >SYSCALL printf bcs .9 - dec ZPRetryCnt beq .99 - jmp .1 - .99 lda #E.IUSR - sec + sec .9 rts *-------------------------------------- CS.RUN.SetRootSession @@ -173,46 +162,32 @@ CS.RUN.SetRootSession bcs .9 >STYA pSession stx ZPhSID - ldy #SESSION.ROOT.Size-1 - .1 lda (ZPStrPtr),y sta (pSession),y dey bpl .1 - * clc .9 rts *-------------------------------------- CS.RUN.SetUserSession ldx #S.SESSION.NAME P+UID+GID - ldy #S.PW.NAME-1 - jsr CS.RUN.AddStrLen NAME len - inx - ldy #S.PW.GECOS-1 - jsr CS.RUN.AddStrLen GECOS len - inx - ldy #S.PW.DIR-1 - jsr CS.RUN.AddStrLen DIR len - inx ldy #S.PW.SHELL-1 - jsr CS.RUN.AddStrLen SHELL len txa tay lda #0 - >SYSCALL getmem bcs .9 >STYA pSession @@ -226,15 +201,11 @@ CS.RUN.SetUserSession lda (ZPPWPtr),y tax bne .5 - sec - .5 ldy #S.PW.UID lda (ZPPWPtr),y bne .6 - sec - .6 lda #0 ror jsr CS.RUN.AddByte PRIV @@ -242,19 +213,14 @@ CS.RUN.SetUserSession jsr CS.RUN.AddByte UID txa jsr CS.RUN.AddByte GID - ldy #S.PW.NAME jsr CS.RUN.AddStr - ldy #S.PW.GECOS jsr CS.RUN.AddStr - ldy #S.PW.DIR jsr CS.RUN.AddStr - ldy #S.PW.SHELL jsr CS.RUN.AddStr - lda #0 jsr CS.RUN.AddByte @@ -270,7 +236,6 @@ CS.RUN.CHECKPWD rol ZPbValidUser >STYA ZPPWPtr stx ZPhPW - >PUSHYA lda ZPUID >SYSCALL GetPWUID @@ -279,7 +244,6 @@ CS.RUN.CHECKPWD rol ZPbValidUser >PUSHW ZPGetlinePtr >PUSHW ZPGetlinePtr >LIBCALL hLIBCRYPT,LIBCRYPT.MD5 - lda ZPPWPtr clc adc #S.PW.PASSWD @@ -287,7 +251,6 @@ CS.RUN.CHECKPWD rol ZPbValidUser lda ZPPWPtr+1 adc /S.PW.PASSWD >PUSHYA - >LDYA ZPGetlinePtr >SYSCALL strcmp @@ -300,37 +263,28 @@ CS.RUN.EXEC ldx #1 inx cpx #K.USR.MAX+1 bne .1 - lda #E.OOH -* sec +* sec rts - .2 stx ZPUsrID txa - ldy #S.PS.hSID sta (pPS),y - lda ZPhSID ldx ZPUsrID sta S.Table.hSession-1,x - ldy #S.PS.hStdIn lda (pPS),y - sta S.Table.hFILE-1,x - + sta S.Table.hFILE-1,x >LDYA L.ETCMOTD jsr CS.RUN.DumpFile - jsr CS.CLEANUP >PUSHBI S.PS.F.HOLD >LDYA L.SHELL >SYSCALL ExecL bcs .9 - >SLEEP - ldx ZPUsrID lda S.Table.hSession-1,x stz S.Table.hSession-1,x @@ -363,35 +317,26 @@ CS.RUN.GetLine sta ZPGetLineMax ror ZPbGetLineSecret stz ZPGetLineLen stz ZPbEsc - .1 >SYSCALL getchar bcs .9 - bit ZPbEsc bpl .11 - * clc ror ZPbEsc cmp #'D' bne .1 bra .3 - .11 cmp #C.DEL beq .3 - cmp #C.SPACE bcc .2 - ldy ZPGetLineLen cpy ZPGetLineMax beq .1 - sta (ZPGetLinePtr),y inc ZPGetLineLen - bit ZPbGetLineSecret bmi .1 - >SYSCALL putchar bra .1 @@ -400,32 +345,24 @@ CS.RUN.GetLine sta ZPGetLineMax cmp #C.CR beq .8 - cmp #C.ESC bne .1 - * sec ror ZPbEsc bra .1 - .3 ldy ZPGetLineLen beq .1 dec ZPGetLineLen - bit ZPbGetLineSecret bmi .1 - >PUSHBI 0 >LDYA L.MSG.BS >SYSCALL printf bra .1 - .8 ldy ZPGetLineLen lda #0 sta (ZPGetLinePtr),y - clc - .9 rts *-------------------------------------- CS.RUN.DumpFile pha @@ -433,26 +370,21 @@ CS.RUN.DumpFile pha >PUSHWZ Aux type >PUSHBI S.FI.T.TXT >PUSHBI O.RDONLY+O.TEXT - pla >SYSCALL FOpen bcs .9 - stx ZPhFile - >LDYAI 256 >SYSCALL getmem bcs .99 >STYA ZPBufPtr stx ZPhBuf - .1 >PUSHWI 256 >PUSHW ZPBufPtr lda ZPhFile >SYSCALL fgets bcs .7 - >LDYA ZPBufPtr >SYSCALL ExpandStr bcc .2 @@ -463,20 +395,16 @@ CS.RUN.DumpFile pha pla plp .9 rts - .2 phx >SYSCALL puts - pla >SYSCALL freemem bra .1 - .7 lda ZPhBuf >SYSCALL freemem .8 lda ZPhFile >SYSCALL fclose - - rts + rts *-------------------------------------- CS.DOEVENT sec @@ -484,19 +412,15 @@ CS.DOEVENT *-------------------------------------- CS.QUIT lda hLIBCRYPT beq CS.CLEANUP - >SYSCALL UnloadLib - CS.CLEANUP lda ZPhGetLine beq .1 stz ZPhGetLine >SYSCALL freemem - .1 lda ZPhPW beq .8 stz ZPhPW >SYSCALL freemem - .8 clc rts *-------------------------------------- diff --git a/SBIN/NETWORKD.S.txt b/SBIN/NETWORKD.S.txt index a12b6465..ba15aa65 100644 --- a/SBIN/NETWORKD.S.txt +++ b/SBIN/NETWORKD.S.txt @@ -42,7 +42,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -66,14 +66,11 @@ CS.INIT lda DevID jsr CS.INIT.LIBS bcs .9 - jsr CS.INIT.CONF - .9 rts .99 >LDYA L.MSG.RUNNING >SYSCALL puts - lda #0 sec rts @@ -90,18 +87,15 @@ CS.INIT.DEV >PUSHBI 0 >LDYA L.MSG.DEV.KO >SYSCALL puts - lda #MLI.E.NODEV sec rts - .8 sta DevID >PUSHW L.DEVNAME >PUSHBI 2 >LDYA L.MSG.DEV.OK >SYSCALL printf - >LDYA L.DCB.NIC >STYA IOCTL+S.IOCTL.BUFPTR lda #S.IOCTL.STATCODE.GETDCB @@ -120,20 +114,16 @@ CS.INIT.LIBS lda LibCnt phy pha - >PUSHYA >PUSHBI 2 >LDYA L.MSG.LIB >SYSCALL printf - pla ply >SYSCALL LoadLib bcs CS.INIT.LIBS.9 - ldy LibCnt sta hLIBs,y - tay ldx #LIBNET.GETCFG jsr A2osX.LIBCALL @@ -146,24 +136,20 @@ CS.INIT.LIBS lda LibCnt iny S.NETCFG.DevFlags lda DCB.NIC+S.DCB.NIC.FLAGS sta (pNETCFG),y - ldx #5 ldy #S.NETCFG.MAC+5 - .2 lda DCB.NIC+S.DCB.NIC.MAC,x sta (pNETCFG),y dey dex bpl .2 - inc LibCnt lda LibCnt cmp #LIB.MAX bne .1 - .8 clc -CS.INIT.LIBS.9 rts +CS.INIT.LIBS.9 rts *-------------------------------------- CS.INIT.CONF >LDYAI 64 >SYSCALL GetMem @@ -171,17 +157,13 @@ CS.INIT.CONF >LDYAI 64 >STYA pBuf stx hLineBuf - >PUSHWZ >PUSHBI S.FI.T.TXT >PUSHBI O.RDONLY+O.TEXT - >LDYA L.ETCNETWORK >SYSCALL fopen bcs .98 - sta hNetworkFile - .1 >PUSHWI 64 >PUSHW pBuf lda hNetworkFile @@ -197,19 +179,15 @@ CS.INIT.CONF >LDYAI 64 >LDYA pBuf >SYSCALL execL bra .1 - .98 pha jsr .81 pla sec rts - .80 lda hNetworkFile >SYSCALL fclose - .81 lda hLineBuf >SYSCALL FreeMem - clc rts *-------------------------------------- @@ -219,75 +197,56 @@ CS.RUN >PUSHW L.IOCTL >SYSCALL IOCTL bcs .8 No Frame - sta hFrameIn - ldx #0 - .1 ldy hLIBs,x beq .2 - >PUSHW L.IOCTL lda hFrameIn - phx ldx #LIBNET.INCOMING jsr A2osX.LIBCALL plx bcc CS.RUN - inx bra .1 .2 lda hFrameIn >SYSCALL freemem - bra CS.RUN - .8 clc rts *-------------------------------------- CS.DOEVENT lda (pEvent) bpl .9 - ldx #0 - .1 ldy hLIBs,x beq .9 - phx ldx #LIBNET.PULSE lda (pEvent) jsr A2osX.LIBCALL plx - inx bra .1 - .9 sec never discard TIME event rts *-------------------------------------- CS.QUIT ldx #0 - .1 lda hLIBs,x beq .7 - phx >SYSCALL UnLoadLib plx - inx bra .1 - .7 lda DevID beq .8 - pha >PUSHWZ >PUSHBI IOCTL.CLOSE pla - >SYSCALL IOCTL - + >SYSCALL IOCTL .8 clc rts *-------------------------------------- diff --git a/SBIN/NFSD.S.txt b/SBIN/NFSD.S.txt index 1edaf5f9..cb0f2646 100644 --- a/SBIN/NFSD.S.txt +++ b/SBIN/NFSD.S.txt @@ -29,7 +29,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -43,7 +43,7 @@ L.MSG.TCPIPERR .DA MSG.TCPIPERR L.MSG.SKTERR .DA MSG.SKTERR L.MSG.ABORT .DA MSG.ABORT L.MSG.INCOMING .DA MSG.INCOMING - .DA 0 + .DA 0 *-------------------------------------- CS.INIT >LDYA L.LIBTCPIP >SYSCALL LoadLibYA @@ -59,24 +59,19 @@ CS.RUN jsr Init.Timeout >LDYA L.MSG.TCPWAIT >SYSCALL printf - .1 >LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG is TCPIP loaded ? bcs .99 >STYA ZPIPCfgPtr - lda (ZPIPCfgPtr) Configured ? bmi CS.RUN.INIT - >SLEEP jsr Wait.Timeout bcc .1 - .99 >LDYA L.MSG.TCPIPERR >SYSCALL printf lda #E.SYN sec rts - CS.RUN.INIT ldx #3 ldy #S.IPCFG.IP+3 .1 lda (ZPIPCfgPtr),y @@ -84,13 +79,11 @@ CS.RUN.INIT ldx #3 dey dex bpl .1 - >PUSHW L.Socket >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.New bcs .9 >STA.G hSocket - >LDYA L.MSG.INITOK >SYSCALL printf @@ -99,33 +92,26 @@ CS.RUN.INIT ldx #3 lda (pData),y bmi .99 bra .11 - ldy #hSocket lda (pData),y - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.AcceptA bcs .11 >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.GETA >STYA ZPSktPtr - ldx #3 ldy #S.SOCKET.DST.ADDR+3 - .2 >PUSHB (ZPSktPtr),y dey dex bpl .2 - >LDYA L.MSG.INCOMING >SYSCALL printf bra .11 - .9 >LDYA L.MSG.SKTERR >SYSCALL printf lda #E.SYN sec rts - .99 >LDYA L.MSG.ABORT >SYSCALL printf lda #0 @@ -137,11 +123,9 @@ CS.DOEVENT lda (pEvent) asl One second ? bpl .9 - ldy #TimeOut lda (pData),y beq .9 - dec sta (pData),y sec do not discard TIMER event @@ -164,14 +148,12 @@ CS.DOEVENT lda (pEvent) sta (pData),y clc rts - .9 sec rts *-------------------------------------- CS.QUIT ldy #hSocket lda (pData),y >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.CLOSEA - lda hLIBTCPIP >SYSCALL UnloadLibA clc diff --git a/SBIN/TELNETD.S.txt b/SBIN/TELNETD.S.txt index 5ae29750..721ef329 100644 --- a/SBIN/TELNETD.S.txt +++ b/SBIN/TELNETD.S.txt @@ -38,7 +38,7 @@ CS.START cld .DA 0 *-------------------------------------- * Relocation Table -*-------------------------------------- +*-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.DOEVENT @@ -54,7 +54,7 @@ L.MSG.INCOMING .DA MSG.INCOMING L.MSG.EXECERR .DA MSG.EXECERR L.NOD.Template .DA NOD.Template L.CMD.Template .DA CMD.Template - .DA 0 + .DA 0 *-------------------------------------- CS.INIT >LDYA L.LIBTCPIP >SYSCALL LoadLib @@ -65,44 +65,33 @@ CS.INIT >LDYA L.LIBTCPIP *-------------------------------------- CS.RUN lda #TIMEOUT.MAX sta TimeOut - >LDYA L.MSG.TCPWAIT >SYSCALL puts - .1 >SLEEP - >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ? bcs .99 >STYA ZPIPCfgPtr - lda (ZPIPCfgPtr) Configured ? bmi CS.RUN.INIT - lda Timeout beq .99 - ldy #S.PS.hStdIn lda (pPs),y >SYSCALL feof bcs .9 I/O err - tay bne .1 - >SYSCALL GetChar bcs .9 - cmp #$03 bne .1 jmp CS.RUN.ABORT - .99 pha >LDYA L.MSG.TCPIPERR >SYSCALL puts pla sec .9 rts - CS.RUN.INIT ldx #3 ldy #S.IPCFG.IP+3 @@ -111,14 +100,11 @@ CS.RUN.INIT ldx #3 dey dex bpl .1 - lda #1 >SYSCALL ArgV bcs CS.RUN.PORTOK - >SYSCALL atoi >STYA SA.LOCAL+S.SOCKADDR.PORT - CS.RUN.PORTOK >PUSHBI 0 no protocol lda #S.SOCKET.T.STREAM >LIBCALL hLIBTCPIP,LIBTCPIP.Socket @@ -130,11 +116,9 @@ CS.RUN.PORTOK >PUSHBI 0 no protocol pla >LIBCALL hLIBTCPIP,LIBTCPIP.Bind bcs .9 - >LDA.G hSrvSocket >LIBCALL hLIBTCPIP,LIBTCPIP.Listen bcs .9 - >LDYA L.MSG.INITOK >SYSCALL puts @@ -143,40 +127,32 @@ CS.RUN.PORTOK >PUSHBI 0 no protocol >LDA.G hSrvSocket >LIBCALL hLIBTCPIP,LIBTCPIP.Accept bcs .2 - jsr CS.RUN.SERVER bcc .2 rts - .9 pha >LDYA L.MSG.SKTERR >SYSCALL puts pla sec rts - CS.RUN.ABORT >LDYA L.MSG.ABORT >SYSCALL puts lda #3 - sec rts *-------------------------------------- CS.RUN.SERVER pha ldy #hSockets ldx #CONN.MAX - .1 lda (pData),y bne .2 pla sta (pData),y - bra CS.RUN.CLIENT - .2 iny dex bne .1 - pla >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown .8 clc @@ -190,37 +166,31 @@ CS.RUN.CLIENT >SLEEP give some time for TCPIP SYN/ACK ldx #3 ldy #S.SOCKET.REM.ADDR+3 - .3 >PUSHB (ZPSktPtr),y dey dex bpl .3 - >PUSHB.G hClientSocket >PUSHBI 5 >LDYA L.MSG.INCOMING >SYSCALL printf - >PUSHB.G hClientSocket >PUSHBI 1 >PUSHW L.NOD.Template >LEA.G NodBuf >SYSCALL sprintf - >PUSHB.G hClientSocket >PUSHW 0 >LEA.G NodBuf >SYSCALL mknod bcs .9 >STA.G hClientFile - >PUSHEA.G NodBuf >PUSHBI 2 >PUSHW L.CMD.Template >LEA.G CmdBuf >SYSCALL sprintf - >PUSHBI 0 >LEA.G CmdBuf >SYSCALL execl @@ -236,35 +206,27 @@ CS.RUN.CLIENT >SLEEP give some time for TCPIP SYN/ACK *-------------------------------------- CS.DOEVENT lda (pEvent) bpl .9 is it a TIMER event? - lda TimeOut beq .9 - dec TimeOut - .9 sec do not discard TIMER event rts *-------------------------------------- CS.QUIT ldx #CONN.MAX ldy #hSockets - .1 lda (pData),y beq .2 - phx phy >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown ply plx - .2 iny dex bne .1 - >LDA.G hSrvSocket beq .3 >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown - .3 lda hLIBTCPIP beq .8 >SYSCALL UnloadLib diff --git a/SHARED/X.PRINTF.S.txt b/SHARED/X.PRINTF.S.txt index 69451dea..408e31d0 100644 --- a/SHARED/X.PRINTF.S.txt +++ b/SHARED/X.PRINTF.S.txt @@ -4,44 +4,34 @@ NEW *-------------------------------------- PrintFYA sty PrintFYA.Next+1 sta PrintFYA.Next+2 - pla sta PrintFYA.99+1 pla sta PrintFYA.98+1 - lda $C011 RDLCBNK2 sta PrintFYA.91+1 lda $C012 RDLCRAM sta PrintFYA.90+1 - lda $C08A RROMBNK1, make sure $D000-$FFFF ROM selected lda $CFFF get access to $C800-$CFFF internal ROM - PrintFYA.1 stz X.b0Flag stz X.DigitCount - jsr PrintFYA.Next beq PrintFYA.90 - cmp #'%' bne .7 - .2 jsr PrintFYA.Next beq PrintFYA.90 - cmp #'0' bne .3 ror X.b0Flag beq -> CS bra .2 - .3 bcc .4 cmp #'9'+1 bcs .4 and #$0f sta X.DigitCount bra .2 - .4 ldx #PrintFYA.Tbl-PrintFYA.Esc-1 .5 cmp PrintFYA.Esc,x @@ -49,53 +39,44 @@ PrintFYA.1 stz X.b0Flag dex bpl .5 bra PrintFYA.1 - .6 txa asl tax jmp (PrintFYA.Tbl,x) - .7 cmp #'\' bne .8 - jsr PrintFYA.Next beq PrintFYA.90 - cmp #'n' bne .8 lda #$0D - .8 ora #$80 jsr $FDED COUT bra PrintFYA.1 PrintFYA.90 lda #$ff bpl PrintFYA.98 ROM was selected, nothing to do - PrintFYA.91 lda #$ff bmi PrintFYA.92 RAM bank 2 was selected - ldx #$8B RRAMWRAMBNK1 .HS 2C bit abs - PrintFYA.92 ldx #$83 RRAMWRAMBNK2 lda $C000,x lda $C000,x - PrintFYA.98 lda #$ff Self modified RTS HI pha PrintFYA.99 lda #$ff Self modified RTS LOPrintFYAPrintFYA pha - rts + rts *-------------------------------------- PrintFYA.Next lda $ffff beq .8 inc PrintFYA.Next+1 bne .8 inc PrintFYA.Next+2 Always !=0 -.8 rts +.8 rts *-------------------------------------- PrintFYA.Esc .AS "dDhHS" PrintFYA.Tbl .DA PrintFYA.D @@ -110,19 +91,15 @@ PrintFYA.DD plx pla sta X.HexBuffer stx X.HexBuffer+1 - stz X.BCDBuffer stz X.BCDBuffer+1 stz X.BCDBuffer+2 - ldx #16 let's roll 16 bits sed - .2 asl X.HexBuffer rol X.HexBuffer+1 php cpy will disturb carry while BCD adc ldy #0 - .3 plp lda X.BCDBuffer,y adc X.BCDBuffer,y @@ -134,12 +111,9 @@ PrintFYA.DD plx plp dex bne .2 - cld - ldx #0 ldy #5 - .4 lda X.BCDBuffer,x pha and #$0F @@ -157,7 +131,6 @@ PrintFYA.DD plx inx dey bpl .4 - lda X.DigitCount beq .5 lda #6 @@ -171,7 +144,6 @@ PrintFYA.DD plx sec ror X.b0Flag bra .8 - .7 cpy #5 beq .8 lda #" " @@ -184,7 +156,6 @@ PrintFYA.DD plx .81 iny cpy #6 bne .6 - .9 jmp PrintFYA.1 *-------------------------------------- PrintFYA.HH pla @@ -196,26 +167,20 @@ PrintFYA.H pla PrintFYA.S pla sta .1+2 sta .2+2 - pla sta .1+1 sta .2+1 - .1 lda $ffff beq .9 - tax - ldy #1 - .2 lda $ffff,y ora #$80 jsr $FDED COUT iny dex bne .2 - -.9 jmp PrintFYA.1 +.9 jmp PrintFYA.1 *-------------------------------------- X.HexBuffer .BS 2 X.BCDBuffer .BS 3 diff --git a/SYS/KERNEL.S.ARG.txt b/SYS/KERNEL.S.ARG.txt index 184e955d..b4dda7bd 100644 --- a/SYS/KERNEL.S.ARG.txt +++ b/SYS/KERNEL.S.ARG.txt @@ -17,33 +17,25 @@ ARG.bInQuote .EQ ZPPtr3 K.Args2ArgV jsr K.ExpandStr bcs .9 - >STYA ZPPtr1 stx .80+1 >PULLW ZPPtr2 Get target buffer - ldx #0 Arg Count - stz ARG.bInQuote .1 jsr SHARED.GetCharPtr1 beq .8 - cmp #C.SPACE beq .1 skip leading spaces - .2 cmp #'"' found a quote ? bne .3 - lda ARG.bInQuote eor #$ff sta ARG.bInQuote bra .7 skip quote and check next char - .3 cmp #C.SPACE bne .6 regular char ...store... - bit ARG.bInQuote bmi .6 between quotes... store space... @@ -51,27 +43,21 @@ K.Args2ArgV jsr K.ExpandStr lda #0 set this token End jsr SHARED.PutCharPtr2 bra .1 - .6 jsr SHARED.PutCharPtr2 .7 jsr SHARED.GetCharPtr1 bne .2 - inx - .8 jsr SHARED.PutCharPtr2 set Argv[x] Ending 0 sta (ZPPtr2) set Array Ending 0 phx - .80 lda #$FF SELF MODIFIED jsr K.FreeMem Discard expanded string - pla get back Arg Count * clc rts - .9 >RET 2 Discard target buffer */-------------------------------------- * # ArgV @@ -84,20 +70,16 @@ K.Args2ArgV jsr K.ExpandStr * CS : Out Of Bound *\-------------------------------------- K.ArgV tax save requested arg# - ldy #S.PS.hARGV lda (pPs),y jsr K.GetMemPtr >STYA ZPPtr2 Use Ptr2, called from ExpandStr - .1 lda (ZPPtr2) end of ARGV[] ? beq .9 yes, not found.... - dex bmi .7 - .3 jsr SHARED.GetCharPtr2 skip str bne .3 @@ -105,7 +87,6 @@ K.ArgV tax save requested arg# bra .1 .7 >LDYA ZPPtr2 - .8 clc rts diff --git a/SYS/KERNEL.S.BIN.txt b/SYS/KERNEL.S.BIN.txt index 6b75b670..81f88f6a 100644 --- a/SYS/KERNEL.S.BIN.txt +++ b/SYS/KERNEL.S.BIN.txt @@ -22,13 +22,11 @@ K.LoadLib jsr ENV.Search.LIB bcs .9 jsr BIN.Load K.Buf256 = "/PATH/BIN" bcs .9 - >STYA .1+1 txa Pass hLib to LibLoad ldx #LIBMGR.LOAD .1 jsr $ffff SELF MODIFIED, Call LIB.LOAD function - bcs BIN.Load.Cleanup lda BIN.hMem @@ -46,15 +44,13 @@ K.UnloadLib pha jsr Mem.DecRefCnt bne .8 - .1 ldx #LIBMGR.UNLOAD .2 jsr $ffff Self Modified, Call LIB.UNLOAD function pla jmp K.FreeMem - .8 pla * clc - rts + rts */-------------------------------------- * # LoadDrv * ## ASM @@ -69,7 +65,6 @@ K.LoadDrv >STYA .2+1 Save "BIN\0ARGS\0\0" bcs .9 jsr BIN.Load K.Buf256 = "/PATH/BIN" bcs .9 - >STYA .3+1 ldx #$ff @@ -77,23 +72,18 @@ K.LoadDrv >STYA .2+1 Save "BIN\0ARGS\0\0" .1 inx Skip "BIN" .2 lda $ffff,x bne .1 - txa sec adc .2+1 tay lda #0 adc .2+2 Y,A = ARGS - .3 jsr $ffff SELF MODIFIED, call Dev.Detect - jsr BIN.Load.Cleanup bcs .9 - lda #0 Make sure RC = 0 if success * clc .9 rts - BIN.Load.Cleanup php pha @@ -101,7 +91,7 @@ BIN.Load.Cleanup jsr K.FreeMem pla plp -BIN.Load.Cleanup.RTS +BIN.Load.Cleanup.RTS rts *-------------------------------------- * BIN.Load @@ -117,39 +107,33 @@ BIN.Load ldx #0 beq BIN.Load.1 inx we will skip Slot 0... - txa jsr MEM.GetMemByID - lda (ZPMemMgrSPtr) bpl .1 In Use? - ldy #S.MEM.BIN any BIN PATH in this slot? lda (ZPMemMgrSPtr),y beq .1 - jsr K.GetMemPtr X unmodified, get pathname >STYA .3+1 ldy #0 - .2 lda K.Buf256,y .3 cmp $ffff,y SELF MODIFIED bne .1 iny ora #0 bne .2 - stx BIN.hMem save hMem txa jsr MEM.GetMemByID jsr Mem.IncRefCnt clc jmp MEM.GetMEMPTR Y,A=Ptr -*-------------------------------------- +*-------------------------------------- * STAT Already called by Filesearch in FindDRV, FindLIB * STAT Already called by PS.Load (TXT,BIN,SYS) -*-------------------------------------- +*-------------------------------------- BIN.Load.1 >LDYA K.S.STAT+S.STAT.P.AUXTYPE >STYA BIN.R.CS.Start @@ -176,7 +160,6 @@ BIN.Load.1 >LDYA K.S.STAT+S.STAT.P.AUXTYPE >STYA ZPPtr1 set ZPPtr1 -> New Code start jsr BIN.ComputeOffsetYA YA = actual load address - ldy #H.BIN.CS.SIZE get Code Len lda (ZPPtr1),y pha @@ -185,15 +168,12 @@ BIN.Load.1 >LDYA K.S.STAT+S.STAT.P.AUXTYPE ply jsr BIN.ComputeCSEndYA jsr BIN.RelExe - >LDYAI K.Buf256 get back bin path ldx #SYS.strdup make a copy of this string jsr K.SYSCALL2 bcs .98 - lda BIN.hMem Keep X=new string hMem jsr MEM.GetMemByID X unmodified - lda (ZPMemMgrSPtr) ora #S.MEM.F.CODE This is a code segment sta (ZPMemMgrSPtr) @@ -201,11 +181,9 @@ BIN.Load.1 >LDYA K.S.STAT+S.STAT.P.AUXTYPE txa Get Back Cmd line hMem ldy #S.MEM.BIN sta (ZPMemMgrSPtr),y - ldx BIN.hMem setup X = CS hMem clc jmp MEM.GetMEMPTR ...and Y,A=PTR to CS - .98 jmp BIN.Load.Cleanup Discard Loaded Code, exits CS */-------------------------------------- * # InsDrv @@ -242,41 +220,32 @@ K.InsDrv >STYA ZPPtr3 SRC PTR for move >STYA ZPPtr4 ...for move... sty .7+1 ...and for exit sta .8+1 - jsr BIN.ComputeOffsetYA lda BIN.R.Size eor #$ff tax - lda BIN.R.Size+1 eor #$ff pha - ldy #0 - .1 inx bne .2 - pla inc beq .3 - pha - .2 lda (ZPPtr3),y sta (ZPPtr4),y iny bne .1 - inc ZPPtr3+1 inc ZPPtr4+1 bra .1 - .3 jsr BIN.RelDrv Relocate at Ptr1 .7 ldy #$ff SELF MODIFIED .8 lda #$ff SELF MODIFIED -.9 rts +.9 rts *-------------------------------------- BIN.RelExe ldy #H.BIN.T+1 lda (ZPPtr1),y @@ -284,31 +253,28 @@ BIN.RelExe ldy #H.BIN.T+1 beq .1 cmp /H.BIN.T.DRV65 beq .1 - lda #E.IBIN sec rts - .1 ldy #H.BIN.JMP relocate Main JMP jsr BIN.RelocateAtPtr1Y ldy #H.BIN.EXE.REL.TABLE skip Header, CS.SIZE & DS.SIZE... (16 bytes) .HS 2C bit abs -*-------------------------------------- -BIN.RelDrv ldy #H.BIN.DRV.REL.TABLE +*-------------------------------------- + BIN.RelDrv ldy #H.BIN.DRV.REL.TABLE .1 iny lda (ZPPtr1),y HI in A beq .2 $00xx = end of table - dey jsr BIN.RelocateAtPtr1Y iny bra .1 -*-------------------------------------- +*-------------------------------------- .2 jsr SHARED.AddYp1ToPtr1 add current offset in Y to Ptr * + 1 to skip last 00 from beq .2 * ZPPtr1=Current Code PTR @@ -316,7 +282,6 @@ BIN.RelDrv ldy #H.BIN.DRV.REL.TABLE clc adc BIN.R.Offset sta BIN.R.Stop - lda BIN.R.CS.End+1 adc BIN.R.Offset+1 sta BIN.R.Stop+1 @@ -331,16 +296,12 @@ BIN.RelDrv ldy #H.BIN.DRV.REL.TABLE lsr lsr .4 and #$0f - bit #$8 abs addressing? beq .5 no.... - and #7 save Opcode length... pha - ldy #1 jsr BIN.RelocateAtPtr1Y - pla get back Opcode length... .5 tay A = OPCODE length @@ -354,7 +315,6 @@ BIN.RelDrv ldy #H.BIN.DRV.REL.TABLE bne .3 next opcode.... clc Make sure exit with CC - rts *-------------------------------------- YA = CS Size BIN.ComputeCSEndYA @@ -384,17 +344,14 @@ BIN.RelocateAtPtr1Y tax save LO in X iny make Y point to HI lda (ZPPtr1),y Get HI - cpx BIN.R.CS.Start sbc BIN.R.CS.Start+1 bcc .9 addr < BIN.R.CS.Start, out of range - txa Get back LO cpx BIN.R.End lda (ZPPtr1),y Get HI sbc BIN.R.End+1 bcs .9 addr > BIN.R.End, out of range - txa Get back LO dey clc @@ -405,7 +362,6 @@ BIN.RelocateAtPtr1Y lda (ZPPtr1),y adc BIN.R.Offset+1 sta (ZPPtr1),y - .9 rts *-------------------------------------- * 6502/65C02/65816 OPCODES diff --git a/SYS/KERNEL.S.CORE.txt b/SYS/KERNEL.S.CORE.txt index 20a8387e..254431c8 100644 --- a/SYS/KERNEL.S.CORE.txt +++ b/SYS/KERNEL.S.CORE.txt @@ -4,72 +4,56 @@ NEW CORE.Run stz CORE.PSIndex bra .8 Skip PS0 - .1 lda PS.Table.hPS,x beq .8 - jsr K.GetMemPtr >STYA pPs - lda (pPs) get S.PS.F * bit #S.PS.F.HOLD Waiting for Another Task to Terminate? * beq .2 bpl .2 - ldy #S.PS.CPID lda (pPs),y jsr CORE.GetPS bcc .8 yes, still running.... - lda (pPs) get S.PS.F again eor #S.PS.F.HOLD unmark as HOLD sta (pPs) - .2 jsr CORE.PSSelect Restore ZP & Ptrs .3 jsr CORE.PSExec INIT/RUN/QUIT/RESUME dec IRQ.InKernel - bcc .4 INIT/RUN Exit ? jsr CORE.UpdateParentPS - ldy #S.PS.S - lda #PS.QUIT + lda #S.PS.S.QUIT sta (pPs),y bra .3 try executing QUIT now... - .4 lda (pPs) bit #S.PS.F.SLEEP bne .7 - ldy #S.PS.S lda (pPs),y bne .5 - - lda #PS.RUN go from INIT to RUN + lda #S.PS.S.RUN go from INIT to RUN sta (pPs),y bra .7 - -.5 cmp #PS.QUIT +.5 cmp #S.PS.S.QUIT bne .7 - >PUSHBI 2 ldy #S.PS.PID lda (pPs),y >SYSCALL2 Kill bra .8 - .7 jsr CORE.PSLeave Save ZP & Ptrs - .8 inc CORE.PSIndex ldx CORE.PSIndex cpx CORE.PSCount - bne .1 + bne .1 *-------------------------------------- CORE.Events jsr CORE.GetEvents - bcs .4 CS=no event jsr CORE.Dispatch @@ -78,20 +62,14 @@ CORE.Events jsr CORE.GetEvents lda PS.Table.PID Select PS0 jsr K.GetMemPtr >STYA pPs - >LDYAI K.STACKTOP >STYA pStack - lda #Evt.Table sta pEvent - .1 lda (pEvent) beq .3 - bmi .2 Ignore & Discard any timer event - * jsr CORE.DumpEvent - .2 jsr CORE.DestroyEvent .3 lda pEvent @@ -103,16 +81,12 @@ CORE.Events jsr CORE.GetEvents *-------------------------------------- .4 bit OPENAPPLE bpl .8 - lda KBD - bpl .8 - cmp #"0" bcc .8 cmp #"6" bcs .8 - sta KBDSTROBE and #$0F tax @@ -121,15 +95,11 @@ CORE.Events jsr CORE.GetEvents cmp A2osX.ASCREEN Same as active screen...nothing to do beq .8 - pha - >PUSHWZ Param >PUSHBI IOCTL.CONTROL request pla - jsr K.IOCTL - .8 jmp CORE.Run *-------------------------------------- CORE.UpdateParentPS @@ -138,12 +108,10 @@ CORE.UpdateParentPS ldy #S.PS.PPID Notify Parent Process for exit code... lda (pPs),y beq .8 no parent process - jsr CORE.GetPSByID X unmodified bcs .8 parent is dead.....skipping... >STYA ZPPtr1 - lda (ZPPtr1) Parent PS is HOLD? bit #S.PS.F.HOLD beq .8 no... @@ -153,16 +121,13 @@ CORE.UpdateParentPS dey #S.PS.PID cmp (pPs),y bne .8 Hold, but not waiting this PS - txa waiting for this PS to terminate.... ldy #S.PS.RC give it RC sta (ZPPtr1),y - lda (ZPPtr1) eor #S.PS.F.HOLD release Parent PS HOLD... sta (ZPPtr1) - -* clc +* clc .8 rts *-------------------------------------- * CORE.GetEvents : @@ -174,18 +139,14 @@ CORE.UpdateParentPS *-------------------------------------- CORE.GetEvents lda #Evt.Table sta pEvent point to start of event list - stz CORE.EvtCount reset Size - bit CORE.IRQMode do we have IRQ enabled for Ticks ? bpl .1 no, regular poll - lda IRQ.Tick a Tick ? beq .8 no, no event - dec IRQ.Tick bra .2 - + .1 lda VBL get VLINE status tax eor CORE.VBLState @@ -193,22 +154,17 @@ CORE.GetEvents lda #Evt.Table txa sta CORE.VBLState save new bpl .8 Up2down transition,no tick - .2 lda #0 - dec CORE.TickSec bne .3 not yet One Sec lda IRQ.Mode eor #$C0 sta IRQ.Mode - ldx A2osX.ASCREEN cpx #3 devID 3 is /DEV/CONSOLE bne .22 - sta SYS.BASL0+38 - .22 ldx CORE.TickPerSec stx CORE.TickSec @@ -217,7 +173,6 @@ CORE.GetEvents lda #Evt.Table .3 dec CORE.Tick10t bne .6 - .4 inc A2osX.TIMER16 bne .5 inc A2osX.TIMER16+1 @@ -226,10 +181,8 @@ CORE.GetEvents lda #Evt.Table stx CORE.Tick10t ora #S.EVT.F.T10TH - .6 tax Finally, do we have an event ? beq .8 no.... - sta (pEvent) inc CORE.EvtCount Add one event to Queue @@ -242,10 +195,8 @@ CORE.GetEvents lda #Evt.Table .8 lda CORE.EvtCount if 0, exit with CS (from cmp), and A=0 "no event" beq .9 - clc rts - .9 sec rts *-------------------------------------- @@ -256,12 +207,9 @@ CORE.GetEvents lda #Evt.Table * CC: Event Cleared *-------------------------------------- CORE.Dispatch stz CORE.PSIndex - bra .5 skip PS0 - .1 lda PS.Table.hPS,x beq .5 - jsr K.GetMemPtr >STYA pPS @@ -271,28 +219,24 @@ CORE.Dispatch stz CORE.PSIndex ldy #S.PS.S lda (pPs),y - cmp #PS.RUN + cmp #S.PS.S.RUN bne .5 - lda #PS.DOEVENT Flag this PS for IRQ Mgr + lda #S.PS.S.DOEVENT Flag this PS for IRQ Mgr sta (pPs),y - jsr CORE.PSSelect lda #Evt.Table sta pEvent Select first event in list - lda CORE.EvtCount sta CORE.EvtIndex .2 lda (pEvent) Empty event, select next beq .3 - jsr CORE.PSExec2 dec IRQ.InKernel bcs .3 not for this PS, try next event in list - jsr CORE.DestroyEvent this PS handled the EVT, destroy it... lda CORE.EvtCount @@ -300,7 +244,6 @@ CORE.Dispatch stz CORE.PSIndex .3 dec CORE.EvtIndex beq .4 all EVT submitted to this PS, try other PS - lda pEvent try next EVT to this PS clc adc #S.EVT @@ -308,16 +251,13 @@ CORE.Dispatch stz CORE.PSIndex bra .2 .4 ldy #S.PS.S - lda #PS.RUN + lda #S.PS.S.RUN sta (pPs),y - jsr CORE.PSLeave - .5 inc CORE.PSIndex ldx CORE.PSIndex cpx CORE.PSCount bne .1 - * sec rts *-------------------------------------- @@ -325,7 +265,6 @@ CORE.Dispatch stz CORE.PSIndex *-------------------------------------- CORE.GetPSByID jsr CORE.GetPS bcs CORE.GetPS.RTS - lda PS.TABLE.hPS,y jmp K.GetMemPtr *-------------------------------------- @@ -336,29 +275,24 @@ CORE.GetPS tay ldy #0 bra .2 Skip PS0 - .1 cmp PS.Table.PID,y beq CORE.GetPS.8 .2 iny cpy CORE.PSCount bne .1 - .9 lda #E.NSP * sec rts CORE.GetPS.8 - clc -CORE.GetPS.RTS rts + clc +CORE.GetPS.RTS rts *-------------------------------------- *CORE.DumpEvent ldy #S.EVT-1 - *.1 >PUSHB (pEvent),y * dey * bpl .1 - * >LDYAI .2 * jmp K.printf - *.2 .AZ "!Evt:F=%b,Dev=$%h,LO=$%h,HI=$%h,W1=$%H,W2=$%H\n" *-------------------------------------- CORE.DestroyEvent @@ -367,20 +301,16 @@ CORE.DestroyEvent bit #S.EVT.F.hMEM1 beq .1 - pha ldy #S.EVT.B1 lda (pEvent),y jsr K.FreeMem pla - .1 bit #S.EVT.F.hMEM2 beq .2 - ldy #S.EVT.B2 lda (pEvent),y jsr K.FreeMem - .2 lda #0 sta (pEvent) dec CORE.EvtCount @@ -399,24 +329,21 @@ CORE.PSSelect ldy #S.PS.ZP.SESSION+PSCTX.SIZE-1 *-------------------------------------- CORE.PSLeave ldy #S.PS.ZP.SESSION+PSCTX.SIZE-1 ldx #PSCTX.SIZE-1 - .1 lda pSession,x sta (pPs),y dey dex bpl .1 - rts *-------------------------------------- CORE.PSExec lda (pPS) bit #S.PS.F.SLEEP bne CORE.PSResume - + CORE.PSExec2 ldy #S.PS.S lda (pPS),y tax - lda pCode+1 pha lda pCode @@ -441,27 +368,21 @@ CORE.PSResume sei inx bne .1 - .2 ldy #S.PS.PC+1 lda (pPs),y pha - dey #S.PS.PC lda (pPs),y pha - dey #S.PS.P lda (pPs),y pha - dey #S.PS.Y lda (pPs),y pha - dey #S.PS.X lda (pPs),y tax - dey #S.PS.A lda (pPs),y diff --git a/SYS/KERNEL.S.DEV.txt b/SYS/KERNEL.S.DEV.txt index 57865084..97040e2c 100644 --- a/SYS/KERNEL.S.DEV.txt +++ b/SYS/KERNEL.S.DEV.txt @@ -9,21 +9,17 @@ NEW * X = hDev *\-------------------------------------- K.GetDevByName >STYA ZPPtr1 requested dev name - ldx #1 .1 lda Dev.Table-1,x clc adc #S.FD.DEV sta ZPPtr2 - lda Dev.Table,x beq K.GetDev.NODEV adc /S.FD.DEV sta ZPPtr2+1 - ldy #$ff - .2 iny lda (ZPPtr1),y cmp (ZPPtr2),y @@ -31,12 +27,10 @@ K.GetDevByName >STYA ZPPtr1 requested dev name ora (ZPPtr2),y Both char are 0 ? bne .2 no....loop - .3 ldy Dev.Table-1,x .4 lda Dev.Table,x clc rts - .7 inx inx cpx #K.DEV.MAX*2+1 @@ -64,7 +58,7 @@ K.GetDevStatus tax >STYA pFD lda #S.IOCTL.STATCODE.GETDIB -K.GetDevStatus.I +K.GetDevStatus.I sta K.S.IOCTL+S.IOCTL.STATCODE ldy #S.FD.DEV.DEVID @@ -72,9 +66,7 @@ K.GetDevStatus.I sta K.S.IOCTL+S.IOCTL.UNITNUM jsr K.IOCTL.GetPDrv - >LDYAI K.S.IOCTL - ldx #IOCTL.STATUS jmp (pDrv) */-------------------------------------- @@ -94,66 +86,51 @@ K.MKDev jsr SHARED.SPtr1PPtr2 ptr1=fd, ptr2=name ldx DevMgr.DevIdx cpx #K.DEV.MAX*2+1 beq .9 - ldy #$ff ldx #S.FD.DEV - .1 iny Get DEV name length inx compute FD+NAME+\0 in X lda (ZPPtr2),y bne .1 - txa tay lda #0 - jsr MEM.GetKrnlBuf bcs .99 >STYA pFD >STYA .4+1 - ldx DevMgr.DevIdx sta Dev.Table,x tya sta Dev.Table-1,x - ldy #S.FD.DEV-1 - .2 lda (ZPPtr1),y sta (pFD),y dey bpl .2 - ldy #$ff ldx #S.FD.DEV-1 - .3 iny inx lda (ZPPtr2),y .4 sta $ffff,x bne .3 - >LDYAI K.IOBuf >STYA K.S.IOCTL+S.IOCTL.BUFPTR lda #S.IOCTL.STATCODE.STATUS jsr K.GetDevStatus.I bcs .99 - lda K.IOBuf Get Status byte bit #S.DIB.S.IRQ beq .8 - ldx #0 - .5 lda IRQ.Vectors+1,x beq .7 - inx inx cpx #K.IRQDEV.MAX*2+1 bne .5 - .9 lda #E.OOH * sec .99 rts @@ -164,14 +141,12 @@ K.MKDev jsr SHARED.SPtr1PPtr2 ptr1=fd, ptr2=name iny lda (pFD),y sta ZPPtr1+1 - ldy #IOCTL.IRQ+4 lda (ZPPtr1),y sta IRQ.Vectors,x iny lda (ZPPtr1),y sta IRQ.Vectors+1,x - .8 lda DevMgr.DevIdx inc DevMgr.DevIdx inc DevMgr.DevIdx diff --git a/SYS/KERNEL.S.DIRENT.txt b/SYS/KERNEL.S.DIRENT.txt index 797a9329..1e545bb8 100644 --- a/SYS/KERNEL.S.DIRENT.txt +++ b/SYS/KERNEL.S.DIRENT.txt @@ -15,20 +15,18 @@ NEW *\-------------------------------------- K.OpenDir jsr PFT.CheckPathYA bcs K.ReadDir.RTS - ldx #1 jsr IO.MkFD bcs K.ReadDir.RTS lda K.Buf256+1 One char ("/") ? beq .8 No, Go open dir.... - + >MLICALL MLIGETFILEINFO bcs .98 file/dir does not exists....quit lda K.MLI.PARAMS+4 cmp #$0F Directory ? bne .98 - jsr IO.MLI.OPEN bcs .98 @@ -36,9 +34,8 @@ K.OpenDir jsr PFT.CheckPathYA jsr STDIO.NewHFile bcc K.ReadDir.RTS - .98 jmp IO.OPEN.ERR -*/-------------------------------------- +*/-------------------------------------- * # ReadDir * ## C * `int readdir (int hDIR, S.DIRENT * dirent);` @@ -66,12 +63,10 @@ K.ReadDir.EC .BS 2 *-------------------------------------- K.ReadDir jsr PFT.CheckNodeA bcs K.ReadDir.RTS - ldy #S.FD.REG.REF lda (pFD),y beq K.ReadDir.ROOT jmp K.ReadDir.DIR - K.ReadDir.NoMore lda #MLI.E.EOF sec @@ -81,47 +76,38 @@ K.ReadDir.ROOT ldy #S.FD.DIR.FC did we already returned something ? lda (pFD),y bne K.ReadDir.NoMore - stz K.MLI.PARAMS+1 All Volumes - >LDYAI K.Buf256 >STYA K.MLI.PARAMS+2 >STYA ZPPtr2 >MLICALL MLIONLINE bcs K.ReadDir.RTS - -* pass #1 compute BufSize..... +* pass #1 compute BufSize..... lda #1 +1 for Ending 0 sta K.ReadDir.BufSize stz K.ReadDir.BufSize+1 - stz K.ReadDir.EC - ldy #0 .1 lda (ZPPtr2),y and #$0F beq .2 - inc K.ReadDir.EC increase entry count - sec Add Filelen +1 adc #S.STAT will ends with CC adc K.ReadDir.BufSize sta K.ReadDir.BufSize bcc .2 inc K.ReadDir.BufSize+1 - -.2 tya + .2 + tya clc adc #16 tay bcc .1 loop until 256 bytes scanned - * pass #2 Fill Buffer... jsr K.ReadDir.GetBuf bcs K.ReadDir.RTS - .3 lda (ZPPtr2) and #$0F beq .88 @@ -132,19 +118,15 @@ K.ReadDir.ROOT lda #'/' sta K.MLI.PATH+1 ldy #1 - .4 lda (ZPPtr2),y sta K.MLI.PATH+1,y jsr K.ReadDir.AddToBuf iny dex bne .4 - txa Add ending 0 for C String jsr K.ReadDir.AddToBuf - jsr K.ReadDir.ClrStat - lda (ZPPtr2) asl DRIVE in Carry @@ -163,7 +145,6 @@ K.ReadDir.ROOT >LDYAI K.MLI.PATH >STYA K.MLI.PARAMS+1 - >MLICALL MLIGETFILEINFO sta K.S.STAT+S.STAT.P.DEVSTATUS @@ -172,12 +153,10 @@ K.ReadDir.ROOT >STYA K.S.STAT+S.STAT.P.DEVBLOCKS >LDYA K.MLI.PARAMS+8 >STYA K.S.STAT+S.STAT.BLOCKS - .80 jsr K.ReadDir.ADDSTAT dec K.ReadDir.EC beq .5 - .88 lda ZPPtr2 clc adc #16 @@ -185,14 +164,11 @@ K.ReadDir.ROOT bcc .3 inc ZPPtr2+1 bra .3 - * lda #0 done by S.MEM.F.INIT0 * sta (ZPPtr4) Ending 0 - .5 ldy #S.FD.DIR.FC lda #16 sta (pFD),y Flag that we returned somthing for next time - jmp K.ReadDir.EXIT *-------------------------------------- K.ReadDir.DIR sta K.MLI.PARAMS+1 A=#S.DIR.PRODOS.REF @@ -201,39 +177,31 @@ K.ReadDir.DIR sta K.MLI.PARAMS+1 A=#S.DIR.PRODOS.REF jsr K.GetMem bcs .99 stx K.ReadDir.hMem - >STYA K.MLI.PARAMS+2 For reading - pha tya * clc CC from K.GetMem adc #4 Skip 4 bytes linked list sta ZPPtr2 PTR to Buffer for PASS #1 sta ZPPtr3 PTR to Buffer for PASS #2 - pla adc #0 sta ZPPtr2+1 PTR to Buffer for PASS #1 sta ZPPtr3+1 PTR to Buffer for PASS #2 - >LDYAI 512 >STYA K.MLI.PARAMS+4 >MLICALL MLIREAD Read A block from directory bcs .98 - ldy #S.FD.DIR.EL Check if first run.... lda (pFD),y bne .2 no, we have all we need.... - ldy #$1f+3 ldx #3 - .1 lda (ZPPtr2),y Get K.ReadDir.EL.... From Block sta K.ReadDir.EL,x dey dex bpl .1 - inc K.ReadDir.EC Add one to EC because we include VOL/DIR Header bne .4 inc K.ReadDir.EC+1 ...and ProDOS does NOT include header entry in EC @@ -242,7 +210,6 @@ K.ReadDir.DIR sta K.MLI.PARAMS+1 A=#S.DIR.PRODOS.REF .98 jsr K.ReadDir.CLN sec .99 rts - .2 ldy #S.FD.DIR.EL+3 ldx #3 @@ -251,7 +218,6 @@ K.ReadDir.DIR sta K.MLI.PARAMS+1 A=#S.DIR.PRODOS.REF dey dex bpl .3 - .4 lda K.ReadDir.EC eor #$ff tax @@ -264,7 +230,6 @@ K.ReadDir.DIR sta K.MLI.PARAMS+1 A=#S.DIR.PRODOS.REF bne .5 iny beq .98 no...exit - * pass #1 compute BufSize... .5 lda K.ReadDir.EPB sta K.ReadDir.ECIB @@ -272,28 +237,20 @@ K.ReadDir.DIR sta K.MLI.PARAMS+1 A=#S.DIR.PRODOS.REF lda #1 For Ending 0 sta K.ReadDir.BufSize stz K.ReadDir.BufSize+1 - K.ReadDir.DIR1 lda (ZPPtr2) X = EntryCount In This Block beq .7 Free slot....goto next - and #$F0 get storage_type cmp #$F0 Volume header ? beq .1 - cmp #$E0 directory header ? beq .2 - lda (ZPPtr2) regular DIR or File, get LEN - and #$F compute filename len sec add "#" + S.STAT - adc #S.STAT .HS 2C bit abs - .1 lda #2+S.STAT add "1." string + S.STAT .HS 2C bit abs - .2 lda #2+S.STAT+3+S.STAT add "1." + S.STAT + "2.." + S.STAT... clc @@ -301,29 +258,23 @@ K.ReadDir.DIR1 lda (ZPPtr2) X = EntryCount In This Block sta K.ReadDir.BufSize bcc .3 inc K.ReadDir.BufSize+1 - .3 inx bne .7 iny bra K.ReadDir.DIR2 we reached last entry in whole DIR - .7 lda ZPPtr2 clc adc K.ReadDir.EL sta ZPPtr2 bcc .8 inc ZPPtr2+1 - .8 dec K.ReadDir.ECIB bne K.ReadDir.DIR1 - * pass #2 Fill Buffer...(ZPPtr1 & Ptr2 can now be trashed) K.ReadDir.DIR2 jsr K.ReadDir.GetBuf bcs .9 - lda K.ReadDir.EPB sta K.ReadDir.ECIB - .1 lda (ZPPtr3) beq .7 Empty slot, skip @@ -332,13 +283,11 @@ K.ReadDir.DIR2 jsr K.ReadDir.GetBuf bne .2 jsr K.ReadDir.ADD. bra .6 - .2 cmp #$E0 Dir Header ? bne .3 jsr K.ReadDir.ADD. jsr K.ReadDir.ADD.. bra .6 - .3 jsr K.ReadDir.AddFNToBuf jsr K.ReadDir.ClrStat @@ -348,20 +297,17 @@ K.ReadDir.DIR2 jsr K.ReadDir.GetBuf bne .5 jsr K.ReadDir.ADDD bra .6 - .5 jsr K.ReadDir.ADDF .6 lda K.ReadDir.EC decrease global counter... sec sbc #1 sta K.ReadDir.EC - lda K.ReadDir.EC+1 sbc #0 sta K.ReadDir.EC+1 ora K.ReadDir.EC beq .8 0! no more files in DIR - .7 dec K.ReadDir.ECIB 0! no more file in block beq .8 @@ -372,26 +318,21 @@ K.ReadDir.DIR2 jsr K.ReadDir.GetBuf bcc .1 inc ZPPtr3+1 bra .1 - .9 jsr K.ReadDir.CLN sec rts - -.8 +.8 * lda #0 S.MEM.F.INIT0 already did this * sta (ZPPtr4) Ending 0 ldx #3 ldy #S.FD.DIR.EL+3 - .81 lda K.ReadDir.EL,x Store back this session prameters to S.DIR sta (pFD),y dey dex bpl .81 - jsr K.ReadDir.CLN Discard READBUFFER - K.ReadDir.EXIT ldx #$ff Self Modified : hDIRENT txa @@ -416,15 +357,12 @@ K.ReadDir.ADD. ldx #1 filename="1." K.ReadDir.ADD.. ldx #2 filename="2.." lda #'.' - .1 jsr K.ReadDir.AddToBuf Add X dot(s) dex bne .1 txa jsr K.ReadDir.AddToBuf Add Ending 0 - jsr K.ReadDir.ClrStat - * ldy #$25 total_blocks * lda (ZPPtr3),y * sta K.S.STAT+S.STAT.BLOCKS @@ -443,7 +381,6 @@ K.ReadDir.ADDD K.ReadDir.ADDF lda /S.STAT.MODE.REG sta K.S.STAT+S.STAT.MODE+1 - ldx #ADDF.DST-ADDF.SRC .1 ldy ADDF.SRC-1,x @@ -458,7 +395,6 @@ K.ReadDir.AddAccess lda (ZPPtr3),y jsr STAT.Access2Mode - sta K.S.STAT+S.STAT.MODE tya ora K.S.STAT+S.STAT.MODE+1 preserve DIR @@ -475,12 +411,10 @@ K.ReadDir.AddTime *-------------------------------------- K.ReadDir.AddStat ldy #S.STAT-1 - .1 lda K.S.STAT,y sta (ZPPtr4),y dey bpl .1 - lda ZPPtr4 clc adc #S.STAT @@ -497,7 +431,6 @@ ADDF.DST .DA #S.STAT.P.TYPE *-------------------------------------- K.ReadDir.ClrStat ldx #S.STAT-1 - .1 stz K.S.STAT,x dex bpl .1 @@ -507,22 +440,17 @@ K.ReadDir.AddFNToBuf ldy #$1C version/min_version for lowercase bitmap lda (ZPPtr3),y check bxxxxxxx.xxxxxxxx... bpl .7 not set, no lowercase bitmap present - pha iny lda (ZPPtr3),y pha - lda #$1 sta .2+1 - ldy #15 - .1 pla .2 bit #$ff pha beq .3 - lda (ZPPtr3),y ora #$20 convert a-z to A-Z adding from $4x to $6x sta (ZPPtr3),y @@ -531,23 +459,18 @@ K.ReadDir.AddFNToBuf bne .4 rol .2+1 pla - .4 dey bne .1 pla - .7 lda (ZPPtr3) and #$0F get filename len tax - ldy #1 - .8 lda (ZPPtr3),y jsr K.ReadDir.AddToBuf iny dex bne .8 - txa * jsr K.ReadDir.AddToBuf diff --git a/SYS/KERNEL.S.DRV.txt b/SYS/KERNEL.S.DRV.txt index 7197fce3..20150770 100644 --- a/SYS/KERNEL.S.DRV.txt +++ b/SYS/KERNEL.S.DRV.txt @@ -47,7 +47,6 @@ DRV.RamDrive.STATUS bcs .9 stx DRV.RamDrive.DIB+S.DIB.SIZE sty DRV.RamDrive.DIB+S.DIB.SIZE+1 - >LDYAI DRV.RamDrive.DIB jmp DRV.STATUS.YA @@ -99,13 +98,11 @@ DRV.BlkDevice.DIB DRV.BLK txa lsr sta DRV.BLK.PARAMS CMD - ldy #S.FD.DEV.DEVID Drive 1, or 2 lda (pFD),y dec O or 1 lsr in Carry php - ldy #S.FD.DEV.BUSID lda (pFD),y asl @@ -117,40 +114,30 @@ DRV.BLK txa ror DSSS0000 sta DRV.BLK.PARAMS+1 UNITNUM - ldx #3 - ldy #S.IOCTL.BUFPTR+3 - .1 lda (pIOCTL),y BUF,BLKNUM sta DRV.BLK.PARAMS+2,x dey dex bpl .1 - ldy #S.FD.DEV.BUSPTR - lda (pFD),y sta .3+1 iny lda (pFD),y sta .3+2 - jsr GO.ProDOS - ldx #5 - .2 lda DRV.BLK.PARAMS,x sta $42,x dex bpl .2 - .3 jsr $ffff SELF MODIFIED jsr GO.A2osX rts - -DRV.BLK.PARAMS .BS 6 +DRV.BLK.PARAMS .BS 6 *-------------------------------------- * Smartport Driver *-------------------------------------- @@ -162,10 +149,8 @@ DRV.SmartPort cld lsr sta .2 tax - lda DRV.SmartPort.Cnt,x sta (pIOCTL) CmdList - ldy #S.FD.DEV.BUSPTR lda (pFD),y sta .1+1 @@ -191,7 +176,7 @@ DRV.NULL cld beq DRV.NULL.STATUS jmp (.1-12,x) *-------------------------------------- -.1 +.1 * .DA DRV.NULL.STATUS * .DA A2osX.BADCALL READBLOCK * .DA A2osX.BADCALL WRITEBLOCK @@ -218,10 +203,8 @@ DRV.STATUS.YA >STYA .2+1 ldy #S.IOCTL.STATCODE lda (pIOCTL),y beq .1 - cmp #S.IOCTL.STATCODE.GETDIB bne .9 - ldx #S.DIB-1 .HS 2C bit abs .1 ldx #3 @@ -232,12 +215,10 @@ DRV.STATUS.YA >STYA .2+1 iny lda (pIOCTL),y sta .3+2 - .2 lda $ffff,x SELF MODIFIED .3 sta $ffff,x SELF MODIFIED dex bpl .2 - clc rts @@ -260,7 +241,6 @@ DRV.READ.X ldy #S.IOCTL.BYTECNT iny lda (pIOCTL),y sta .1+2 - .1 stx $ffff SELF MODIFIED *-------------------------------------- DRV.NULL.OPEN diff --git a/SYS/KERNEL.S.ENV.txt b/SYS/KERNEL.S.ENV.txt index 9f288ab4..aa4e43d1 100644 --- a/SYS/KERNEL.S.ENV.txt +++ b/SYS/KERNEL.S.ENV.txt @@ -47,15 +47,11 @@ K.ExpandStr stz ENV.hMem Reset Intermediate string... bne .22 no, store... ror ENV.bExp Toggle Expanded flag - lda (ZPPtr1) bne .30 - lda #'$' End of string, output $ bra .22 - .30 stz ENV.VarEndChar - cmp #'{' "${VAR]"? bne .31 @@ -63,18 +59,14 @@ K.ExpandStr stz ENV.hMem Reset Intermediate string... jsr SHARED.NextCharPtr1 skip "{" bra .40 - .31 jsr ZP.IsDigit $0 ... $9 ? bcs .32 - and #$0f jsr K.ArgV bcs .35 Arg# is undefined, do not append anything - jsr ENV.AddYAToBuf bra .35 - .32 ldx #ENV.SysVars.Cnt-1 .33 cmp ENV.SysVars,x @@ -82,18 +74,14 @@ K.ExpandStr stz ENV.hMem Reset Intermediate string... dex bpl .33 bra .40 - .34 jsr ENV.SysVar .35 jsr SHARED.NextCharPtr1 skip $x bra .10 - .40 jsr ENV.ExpandStrVar bcc .70 - .50 jsr ENV.FindVarP1 bcs .70 - jsr ENV.NextEnvP3 jsr ENV.AddP3ToBuf @@ -102,30 +90,23 @@ K.ExpandStr stz ENV.hMem Reset Intermediate string... .71 iny lda (ZPPtr1),y beq .72 - jsr SHARED.IsIDValid bcc .71 - .72 jsr SHARED.AddYToPtr1 - lda ENV.VarEndChar beq .10 jsr SHARED.NextCharPtr1 skip "}" .73 jmp .10 - .80 lda ENV.hMem working from our temp string ? beq .81 no... - jsr K.FreeMem yes, discard.... .81 ldx ENV.BufLen stz K.Buf256,x - >LDYAI K.Buf256 jsr K.strdup bcs K.FileSearch.RTS - stx ENV.hMem save this as temp string, in case of recurse bit ENV.bExp SELF MODIFIED Did we expand something ? bpl K.FileSearch.RTS No, exit with Y,A from STRDUP @@ -152,26 +133,20 @@ K.FileSearch pha >PULLW ENV.SearchPath >PULLW .2+1 DstBuf >PULLW .4+1 DstStat - pla Y,A = filename - jsr ENV.Search.YA bcs K.FileSearch.RTS - ldx #$ff - .1 inx lda K.Buf256,x .2 sta $ffff,x Self Modified bne .1 - ldx #S.STAT-1 - -.3 lda K.S.STAT,x +.3 lda K.S.STAT,x .4 sta $ffff,x Self Modified dex bpl .3 -* clc +* clc K.FileSearch.RTS rts *-------------------------------------- @@ -182,16 +157,12 @@ ENV.Search.DRV ldx #2 ENV.Search.PATH ldx #4 >STYA ZPPtr2 - >LDYA ENV.VARS,x - jsr K.GetEnv get value for Search Path bcs K.FileSearch.RTS - >STYA ENV.SearchPath >LDYA ZPPtr2 - ENV.Search.YA >STYA .4+1 >LDYA ENV.SearchPath @@ -200,13 +171,10 @@ ENV.Search.YA >STYA .4+1 stx .98+1 >STYA .2+1 expanded search list ; - stz .1+1 .1 ldy #$0 Self Modified Index in Search list string - ldx #$0 - .2 lda $ffff,y Self Modified, Search list string beq .3 end of string, try it.... iny @@ -215,31 +183,25 @@ ENV.Search.YA >STYA .4+1 sta K.Buf256,x inx bra .2 - .3 txa beq .98 String is empty....nothing to try sty .1+1 save current index - ldy #$0 - .4 lda $ffff,y Self Modified, Append Filename... sta K.Buf256,x beq .5 iny inx bra .4 - .5 >PUSHWI K.S.STAT >LDYAI K.Buf256 ldx #SYS.stat jsr K.SYSCALL2 bcs .1 Failed...retry next path... - lda K.S.STAT+S.STAT.P.TYPE cmp #S.FI.T.DIR Dir ? beq .1 - jsr .98 Discard Expanded hSrch list clc @@ -265,21 +227,16 @@ ENV.Search.YA >STYA .4+1 K.PutEnv >STYA ZPPtr2 NAME=VALUE ldy #0 - .1 lda (ZPPtr2),y copy NAME to K.Buf256 beq .9 - cmp #'=' beq .2 - sta K.Buf256,y iny bne .1 - .9 lda #E.SYN sec rts - .2 lda #0 sta K.Buf256,y @@ -301,7 +258,6 @@ K.PutEnv >STYA ZPPtr2 NAME=VALUE * ## RETURN VALUE *\-------------------------------------- K.SetEnv jsr SHARED.SPtr1PPtr2 - K.SetEnv.I jsr K.UnsetEnv.I .1 jsr ENV.InitEnvP3 ZPPtr3 -> Env @@ -309,22 +265,17 @@ K.SetEnv.I jsr K.UnsetEnv.I lda #1 sta ZPPtr4 stz ZPPtr4+1 ZPPtr4 = ENVSIZE = 1 - .10 lda (ZPPtr3) End of ENV beq .15 - jsr ENV.GetP3LenY - jsr ENV.NextEnvP3Y jsr ENV.NextEnvP4Y bra .10 .15 ldy #$ff - .16 iny lda (ZPPtr1),y bne .16 - jsr ENV.NextEnvP4Y ZPPtr4 = ENVSIZE + VAR ldy #$ff @@ -332,13 +283,10 @@ K.SetEnv.I jsr K.UnsetEnv.I .19 iny lda (ZPPtr2),y bne .19 - jsr ENV.NextEnvP4Y ZPPtr4 = ENVSIZE + VALUE - lda ZPPtr4 beq .20 inc ZPPtr4+1 - .20 ldy #S.PS.ENVPAGECNT lda (pPs),y cmp ZPPtr4+1 @@ -347,13 +295,10 @@ K.SetEnv.I jsr K.UnsetEnv.I lda ZPPtr4+1 jsr ENV.Dup.A bcs .9 - pha - ldy #S.PS.hENV lda (pPs),y jsr K.Freemem - pla ldy #S.PS.hENV sta (pPs),y @@ -361,16 +306,12 @@ K.SetEnv.I jsr K.UnsetEnv.I dey S.PS.ENVPAGECNT sta (pPs),y bra .1 Start over - .22 ldy #$ff - .23 iny lda (ZPPtr1),y sta (ZPPtr3),y bne .23 - jsr ENV.NextEnvP3Y - ldy #$ff .24 iny @@ -379,7 +320,6 @@ K.SetEnv.I jsr K.UnsetEnv.I bne .24 iny - sta (ZPPtr3),y don't forget array ending 0 clc .9 rts @@ -400,10 +340,8 @@ K.SetEnv.I jsr K.UnsetEnv.I K.GetEnv >STYA ZPPtr1 jsr ENV.FindVarP1 bcs .9 - jsr ENV.NextEnvP3 Skip NAME clc just in case ADC in NextEnvPtr3 disturb CC - .9 >LDYA ZPPtr3 \0 rts */-------------------------------------- @@ -422,7 +360,6 @@ K.UnsetEnv.I jsr ENV.FindVarP1 bcs K.UnsetEnv.I.8 not found, quit jsr ENV.DelVarP3 Ptr3 -> ENVNAME - K.UnsetEnv.I.8 clc K.UnsetEnv.I.9 rts *-------------------------------------- @@ -432,18 +369,15 @@ ENV.SysVarsAllArgs lda #1 jsr K.ArgV bcs ENV.SysVarsNum.8 - >STYA ZPPtr3 .1 lda (ZPPtr3) beq ENV.SysVarsNum.8 .2 jsr ENV.AddP3ToBuf - jsr ENV.NextEnvP3 lda (ZPPtr3) beq ENV.SysVarsNum.8 - lda #' ' jsr ENV.AddAToBuf bra .2 @@ -455,17 +389,12 @@ ENV.SysVar txa lda (pPS),y *-------------------------------------- ENV.SysVarsNum jsr MATH.A2STR10NP - ldy #0 - .1 lda A2osX.NumStrBuf,y beq ENV.SysVarsNum.8 - iny - jsr ENV.AddAToBuf bra .1 - ENV.SysVarsNum.8 clc rts @@ -477,37 +406,28 @@ ENV.SysVars.PS .DA #S.PS.ARGC,#S.PS.RC,#S.PS.PPID,#S.PS.PID,#S.PS.CPID ENV.ExpandStrVar >LDYAI ENV.StrVars >STYA ZPPtr3 - ldx #0 .1 lda (ZPPtr3) beq .9 - ldy #$ff - + ldy #$ff .2 iny lda (ZPPtr1),y beq .3 - jsr SHARED.IsIDValid bcs .3 - cmp (ZPPtr3),y beq .2 - bra .4 .3 lda (ZPPtr3),y bne .4 - jmp (ENV.StrVarsJmp,x) - .4 inx inx - jsr ENV.NextEnvP3 bra .1 - .9 sec rts *-------------------------------------- @@ -550,16 +470,12 @@ ENV.StrVarsSession .1 dex dex bmi .3 - ldy #$ff - .2 iny lda (ZPPtr3),y bne .2 - jsr ENV.NextEnvP3Y bra .1 - .3 jmp ENV.AddP3ToBuf *-------------------------------------- * ENV.FindVarP1 @@ -578,21 +494,17 @@ ENV.FindVarP1 jsr ENV.InitEnvP3 Store ENV .1 lda (ZPPtr3) beq .9 end of ENV - ldy #$ff .2 iny lda (ZPPtr1),y beq .3 - jsr SHARED.IsIDValid bcs .3 - cmp (ZPPtr3),y beq .2 bra .4 - .3 lda (ZPPtr3),y bne .4 @@ -619,10 +531,8 @@ ENV.DelVarP3 >LDYA ZPPtr3 save actual Ptr lda (ZPPtr3),y Move back CSTRs... sta (ZPPtr4),y bne .2 - tya beq ENV.InitEnvP3.RTS we moved back ending \0 - jsr ENV.NextEnvP3Y jsr ENV.NextEnvP4Y bra .1 @@ -647,7 +557,6 @@ ENV.NextEnvP3A sec .8 rts *-------------------------------------- ENV.GetP3LenY ldy #$ff - .1 iny lda (ZPPtr3),y bne .1 @@ -666,13 +575,11 @@ ENV.AddYAToBuf >STYA ZPPtr3 ENV.AddP3ToBuf ldx ENV.BufLen ldy #$ff dex - .1 iny inx lda (ZPPtr3),y sta K.Buf256,x bne .1 - stx ENV.BufLen rts *-------------------------------------- @@ -690,29 +597,21 @@ ENV.AddAToBuf ldx ENV.BufLen *-------------------------------------- ENV.Dup ldy #S.PS.ENVPAGECNT lda (pPs),y - ENV.Dup.A sta .8+1 Store target page Count ldy #0 - jsr K.GetMem bcs .9 - >STYA .2+1 Target Buffer phx save hMem - jsr Mem.SetOwner Set Ownership - ldy #S.PS.hENV lda (pPs),y jsr K.GetMemPtr >STYA .1+1 - ldy #S.PS.ENVPAGECNT get SOURCE page count lda (pPs),y - tax ldy #0 - .1 lda $ffff,y SELF MODIFIED .2 sta $ffff,y SELF MODIFIED iny @@ -724,7 +623,6 @@ ENV.Dup.A sta .8+1 Store target page Count .8 ldx #$ff SELF MODIFIED Target Page Count pla hMem - clc .9 rts *-------------------------------------- diff --git a/SYS/KERNEL.S.FIO.txt b/SYS/KERNEL.S.FIO.txt index 1e7723a5..52f2ad30 100644 --- a/SYS/KERNEL.S.FIO.txt +++ b/SYS/KERNEL.S.FIO.txt @@ -14,7 +14,6 @@ NEW *\-------------------------------------- K.ChTyp jsr PFT.CheckPathYA bcs .99 - >PULLB .1+1 >MLICALL MLIGETFILEINFO bcs .9 diff --git a/SYS/KERNEL.S.GP.txt b/SYS/KERNEL.S.GP.txt index 522cdfb2..6890c0f2 100644 --- a/SYS/KERNEL.S.GP.txt +++ b/SYS/KERNEL.S.GP.txt @@ -47,26 +47,26 @@ GP.Sleep php phy ldy #S.PS.A sta (pPs),y - + txa iny #S.PS.X sta (pPs),y - + pla iny #S.PS.Y sta (pPs),y - + pla iny #S.PS.P sta (pPs),y pla get PC LO plx get PC HI - + inc Advance one byte because of return by RTI bne GP.Sleep2 inx - + GP.Sleep2 ldy #S.PS.PC sta (pPs),y @@ -75,23 +75,23 @@ GP.Sleep2 ldy #S.PS.PC sta (pPs),y tsx + + inx + beq * - inx inx keep PC HI,LO from KERNEL jsr PSExec/PSResume - inx Stack Ptr is $1ff if empty - + txa - beq .3 tay Save !Byte count for later - + .2 pla >PUSHA inx bne .2 - + tya .3 >PUSHA push CPU Stack BC to restore on top of Soft Stack @@ -99,11 +99,9 @@ GP.Sleep2 ldy #S.PS.PC inc $1fe PC=PC+1 bne .4 inc $1ff because of RTI - .4 lda (pPs) ora #S.PS.F.SLEEP sta (pPs) - lda #0 cld,clc,cli pha rti exit to kernel with CC @@ -116,35 +114,30 @@ GP.SysCall dec IRQ.InKernel phy ldy #S.PS.A sta (pPs),y - txa iny #S.PS.X sta (pPs),y - pla iny #S.PS.Y sta (pPs),y - tay pla - jsr K.SYSCALL2 bcc .2 no error quit... - tax CS,A=0 ? beq .3 Yes, BLOCKING I/O .2 inc IRQ.InKernel rts Unmodified Carry -.3 pla get PC LO - plx get PC HI +.3 sei + + pla get PC LO + plx get PC HI * sec sbc #2 move back JSR GP.SysCall -3 (jsr $BF00) +1 (RTI) bcs .4 - dex - .4 inc IRQ.InKernel bra GP.Sleep2 *-------------------------------------- @@ -168,7 +161,6 @@ GP.AtkCall dec IRQ.InKernel .DA #MLIATALK .1 .DA * jsr GO.A2osX - GP.AtkCall.INC inc IRQ.InKernel rts */-------------------------------------- @@ -186,13 +178,10 @@ GP.AtkCall.INC inc IRQ.InKernel GP.FpuCall dec IRQ.InKernel jsr .1 bra GP.AtkCall.INC - .1 cpx #FPU.FADD bcc GP.RomCall.JmpX INT32, direct JMP - phx jsr GP.SetFAC Get float from stack - plx cpx #FPU.PWR+1 bcs GP.RomCallGetFacOnStack @@ -215,7 +204,6 @@ GP.FpuCall dec IRQ.InKernel clc adc #5 sta pStack - phx jsr GP.SetARG plx @@ -242,31 +230,24 @@ GP.RomCallGetFacOnStack lda pStack ldy pStack+1 - sta FORPNT Ptr to dst buffer sty FORPNT+1 - ldx #FPU.GETFAC *-------------------------------------- GP.RomCall phx ldx $D000 stx .8+1 - bit RROMBNK1 - plx jsr GP.RomCall.JmpX - .8 ldx #$ff bit $C000,x bit $C000,x - rts *-------------------------------------- GP.SetARG ldx #FPU.SETARG .HS 2C BIT ABS GP.SetFAC ldx #FPU.SETFAC - lda pStack ldy pStack+1 bra GP.RomCall @@ -288,13 +269,10 @@ GP.Float ldy #3 sta FAC+1,y Reverse Order dey bpl .1 - dec pStack keep 5 bytes on stack - stz FAC.SIGN lda #$80+32 sta FAC Positive + Exp=32 - ldx #FPU.LTOF bra GP.RomCallGetFacOnStack @@ -311,14 +289,11 @@ GP.Float ldy #3 * On stack (long) *\-------------------------------------- GP.lrintf jsr GP.SetFAC - inc pStack keep 4 bytes on stack - ldx #FPU.QINT jsr GP.ROMCALL ldy #3 - .1 lda FAC+1,y sta (pStack),y dey @@ -327,7 +302,6 @@ GP.lrintf jsr GP.SetFAC rts *-------------------------------------- GP.RomCall.JmpX jmp (.1,x) - .1 .DA GP.ADD32 .DA GP.SUB32 .DA GP.UMUL32 @@ -338,7 +312,6 @@ GP.RomCall.JmpX jmp (.1,x) .DA GP.IMOD32 .DA GP.UCMP32 .DA GP.ICMP32 - * http://www.txbobsc.com/scsc/scdocumentor/E7A0.html .DA $E7C1 FADDT @@ -357,7 +330,6 @@ GP.RomCall.JmpX jmp (.1,x) *-------------------------------------- .DA $E9E3 LOAD.ARG.FROM.YA .DA $EAF9 LOAD.FAC.FROM.YA - .DA $EB27 SETFOR (GETFAC) .DA $EBB2 FCOMP (Y,A with FAC) @@ -370,29 +342,23 @@ GP.RomCall.JmpX jmp (.1,x) GP.ADD32 clc .HS B0 BCS GP.SUB32 sec - php - jsr GP.PopACC32 ldy #0 ldx #3 - plp bcs .1 lda #$79 ADC Absolute,Y .HS 2C BIT ABS .1 lda #$F9 SBC Absolute,Y - sta .3 - .2 lda (pStack),y .3 adc ACC32,y SELF MODIFIED sta (pStack),y iny dex bpl .2 - GP.SUB32.RTS rts *-------------------------------------- * Returns: @@ -402,9 +368,7 @@ GP.SUB32.RTS rts *-------------------------------------- GP.UCMP32 GP.ICMP32 jsr GP.SUB32 - jsr GP.PopACC32 A = ACC32+3 (sign) - tay bmi .2 @@ -412,7 +376,6 @@ GP.ICMP32 jsr GP.SUB32 ora ACC32+1 ora ACC32 beq .8 - lda #1 rts @@ -429,7 +392,6 @@ GP.IMUL32 sec plp bcc GP.SUB32.RTS - GP.RETURN.ITMP lda ACC32.Sign eor ARG32.Sign @@ -441,7 +403,6 @@ GP.UDIV32 clc GP.IDIV32 sec clv bra GP.DIVMOD - GP.UMOD32 clc .HS B0 BCS GP.IMOD32 sec @@ -454,7 +415,6 @@ GP.DIVMOD php plp bcc .3 unsigned bvs GP.RETURN.ITMP IMOD - lda ACC32.Sign IDIV eor ARG32.Sign bpl GP.PutARG32 @@ -467,9 +427,7 @@ GP.PutTMP32 lda #TMP32 MOD *-------------------------------------- GP.PutARG32 lda #ARG32 sta .1+1 - ldy #3 - .1 lda $ff,y SELF MODIFIED sta (pStack),y dey @@ -482,10 +440,8 @@ GP.PutNotTMP32 lda #TMP32 *-------------------------------------- GP.PutNotARG32 lda #ARG32 sta .1+1 - ldy #0 ldx #3 - sec .1 lda $ff,y SELF MODIFIED @@ -495,7 +451,6 @@ GP.PutNotARG32 lda #ARG32 iny dex bpl .1 - rts *-------------------------------------- GP.PopACC32 ldy #0 @@ -506,9 +461,7 @@ GP.PopACC32 ldy #0 iny cpy #4 bne .1 - sta ACC32.Sign - rts *-------------------------------------- GP.GetARG32 ldy #0 @@ -525,13 +478,10 @@ GP.GetARG32.RTS rts *-------------------------------------- GP.MULDIVMOD.COMMON php - jsr GP.PopACC32 jsr GP.GetARG32 - plp bcc GP.GetARG32.RTS - jsr MATH.ACC32ABS jmp MATH.ARG32ABS *-------------------------------------- @@ -553,29 +503,22 @@ GO.ProDOS pha php clc .HS 2C bit abs - GO.A2osX php sec - sei - sta GO.EXIT.SaveA+1 stx GO.EXIT.SaveX+1 sty GO.EXIT.SaveY+1 - pla Restore P in A for later - plx Get PC and add 1 for return ply inx bne .1 iny - .1 stx GO.EXIT.JMP+1 sty GO.EXIT.JMP+2 bcs GO.A2osX.BNK if CS, go AUXLC - bit RRAMWRAMBNK1 Go MAINLC (ProDOS), always BNK1 bit RRAMWRAMBNK1 @@ -590,7 +533,6 @@ GO.A2osX.BNK ldx #RRAMWRAMBNK1 Self Modified, initialized to BNK1 for INIT3 bit $C000,x bit $C000,x - sta SETALTZP tsx stx A2osX.SaveSM @@ -615,7 +557,6 @@ GP.IrqH cld bit IRQ.SkipA2osX After A2osX IRQ.H ? bmi GP.IrqH.Exit - sta SETALTZP switch to aux LC tsx stx A2osX.SaveSM @@ -623,15 +564,13 @@ GP.IrqH cld txs GP.IrqH.JSR jsr K.IrqH.DEV SELF MODIFIED - tsx go back to Main stx A2osX.SaveSX ldx A2osX.SaveSM txs sta CLRALTZP - - rts - + rts + GP.IrqH.Exit stz IRQ.SkipA2osX reset flag sec rts diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index ded4bbf7..e909981d 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -10,17 +10,14 @@ Kernel.Init2 sei stx A2osX.SaveSX ldx #Kernel.ZP.S-1 - .1 lda Kernel.ZP,x sta CHARGET,x dex bpl .1 sta CLRALTZP - >LDYAI MSG.Init2 jsr PrintFYA - >LDYAI A2osX.MAIN >STYA ZPPtr1 >LDYAI CORE.Run @@ -37,7 +34,6 @@ Kernel.Init2 sei >STYA A4L Dst Address (AUX) sec Main To Aux jsr AuxMove - >LDYAI A2osX.GP >STYA ZPPtr1 >LDYAI A2osX.SYSCALL @@ -45,7 +41,6 @@ Kernel.Init2 sei >LDYAI A2osX.GP.S^$FFFF jsr Kernel.Move - >LDYAI A2osX.GPX >STYA A1L Src Start Address (MAIN) >LDYAI A2osX.D1 @@ -66,7 +61,6 @@ Kernel.Init2 sei >LDYAI A2osX.D2.S^$FFFF jsr Kernel.Move - bit RRAMWRAMBNK1 bit RRAMWRAMBNK1 @@ -77,7 +71,6 @@ Kernel.Init2 sei >LDYAI A2osX.D1.S^$FFFF jsr Kernel.Move - >LDYAI A2osX.E0 >STYA ZPPtr1 >LDYAI $E000 @@ -85,18 +78,14 @@ Kernel.Init2 sei >LDYAI A2osX.E0.S^$FFFF jsr Kernel.Move - bit RROMBNK1 sta CLRALTZP cli - jsr KConfigLoad - lda A2osX.HZ pha >LDYAI MSG.HZ jsr PrintFYA - >LDYAI MSG.Init2.OK jsr PrintFYA *-------------------------------------- @@ -105,7 +94,6 @@ Kernel.Init2 sei Kernel.Init3 sta SETALTZP bit RRAMWRAMBNK1 bit RRAMWRAMBNK1 - lda #$ff Make sure we are in Kernel Mode during setup sta IRQ.InKernel stz IRQ.InLib @@ -127,7 +115,6 @@ Kernel.Init3 sta SETALTZP jsr Mem.SetOwner lda #1 sta CORE.PSCount - >LDYAI K.STACKTOP >STYA pStack sta pLocal+1 @@ -138,7 +125,6 @@ Kernel.Init3 sta SETALTZP jsr SysScrInit bcs * - >PUSHWZ Aux type >PUSHBI S.FI.T.TXT >PUSHBI O.RDWR @@ -177,15 +163,12 @@ Kernel.Init3C >LDYAI MSG.Init3 sta KBDSTROBE cmp #146 CTRL-R for ROOT mode bne .7 - >PUSHBI 0 >LDYAI MSG.CTRLR >SYSCALL2 printf - >PUSHBI 0 PS Flags >LDYAI CTRLR.SHELL bra .8 - .7 >PUSHWI ETCINIT.CMDLINE >PUSHBI 2 >LDYAI MSG.EtcInit @@ -193,19 +176,14 @@ Kernel.Init3C >LDYAI MSG.Init3 >PUSHBI 0 PS Flags >LDYAI ETCINIT.CMDLINE - .8 >SYSCALL2 ExecL - bcs Kernel.Init3.Err - >PUSHBI 0 >LDYAI MSG.Init3.OK >SYSCALL2 printf - >DEBUGOA jmp CORE.Run - Kernel.Init3.Err >PUSHA >PUSHBI 1 @@ -228,12 +206,10 @@ Kernel.Move >STYA ZPPtr3 sta (ZPPtr2),y iny bne .1 - inc ZPPtr1+1 inc ZPPtr2+1 bne .1 - -.9 rts +.9 rts *-------------------------------------- KConfigLoad >LDYAI MSG.KCREAD jsr PrintFYA @@ -246,7 +222,6 @@ KConfigLoad >LDYAI MSG.KCREAD lda MLIOPEN00+5 sta MLIREAD00+1 sta MLICLOSE00+1 - jsr MLI .DA #MLIREAD .DA MLIREAD00 @@ -258,11 +233,9 @@ KConfigLoad >LDYAI MSG.KCREAD pla plp bcs .9 - >LDYAI MSG.KCREAD.OK jsr PrintFYA rts - .9 >LDYAI MSG.KCREAD.KO jsr PrintFYA rts @@ -282,51 +255,38 @@ MemMgrInit >LDYAI Mem.MHiMem >STYA Mem.LoMem stz Mem.LastSlot Reserve Slot #0 - sta CLRWRITEAUX ldx #K.DEV.MAX*2-1 - .1 stz Dev.Table,x dex bpl .1 - ldx #K.FLT.MAX*2-1 - .11 stz Flt.Table.hPath,x dex bpl .11 ldx #K.NOD.MAX*2-1 - .2 stz Nod.Table.hPath,x dex bpl .2 - ldx #K.PS.MAX*4-1 - .3 stz PS.Table.PID,x dex bpl .3 - ldx #K.OF.MAX*2-1 - .4 stz OF.Table.hPath,x dex bpl .4 ldx #K.EVT.MAX*S.EVT-1 - .5 stz Evt.Table,x dex bpl .5 - ldx #K.USR.MAX*2-1 - .6 stz S.Table.hSession,x dex bpl .6 - rts *-------------------------------------- SysScrInit >LDYAI Mem.XHiMem @@ -338,31 +298,23 @@ SysScrInit >LDYAI Mem.XHiMem >LDYAI FD.TTY >SYSCALL2 MKDev bcs .9 - ldx A2osX.TTYDEVS - .1 phx inc FD.TTY+S.FD.DEV.DEVID inc FD.TTY.NAME+3 - jsr SysScrInit.TTYPtrs - >PUSHWI FD.TTY.NAME >LDYAI FD.TTY >SYSCALL2 MKDev - plx bcs .9 - dex bne .1 - >LDYA FD.TTY+S.FD.DEV.BUFPTR sta SETWRITEAUX >STYA Mem.HiMem >STYA Mem.Free sta CLRWRITEAUX - clc .9 rts *-------------------------------------- @@ -370,7 +322,6 @@ SysScrInit.TTYPtrs lda DevMgr.Free sta FD.TTY+S.FD.DEV.DCBPTR sta .1+1 - clc adc #S.DCB.TTY sta DevMgr.Free @@ -381,13 +332,10 @@ SysScrInit.TTYPtrs adc /S.DCB.TTY sta DevMgr.Free+1 - ldx #S.DCB.TTY-1 - .1 stz $ffff,x SELF MODIFIED dex bpl .1 - lda FD.TTY+S.FD.DEV.BUFPTR sec sbc #TTY.BUF.SIZE @@ -396,22 +344,18 @@ SysScrInit.TTYPtrs lda FD.TTY+S.FD.DEV.BUFPTR+1 sbc /TTY.BUF.SIZE sta FD.TTY+S.FD.DEV.BUFPTR+1 - rts *-------------------------------------- CPU.Init.6502 >PUSHBI 0 >LDYAI MSG.CPU >SYSCALL2 printf - jsr Detect6502 A = CPU type sta A2osX.CPUTYPE - and #$F asl tax ldy MSG.CPUTYPE,x lda MSG.CPUTYPE+1,x - >SYSCALL2 puts lda MACHID @@ -420,17 +364,14 @@ CPU.Init.6502 >PUSHBI 0 bne .10 jmp CPU.Init.Z80 - .10 >PUSHBI 0 >LDYAI MSG.CPU.SPEED >SYSCALL2 printf stz A2osX.RANDOM16 stz A2osX.RANDOM16+1 - php sei - .1 bit VBL bpl .2 @@ -439,31 +380,24 @@ CPU.Init.6502 >PUSHBI 0 ldx #0 Count LO lda #0 Count HI - .3 ldy #3 (2) - .4 nop (2) dey (2) bne .4 (2*) - inc A2osX.RANDOM16 (6) bne .5 (2*) - inc A2osX.RANDOM16+1 (6) bit VBL (4) bpl .3 (2*) bmi .6 - .5 nop (2) nop (2) nop (2) bit VBL (4) bpl .3 (2*) - .6 plp stz A2osX.CPUSPEED - .7 sec lda A2osX.RANDOM16 sbc #100 @@ -471,7 +405,6 @@ CPU.Init.6502 >PUSHBI 0 lda A2osX.RANDOM16+1 sbc /100 bcc .8 - stx A2osX.RANDOM16 sta A2osX.RANDOM16+1 inc A2osX.CPUSPEED @@ -490,21 +423,17 @@ CPU.Init.6502 >PUSHBI 0 CPU.Init.Z80 >PUSHBI 0 >LDYAI MSG.Z80 >SYSCALL2 printf - jsr DetectZ80 bcs .9 sta A2osX.Z80SLOT >PUSHA - tax lda #A2osX.S.Z80 sta A2osX.S,x - >PUSHBI 1 >LDYAI MSG.Z80.OK >SYSCALL2 printf rts - .9 >LDYAI MSG.Z80.KO >SYSCALL2 puts rts @@ -540,9 +469,7 @@ Detect6502 ldy #0 Test 6502 BCD bug asl $EA cs if Rockwell stx $EA restore zp $EA bcs .9 - dey y=1 -> 65C02 - .9 tya ora #$60 rts @@ -555,11 +482,9 @@ DetectZ80 ldx #Z80Code.Size sta Z80CODE-1,x 00000H for Z80 dex bne .1 - stz ZPPtr1 lda #$C1 sta ZPPtr1+1 - .2 sta (ZPPtr1) lda $100D bmi .8 @@ -571,7 +496,6 @@ DetectZ80 ldx #Z80Code.Size adc #$20 sta $100A bra .2 - .8 lda ZPPtr1+1 and #$0F clc @@ -579,19 +503,14 @@ DetectZ80 ldx #Z80Code.Size *-------------------------------------- DevMgrInit >LDYAI MSG.DEV >SYSCALL2 puts - lda DEVCNT sta .1+1 - .1 ldx #$ff SELF MODIFIED lda DEVLST,x - and #$F0 - asl php Save Drive 1/2 in C ror DSSS0000 - lsr lsr lsr @@ -602,23 +521,18 @@ DevMgrInit >LDYAI MSG.DEV sta FD.BDEV+S.FD.DEV.BUSID ora #$30 sta FD.BDEV.NAME+1 SnDy - lda DEVPTRS,x sta FD.BDEV+S.FD.DEV.BUSPTR - lda DEVPTRS+1,x sta FD.BDEV+S.FD.DEV.BUSPTR+1 - sta ZPPtr1+1 stz ZPPtr1 Cn00 - plp lda #0 adc #1 Make DevID 1 or 2 sta FD.BDEV+S.FD.DEV.DEVID ora #$30 sta FD.BDEV.NAME+3 SxDn - lda ZPPtr1+1 cmp #$FF /RAM is always $FF00 @@ -626,22 +540,16 @@ DevMgrInit >LDYAI MSG.DEV jsr DevMgrInit.RAM bra .8 keep slot free - .2 cmp #$D0 Disk II Driver is $D000 bne .3 - jsr DevMgrInit.DII lda #A2osX.S.DII bra .7 Go mark slot as USED - .3 bcs .53 > $D0, Some BLK remapped DRV - cmp #$C0 bcs .4 $C0 .. $CF, in slot ROM - jsr DevMgrInit.USR Outside ROM/LC space, User loaded BLK dev bra .8 keep slot free - .4 ldx #SmartPort.SIG-SmartPort.OFS-1 .5 ldy SmartPort.OFS,x Check if there is a smartport firmware @@ -650,13 +558,10 @@ DevMgrInit >LDYAI MSG.DEV bne .8 not a Disk Controller... dex bpl .5 - ldy #7 lda (ZPPtr1),y beq .51 $Cn07=00 : SmartPort - ldx #AWSmartPort.SIG-AWSmartPort.OFS-1 - .50 ldy AWSmartPort.OFS,x Check if there is AWsmartport firmware lda (ZPPtr1),y cmp AWSmartPort.SIG,x @@ -668,13 +573,10 @@ DevMgrInit >LDYAI MSG.DEV and #$f get $0n cmp FD.BDEV+S.FD.DEV.BUSID same as SSS ? beq .52 - inc FD.BDEV+S.FD.DEV.DEVID Remapped SP devices.... inc FD.BDEV+S.FD.DEV.DEVID Add 2 to DEVID (2 & 3) - jsr DevMgrInit.SP bra .8 Phantom slot... - .52 jsr DevMgrInit.SP lda #A2osX.S.SP bra .7 @@ -684,14 +586,11 @@ DevMgrInit >LDYAI MSG.DEV .6 jsr DevMgrInit.BLK lda #A2osX.S.BLK - .7 ldx FD.BDEV+S.FD.DEV.BUSID sta A2osX.S,x - .8 dec .1+1 bmi .80 jmp .1 - .80 clc rts *-------------------------------------- @@ -710,7 +609,6 @@ DevMgrInit.USR ldx #4 DevMgrInit.BLK ldy #$ff lda (ZPPtr1),y sta FD.BDEV+S.FD.DEV.BUSPTR - ldx #6 >LDYAI DRV.BlkDevice bra DevMgrInit.AddBDev @@ -720,24 +618,21 @@ DevMgrInit.SP ldy #$ff clc adc #3 Compute smartport entry point sta FD.BDEV+S.FD.DEV.BUSPTR - ldx #8 >LDYAI DRV.SmartPort *-------------------------------------- DevMgrInit.AddBDev >STYA FD.BDEV+S.FD.DEV.DRVPTR - >PUSHW MSG.BLKDEV.TBL,x >PUSHWI FD.BDEV.NAME >PUSHBI 4 >LDYAI MSG.BLKDEV >SYSCALL2 printf - >PUSHWI FD.BDEV.NAME >LDYAI FD.BDEV >SYSCALL2 MKDev -DevMgrInit.AddBDev.RTS +DevMgrInit.AddBDev.RTS rts *-------------------------------------- * Setup AuxLC $FFFE->Kernel IRQ Handler @@ -745,7 +640,6 @@ DevMgrInit.AddBDev.RTS *-------------------------------------- IrqMgrInit >LDYAI MSG.IRQ >SYSCALL2 puts - php sei >LDYA $FFFE @@ -758,64 +652,50 @@ IrqMgrInit >LDYAI MSG.IRQ >MLICALL MLIALLOCIRQ bcs .90 - lda K.MLI.PARAMS+1 sta IRQ.INTNUM plp - jsr IrqMgrInit.TClock bcs .1 - lda #"C" sta IRQ.Mode - >LDYAI K.IrqH.TCLOCK >STYA K.IrqHAuxLC.JSR+1 >STYA GP.IrqH.JSR+1 - >LDYAI MSG.IRQ.CLOCK >SYSCALL2 puts - clc rts .1 jsr IrqMgrInit.Mouse bcs .8 - lda #"V" sta IRQ.Mode - >LDYAI K.IrqH.VBL >STYA K.IrqHAuxLC.JSR+1 >STYA GP.IrqH.JSR+1 - >LDYAI MSG.IRQ.VBL >SYSCALL2 puts - clc rts - .8 jsr IrqMgrInit.HZ2Tick lda #"P" sta IRQ.Mode - >LDYAI MSG.IRQ.POLL >SYSCALL2 puts - clc rts .90 plp .9 sec - rts + rts *-------------------------------------- IrqMgrInit.TClock stz ZPPtr1 Try finding a TClock Card... lda #$C1 sta ZPPtr1+1 - .1 ldy #TClock.SIG.Cnt-1 .2 lda (ZPPtr1),y @@ -824,12 +704,10 @@ IrqMgrInit.TClock dey bpl .2 bra .4 - .3 inc ZPPtr1+1 no match, try next slot.... lda ZPPtr1+1 cmp #$C8 bne .1 - sec rts @@ -842,16 +720,12 @@ IrqMgrInit.TClock asl tay get $n0 sty IRQ.VBL.n0 - lda #A2osX.S.CLK sta A2osX.S,x - php sei - lda #$40+$20 Enable interrupt + 64Hz sta $c080,y - lda #$40 sta CLRPAGE2 sta $478,x @@ -860,15 +734,11 @@ IrqMgrInit.TClock lda #64 sta CORE.TickPerSec sta CORE.TickSec - lda #11 sta CORE.TickPer10t sta CORE.Tick10t - dec CORE.IRQMode - plp - clc rts *-------------------------------------- @@ -876,7 +746,6 @@ IrqMgrInit.Mouse stz ZPPtr1 Try finding a Mouse Card... lda #$C1 sta ZPPtr1+1 - .1 ldx #Mouse.SIG-Mouse.OFS-1 .2 ldy Mouse.OFS,x @@ -886,7 +755,6 @@ IrqMgrInit.Mouse dex bpl .2 bra .4 - .3 inc ZPPtr1+1 no match, try next slot.... lda ZPPtr1+1 cmp #$C8 @@ -894,13 +762,11 @@ IrqMgrInit.Mouse sec rts - .4 lda ZPPtr1+1 sta .11+2 sta K.IrqH.VBL.MSM+2 sta K.IrqH.VBL.MRM+2 - and #$0f sta IRQ.VBL.0n asl @@ -912,19 +778,15 @@ IrqMgrInit.Mouse php sei - bit RROMBNK2 Renable ROM to allow MOUSE II firmware works properly - ldy #INITMOUSE jsr .10 - ldy #SETMOUSE lda #MOUSEMODx.INTVBL+MOUSEMODx.ACTIVE jsr .10 bit RRAMWRAMBNK1 Back To LC Ram bit RRAMWRAMBNK1 - ldy #SERVEMOUSE lda (ZPPtr1),y sta K.IrqH.VBL.MSM+1 @@ -934,13 +796,10 @@ IrqMgrInit.Mouse sta K.IrqH.VBL.MRM+1 jsr IrqMgrInit.HZ2Tick - dec CORE.IRQMode - plp - clc + clc rts - .9 plp sec rts @@ -949,7 +808,6 @@ IrqMgrInit.Mouse lda (ZPPtr1),y sta .11+1 pla - ldx .11+2 Cn ldy IRQ.VBL.n0 @@ -963,7 +821,6 @@ IrqMgrInit.HZ2Tick cmp #5 beq .1 ldx #60 - .1 stx CORE.TickPerSec stx CORE.TickSec @@ -971,9 +828,7 @@ IrqMgrInit.HZ2Tick *-------------------------------------- EvtMgrInit >LDYAI MSG.EVT >SYSCALL2 puts - stz CORE.EvtCount - lda #$A5 sta A2osX.TIMER16 lda #$9B @@ -990,9 +845,7 @@ TskMgrInit >LDYAI MSG.TSK >LDYAI K.ENV.SIZE get a buffer for ENV jsr K.GetMem bcs EvtMgrInit.RTS - >STYA ZPPtr1 - ldy #S.PS.ENVPAGECNT lda /K.ENV.SIZE sta (pPs),y @@ -1001,18 +854,15 @@ TskMgrInit >LDYAI MSG.TSK * ldy #S.PS.hENV iny sta (pPs),y - lda #0 sta (ZPPtr1) make sure blank!! >LDYAI $2E0 Get ROOT from QC >SYSCALL2 strdup bcs .9 - txa ldy #S.PS.hCWD sta (pPs),y - >PUSHWI $2C0 Get BOOT from QC >LDYAI I.ENV.BOOT >SYSCALL2 SetEnv @@ -1050,28 +900,22 @@ PwdMgrInit >LDYAI MSG.PWD jsr K.Getmem >STYA pSession stx S.Table.hSession - phy ldy #S.PS.ZP.SESSION+1 sta (pPS),y dey pla sta (pPS),y - lda #1 ldy #S.PS.hSID sta (pPS),y - ldy #PwdMgr.ROOT.Size-1 - .2 lda PwdMgr.ROOT,y sta (pSession),y dey bpl .2 - ldy #S.PS.hStdIn lda (pPS),y - sta S.Table.hFile rts *-------------------------------------- @@ -1091,19 +935,16 @@ Kernel.ZP .PH $B1 CHARGET inc TXTPTR bne CHARGOT inc TXTPTR+1 - CHARGOT lda $ffff beq ZP.IsDigit.9 - ZP.IsDigit cmp #'0' bcc ZP.IsDigit.9 cmp #'9'+1 rts - ZP.IsDigit.9 sec - rts + rts .EP -Kernel.ZP.S .EQ *-Kernel.ZP +Kernel.ZP.S .EQ *-Kernel.ZP *-------------------------------------- Z80Code.Start .HS 31FF00 START: LD SP,000FFH Init Stack .HS 3EFF LD A,0FFH Set Flag @@ -1112,7 +953,7 @@ Z80Code.Start .HS 31FF00 START: LD SP,000FFH Init Stack .HS 18F3 JR START Loop .HS 00 FLAG: .DB 0 Z80Code.Size .EQ *-Z80Code.Start -*-------------------------------------- +*-------------------------------------- Mouse.OFS .HS 05070B0CFB Mouse.SIG .HS 38180120D6 *-------------------------------------- diff --git a/SYS/KERNEL.S.IO.txt b/SYS/KERNEL.S.IO.txt index 7159ded9..f3680470 100644 --- a/SYS/KERNEL.S.IO.txt +++ b/SYS/KERNEL.S.IO.txt @@ -11,9 +11,7 @@ IO.CLOSE.DIR ldy #S.FD.REG.REF .1 ldy #S.FD.REG.IOBUF lda (pFD),y beq .2 - jsr K.FreeMem - .2 lda IO.hFD jmp K.FreeMem *-------------------------------------- @@ -36,7 +34,6 @@ IO.WRITE.REG ldx #MLIWRITE *-------------------------------------- IO.OPEN.CDEV IO.OPEN.BDEV jsr K.IOCTL.GetPDrv - ldx #IOCTL.OPEN lda IO.hDev jsr K.IOCTL.pDrvJmp @@ -44,7 +41,7 @@ IO.OPEN.BDEV jsr K.IOCTL.GetPDrv lda IO.hDev * clc -.9 rts +.9 rts *-------------------------------------- IO.CLOSE.CDEV IO.CLOSE.BDEV @@ -59,9 +56,7 @@ IO.WRITE.CDEV ldx #IOCTL.WRITE >PULLW K.S.IOCTL+S.IOCTL.BUFPTR >PULLW K.S.IOCTL+S.IOCTL.BYTECNT jsr K.IOCTL.GetPDRV - >LDYAI K.S.IOCTL - jsr K.IOCTL.pDrvJmp bcs .9 >LDYA K.S.IOCTL+S.IOCTL.BYTECNT @@ -94,9 +89,7 @@ IO.WRITE.SSOCK ldy #S.FD.SSOCK.WRITE lda (pFD),y jsr K.GetMemPtr >STYA .1+1 - - lda IO.hFD - + lda IO.hFD .1 jmp $FFFF SELF MODIFIED */-------------------------------------- * # IOCTL @@ -116,16 +109,12 @@ K.IOCTL tax ldy Dev.Table-1,x >STYA pFD - jsr K.IOCTL.GetPDrv - >PULLA tax request - >PULLYA param K.IOCTL.pDrvJmp jmp (pDrv) - K.IOCTL.9 sec lda #MLI.E.NODEV >RET 3 @@ -137,12 +126,10 @@ K.IOCTL.GetPDrv ldy #S.FD.DEV.DRVPTR lda (pFD),y sta pDRV+1 rts -*-------------------------------------- +*-------------------------------------- IO.EOF.REG >MLICALL MLIGETMARK bcs .9 - ldy #2 - .1 lda K.MLI.PARAMS+2,y sta ACC32,y dey @@ -152,13 +139,11 @@ IO.EOF.REG >MLICALL MLIGETMARK bcs .9 ldy #2 - .2 lda K.MLI.PARAMS+2,y eor ACC32,y bne .8 FALSE dey bpl .2 - lda #$ff TRUE * clc rts @@ -175,30 +160,24 @@ IO.EOF.CDEV lda #S.IOCTL.STATCODE.EOF * X = 2 > PIPE *-------------------------------------- IO.MkFD stx .8+1 - ldy IO.MkFD.Y,x lda #0 ldx #S.MEM.F.INIT0+S.MEM.F.FD jsr MEM.GetMem.YAX bcs .9 - >STYA pFD stx IO.hFD - .8 ldx #$ff SELF MODIFIED lda IO.MkFD.T,x sta (pFD) X = hFD, A = T - -* clc +* clc .9 rts IO.MkFD.Y .DA #S.FD.REG,#S.FD.DIR,#S.FD.PIPE IO.MkFD.T .DA #S.FD.T.REG,#S.FD.T.DIR,#S.FD.T.PIPE *-------------------------------------- IO.MLI.CREATE sta K.MLI.PARAMS+7 Storage Type - ldx #3 - .1 lda DATELO,x sta K.MLI.PARAMS+8,x Create Date/Time dex @@ -206,7 +185,6 @@ IO.MLI.CREATE sta K.MLI.PARAMS+7 Storage Type lda #S.FI.A.FULL sta K.MLI.PARAMS+3 Access - >MLICALL MLICREATE rts *-------------------------------------- @@ -222,14 +200,13 @@ IO.MLI.OPEN >LDYAI 1024 get a ProDOS IOBUF >MLICALL MLIOPEN bcs .9 - lda K.MLI.PARAMS+5 get ref_num ldy #S.FD.REG.REF sta (pFD),y sta K.MLI.PARAMS+1 Next MLI Calls are REF_NUM based -* clc +* clc .9 rts *-------------------------------------- IO.CLOSE.NOD ldx #2 @@ -238,19 +215,16 @@ IO.CLOSE.NOD ldx #2 .1 cmp Nod.Table.hFD-2,x bne .2 - stz Nod.Table.hFD-2,x - lda Nod.Table.hPath-2,x stz Nod.Table.hPath-2,x jmp K.FreeMem - .2 inx cpx #K.Nod.MAX+2 bne .1 lda #E.INVH -* sec +* sec rts *-------------------------------------- IO.DEV.FIFO .AS "/DEV/FIFO" diff --git a/SYS/KERNEL.S.IRQ.txt b/SYS/KERNEL.S.IRQ.txt index 58e61ede..49716819 100644 --- a/SYS/KERNEL.S.IRQ.txt +++ b/SYS/KERNEL.S.IRQ.txt @@ -25,35 +25,32 @@ K.IrqHAuxLC cld stx K.IrqHAuxLC.5+1 sty K.IrqHAuxLC.4+1 - lda RDPAGE2 pha sta CLRPAGE2 - lda RDREADAUX pha sta CLRREADAUX Make sure we can access FD.Table - lda RDWRITEAUX pha sta CLRWRITEAUX Driver may R/W in screen holes - lda MSLOT Save MSLOT pha - lda RDCXROM pha sta CLRCXROM Enable access to slot C800 space - + K.IrqHAuxLC.JSR jsr K.IrqH.DEV SELF MODIFIED - + ldx #CLRCXROM pla Get CXROM State bpl .3 + inx -.3 sta $C000,x +.3 sta $C000,x + pla Get back MSLOT sta MSLOT sta K.IrqHAuxLC.2+2 @@ -62,95 +59,94 @@ K.IrqHAuxLC.JSR jsr K.IrqH.DEV SELF MODIFIED eor #$C0 ....mmm...not looking like Cn.... bne K.IrqHAuxLC.3 - sta $CFFF Release $C800 - -K.IrqHAuxLC.2 lda $ff00 SELF MODIFIED + sta $CFFF Release $C800 +K.IrqHAuxLC.2 lda $ff00 SELF MODIFIED + K.IrqHAuxLC.3 pla Must keep Carry bpl .1 - + sta SETWRITEAUX - + clv coming for AUX.....cancel switch + .1 pla bpl .2 - + sta SETREADAUX - + clv coming for AUX.....cancel switch + .2 pla bpl .3 sta SETPAGE2 - -.3 bvc K.IrqHAuxLC.4 if V, skip task switching - tsx +.3 bvc K.IrqHAuxLC.4 if not V, skip task switching + + tsx Check Stack if before "dec IRQ.InKernel" + cpx #$fc $1ff-PChi-PClo-P = $1fc + bcs .8 in CORE.Run or CORE.Dispatch + lda $103,x - and #$C0 - eor #$C0 - beq K.IrqHAuxLC.4 we are in kernel CORE.Run + cmp /A2osX.SYSCALL + bcs .8 we are in kernel GP or LC -* tsx -* txa -* eor #$FC Only LO,HI & P on stack -* beq K.IrqHAuxLC.4 we are in kernel CORE.Run -* >DEBUG - - php + php php make room for 2 additional bytes tsx - + lda $104,x get RTI PC LO bne .4 + dec $105,x adjust RTI PC HI .4 dec $104,x back one byte, to make it a "RTS" return adddress lda $103,x get IRQ pushed P - sta $101,x down 2 bytes - + sta $101,x down 2 bytes lda #A2osX.SLEEP make a RTI like "jsr A2osX.SLEEP" sta $102,x lda /A2osX.SLEEP with RTS=PC IRQ-1 sta $103,x -.5 lda #$80+'S' +.5 lda #$60+'S' eor SYS.BASL0+39 sta SYS.BASL0+39 - + +.8 clc + K.IrqHAuxLC.4 ldy #$ff Self Modified K.IrqHAuxLC.5 ldx #$ff Self Modified K.IrqHAuxLC.6 lda #$ff Self Modified bcc K.IrqHAuxLC.8 - + dec IRQ.SkipA2osX Make regular ProDOS IRQ manager skip A2osX K.IrqHAuxLC.JMP jmp $FFFF SELF MODIFIED Not handled, pass to ProDOS -K.IrqHAuxLC.8 rti + +K.IrqHAuxLC.8 rti *-------------------------------------- * Called by : * - Kernel K.IrqHAuxLC * - ProDOS IRQ Manager (GP) *-------------------------------------- K.IrqH.TCLOCK ldy IRQ.VBL.n0 - + lda $c080,y and #$20 beq K.IrqH.DEV - + lda $c088,y lda $c080,y - + bra K.IrqH.Switch *-------------------------------------- K.IrqH.VBL K.IrqH.VBL.MSM jsr $FFFF SELF MODIFIED,SERVEMOUSE bcs K.IrqH.DEV Not From Mouse - ldx IRQ.VBL.0n lda MOUSESTSx,x and #MOUSESTSx.INTVBL IRQ was caused by VBL ? beq K.IrqH.DEV - ldx K.IrqH.VBL.MRM+2 $Cn ldy IRQ.VBL.n0 K.IrqH.VBL.MRM jsr $FFFF SELF MODIFIED,READMOUSE @@ -159,27 +155,26 @@ K.IrqH.Switch inc IRQ.Tick dec CORE.CPUStatCnt bne .2 - + lda #100 sta CORE.CPUStatCnt - ldx #K.PS.MAX-1 - + .1 lda PS.Table.Hits,x stz PS.Table.Hits,x sta PS.Table.Stats,x dex bpl .1 -.2 lda IRQ.InKernel keep V flag set +.2 lda IRQ.InKernel bpl .3 inc PS.Table.Hits - + .9 clv clc rts - + .3 ldx CORE.PSIndex inc PS.Table.Hits,x @@ -188,9 +183,8 @@ K.IrqH.Switch inc IRQ.Tick ldy #S.PS.S lda (pPs),y - eor #PS.DOEVENT Dont switch while DOEVENT + eor #S.PS.S.RUN bne .9 - lda IRQ.InLib bmi .9 we are in LIB, no switching @@ -198,28 +192,20 @@ K.IrqH.Switch inc IRQ.Tick rts *-------------------------------------- K.IrqH.DEV ldx #0 - .1 lda IRQ.Vectors+1,x beq .9 - sta .10+2 lda IRQ.Vectors,x sta .10+1 - phx .10 jsr $ffff SELF MODIFIED - plx bcc .8 CC, IRQ cleared by device - .2 inx inx - .3 cpx #K.IRQDEV.MAX*2 bne .1 - .9 sec - .8 clv clear V (no task switching) rts *-------------------------------------- diff --git a/SYS/KERNEL.S.JMP.txt b/SYS/KERNEL.S.JMP.txt index 7e64a829..928d97a6 100644 --- a/SYS/KERNEL.S.JMP.txt +++ b/SYS/KERNEL.S.JMP.txt @@ -13,7 +13,6 @@ K.SYSCALL .DA 0 $00 .DA K.MKNod .DA K.MKFIFO .DA K.Pipe - .DA K.OpenDir $10 .DA K.ReadDir .DA K.FClose @@ -31,7 +30,6 @@ K.SYSCALL .DA 0 $00 .DA K.PutS .DA K.FGetS .DA 0 - .DA K.FOpen $30 .DA K.FClose .DA K.FRead @@ -49,7 +47,6 @@ K.SYSCALL .DA 0 $00 .DA K.GetDevByName .DA K.GetDevStatus .DA K.MKDev - .DA 0 $50 .DA K.SScanF .DA 0 @@ -58,7 +55,6 @@ K.SYSCALL .DA 0 $00 .DA K.SPrintF .DA K.FPrintF .DA 0 - .DA 0 $60 .DA K.ChTyp .DA 0 @@ -114,7 +110,6 @@ K.SYSCALL .DA 0 $00 .DA K.SetEnv .DA K.GetEnv .DA K.UnsetEnv - .DA 0 $C0 .DA 0 .DA 0 @@ -166,7 +161,7 @@ K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00 .DA #$80 .DA #RRAMWRAMBNK1 .DA #$80 - .DA #RRAMWRAMBNK1 + .DA #RRAMWRAMBNK1 .DA #$80 .DA #RRAMWRAMBNK1 .DA #$80 @@ -244,7 +239,6 @@ K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00 .DA #$80 .DA #RRAMWRAMBNK1 .DA #$80 - .DA #RRAMWRAMBNK1 $50 .DA #$80 .DA #RRAMWRAMBNK1 @@ -312,7 +306,6 @@ K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00 .DA #$80 .DA #RRAMWRAMBNK2 .DA #$80 - .DA #RRAMWRAMBNK2 $90 .DA #$80 .DA #RRAMWRAMBNK2 @@ -329,7 +322,6 @@ K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00 .DA #$80 .DA #RRAMWRAMBNK2 .DA #$80 - .DA #RRAMWRAMBNK2 $A0 .DA #$80 .DA #RRAMWRAMBNK2 @@ -443,43 +435,33 @@ K.SYSCALL2.AUX sta SETREADAUX MAIN to AUX Mem API sta CLRREADAUX sta CLRWRITEAUX rts - K.SYSCALL2.MAIN sta CLRREADAUX Coming from KERNEL in AUX... sta CLRWRITEAUX jsr .1 sta SETREADAUX sta SETWRITEAUX rts - .1 bit K.SYSCALL.BANK,x Get Target LC BNK - K.SYSCALL2.BANK bpl K.SYSCALL.JMP 0, E000, no BNK change - sta .7+1 lda $D000 #RRAMWRAMBNK1 or #RRAMWRAMBNK2 cmp K.SYSCALL.BANK,x beq .7 - pha remember source BNK stx .6+1 - lda K.SYSCALL.BANK,x tax get Target BNK in x bit $C000,x switch to Target BNK bit $C000,x jsr .6 - stx .5+1 Save X - plx get back Source BNK - bit $C000,x switch to Target BNK bit $C000,x .5 ldx #$ff SELF MODIFIED rts - .6 ldx #$ff SELF MODIFIED .7 lda #$ff SELF MODIFIED diff --git a/SYS/KERNEL.S.MATH.txt b/SYS/KERNEL.S.MATH.txt index 783e1854..043e06e4 100644 --- a/SYS/KERNEL.S.MATH.txt +++ b/SYS/KERNEL.S.MATH.txt @@ -7,20 +7,15 @@ NEW * ARG32*ACC32->TMP32 *-------------------------------------- MATH.MUL32 jsr MATH.TMP32ZERO - ldx #32 - .1 lsr ARG32+3 ror ARG32+2 ror ARG32+1 ror ARG32 - bcc .3 - clc ldy #0 - .2 lda TMP32,y adc ACC32,y sta TMP32,y @@ -29,12 +24,9 @@ MATH.MUL32 jsr MATH.TMP32ZERO tya eor #4 bne .2 - .3 jsr MATH.ACC32.T2 - dex bne .1 - clc rts *-------------------------------------- @@ -42,21 +34,16 @@ MATH.MUL32 jsr MATH.TMP32ZERO * TMP32 = ARG32 mod ACC32 *-------------------------------------- MATH.DIVMOD32 jsr MATH.TMP32ZERO - ldx #32 - .1 asl ARG32 rol ARG32+1 rol ARG32+2 rol ARG32+3 - rol TMP32 rol TMP32+1 rol TMP32+2 rol TMP32+3 - sec - lda TMP32 sbc ACC32 pha @@ -69,16 +56,13 @@ MATH.DIVMOD32 jsr MATH.TMP32ZERO lda TMP32+3 sbc ACC32+3 bcs .2 - pla pla pla - dex bne .1 rts - .2 sta TMP32+3 pla sta TMP32+2 @@ -86,7 +70,6 @@ MATH.DIVMOD32 jsr MATH.TMP32ZERO sta TMP32+1 pla sta TMP32 - inc ARG32 bit0 always 0 because of .1 asl dex @@ -112,14 +95,12 @@ MATH.ACC322STR10 bcc .1 clc - lda ACC32+3 bpl .1 jsr MATH.ACC32NEG sec - .1 ror ACC32.Sign Save sign ldx #4 @@ -127,29 +108,23 @@ MATH.ACC322STR10 .2 stz RESULT,x Clear all 5 bytes dex bpl .2 - sed switch to BCD mode ldx #32 let's roll 32 bits - .3 jsr MATH.ACC32.T2 ldy #4 - .4 lda RESULT,y adc RESULT,y sta RESULT,y dey bpl .4 - dex bne .3 - cld ldx .5+1 no padding beq .6 - lda #10 starts at 10-padlen sec .5 sbc #$ff SELF MODIFIED @@ -160,7 +135,6 @@ MATH.ACC322STR10 tay lda RESULT,y bcs .7 - lsr lsr lsr @@ -171,15 +145,13 @@ MATH.ACC322STR10 cmp #'0' beq .80 - ldy #'0' next 0s always printed sty .81+1 - bra .82 .80 cpx #9 last char, print always beq .82 - + .81 lda #$ff SELF MODIFIED Get Padding char beq .87 @@ -191,55 +163,40 @@ MATH.ACC322STR10 jsr .88 stz ACC32.Sign pla - .86 jsr .88 - .87 inx cpx #10 bne .6 - lda #0 - .88 ldy A2osX.NumStrLen inc A2osX.NumStrLen sta A2osX.NumStrBuf,y - rts *-------------------------------------- * Convert Hex int at ZPPtr2 to ACC32 *-------------------------------------- MATH.Hex2ACC32 lda (ZPPtr2) beq .9 - jsr SHARED.IsHexDigit bcs .9 - jsr MATH.A2ACC32 - ldy #0 - .1 iny lda (ZPPtr2),y beq .8 jsr SHARED.IsHexDigit bcs .8 - pha - ldx #4 - .2 jsr MATH.ACC32.T2 dex bne .2 - pla ora ACC32 sta ACC32 bra .1 - .8 clc - rts - + rts .9 sec rts *-------------------------------------- @@ -255,26 +212,21 @@ MATH.AToHexAX pha lsr lsr lsr - .8 ora #$30 cmp #'9'+1 bcc .9 adc #6 - -.9 rts +.9 rts *-------------------------------------- * Convert Decimal int at ZPPtr2 to ACC32 *-------------------------------------- MATH.Dec2ACC32 jsr MATH.ACC32ZERO - clc lda (ZPPtr2) eor #'-' bne .10 - jsr SHARED.NextCharPtr2 skip '-' sec - .10 ror .80+1 set pos/neg flag ldy #$ff @@ -282,19 +234,16 @@ MATH.Dec2ACC32 jsr MATH.ACC32ZERO .1 iny lda (ZPPtr2),y beq .8 - jsr ZP.IsDigit bcs .8 phy Save Y, pointing to next char jsr MATH.ACC32.T10 ply - bcs .9 lda (ZPPtr2),y and #$0F - * clc adc ACC32 @@ -306,19 +255,14 @@ MATH.Dec2ACC32 jsr MATH.ACC32ZERO bne .1 inc ACC32+3 bne .1 if 0, overflow!!! - .9 lda #E.INUM sec rts - .8 tya no digit parsed...error beq .9 - .80 lda #$FF SELF MODIFIED bpl .88 - jsr MATH.ACC32NEG - .88 clc rts *-------------------------------------- @@ -330,12 +274,9 @@ MATH.ACC32.T10 ldx #3 bpl .1 jsr MATH.ACC32.T2 ACC32 * 2 -> ACC32 - jsr MATH.ACC32.T2 ACC32 * 4 -> ACC32 - ldx #0 ldy #4 - * clc .2 pla ACC32 * 4 + ACC32 -> ACC32 @@ -344,12 +285,10 @@ MATH.ACC32.T10 ldx #3 inx dey bne .2 - MATH.ACC32.T2 asl ACC32 rol ACC32+1 rol ACC32+2 rol ACC32+3 - rts *-------------------------------------- MATH.A2ACC32 sta ACC32 @@ -375,11 +314,9 @@ MATH.ACC32ABS lda ACC32.Sign *-------------------------------------- MATH.ACC32NEG ldy #ACC32 .HS 2C BIT ABS - MATH.ARG32NEG ldy #ARG32 ldx #3 - sec .1 lda $0,y two's complement of X bytes @@ -389,7 +326,6 @@ MATH.ARG32NEG ldy #ARG32 iny dex bpl .1 - MATH.ACC32NEG.RTS rts *-------------------------------------- diff --git a/SYS/KERNEL.S.MEM.txt b/SYS/KERNEL.S.MEM.txt index e2d82e90..053cb89b 100644 --- a/SYS/KERNEL.S.MEM.txt +++ b/SYS/KERNEL.S.MEM.txt @@ -32,53 +32,42 @@ K.GetMem0 ldx #S.MEM.F.INIT0 * A = EC *\-------------------------------------- K.GetMem ldx #0 - MEM.GetMem.YAX stx MEM.ReqFlags sta ZPMemMgrSize+1 tya bit #K.MEM.ALIGN-1 aligned ? beq .10 yes, request it - and #K.MEM.nALIGNm1 align on boundary clc adc #K.MEM.ALIGN bcc .10 inc ZPMemMgrSize+1 - .10 sta ZPMemMgrSize - >LDYAI Mem.Table >STYA ZPMemMgrSPtr - stz MEM.BestSlot ldx #$ff stx MEM.BestScore stx MEM.BestScore+1 - ldx #0 Current slot=0 bra .4 skip slot 0, Check if some free slot to reuse first - .1 inx move to next slot jsr Mem.NextSlot lda (ZPMemMgrSPtr) Get Flags bmi .4 in use ? - .2 lda MEM.ReqFlags Found an empty slot and #S.MEM.F.ALIGN is request needs a page align ? beq .3 - ldy #S.MEM.PTR lda (ZPMemMgrSPtr),y get LO of PTR bne .4 not page-aligned - .3 ldy #S.MEM.LEN sec lda (ZPMemMgrSPtr),y get LEN of this block sbc ZPMemMgrSize compare with requested size pha - iny lda (ZPMemMgrSPtr),y sbc ZPMemMgrSize+1 @@ -93,51 +82,40 @@ MEM.GetMem.YAX stx MEM.ReqFlags bcs .4 Delta is >= BestScore bne .4 Delta is > 255... - sty MEM.BestScore sta MEM.BestScore+1 stx MEM.BestSlot - .4 cpx Mem.LastSlot any other slot to check? bne .1 last one, create a new slot lda MEM.BestSlot beq .5 - tax jsr MEM.GetMemByID - bra .7 - *-------------- Create a New SLOT .5 lda MEM.ReqFlags and #S.MEM.F.ALIGN is request needs a page align ? beq .6 - lda Mem.Free target PTR will be page aligned ? sec sbc ZPMemMgrSize beq .6 yes, allocate - tay no, reserve a free slot to fill gap lda #0 jsr Mem.AddSlot X = new slot bcs .9 - lda #S.MEM.F.ALIGN Make sure marked FREE sta (ZPMemMgrSPtr) - .6 >LDYA ZPMemMgrSize jsr Mem.AddSlot X = new slot bcs .9 - *-------------- Reuse this SLOT .7 lda MEM.ReqFlags get requested flags ora #S.MEM.F.INUSE mark as in use sta (ZPMemMgrSPtr) - and #S.MEM.F.INIT0 beq .8 @@ -147,40 +125,30 @@ MEM.GetMem.YAX stx MEM.ReqFlags iny lda (ZPMemMgrSPtr),y sta .12+2 - lda ZPMemMgrSize eor #$ff tay y=not lo count - lda ZPMemMgrSize+1 eor #$ff a=not hi count - phx - ldx #0 - .11 iny bne .12 inc beq .13 - .12 stz $ffff,x inx bne .11 - inc .12+2 bra .11 - .13 plx .8 lda #0 ldy #S.MEM.BIN sta (ZPMemMgrSPtr),y - inc Mark this slot used by one process ldy #S.MEM.REFCNT sta (ZPMemMgrSPtr),y - ldy #S.PS.PID lda (pPs),y ldy #S.MEM.OWNERPID @@ -188,8 +156,7 @@ MEM.GetMem.YAX stx MEM.ReqFlags clc jmp MEM.GetMEMPTR * A = HI PTR,Y = LO PTR,X = Current hMem - -.9 rts +.9 rts *-------------------------------------- * Mem.AddSlot * In: @@ -200,23 +167,19 @@ Mem.AddSlot >STYA ZPMemMgrTmp1 save req size ldx Mem.LastSlot inx beq .99 > 255 ERR:OUT OF SLOT - lda Mem.Free Compute base PTR=FREE-REQ size sec sbc ZPMemMgrTmp1 tay save new Mem.Free LO lda Mem.Free+1 sbc ZPMemMgrTmp1+1 - pha save new Mem.Free HI - + pha save new Mem.Free HI cpy Mem.LoMem sbc Mem.LoMem+1 bcc .98 ERR out of mem jsr Mem.NextSlot X,Y unmodified - tya get back Mem.Free LO - ldy #S.MEM.PTR sta Mem.Free set as system Mem.Free value sta (ZPMemMgrSPtr),y store it as base address of new slot @@ -235,9 +198,7 @@ Mem.AddSlot >STYA ZPMemMgrTmp1 save req size stx Mem.LastSlot mark this slot allocated clc rts - .98 pla discard new Mem.Free HI - .99 lda #E.OOM sec rts @@ -248,7 +209,7 @@ MEM.NextSlot lda ZPMemMgrSPtr sta ZPMemMgrSPtr bcc .8 inc ZPMemMgrSPtr+1 -.8 rts +.8 rts */-------------------------------------- * # FreeMem * A = hMem To Free @@ -259,18 +220,14 @@ MEM.NextSlot lda ZPMemMgrSPtr K.FreeMem.MSG .AZ "FreeMem:hMem=$%h,PID=%d\r\n" *-------------------------------------- K.FreeMem.ERR phx - phy hMem n Y ldy #S.PS.PID lda (pPS),y >PUSHA - pla >PUSHA - >PUSHBI 2 >LDYAI K.FreeMem.MSG - .1 ldx #SYS.printf jsr K.SYSCALL2 plx @@ -281,48 +238,38 @@ K.FreeMem.ERR phx *-------------------------------------- K.FreeMem tay beq K.FreeMem.ERR Slot=0, reserved by Kernel - cmp Mem.LastSlot bcc .10 bne K.FreeMem.ERR - .10 jsr MEM.GetMemByID X,Y unmodified lda (ZPMemMgrSPtr) In use ? bpl K.FreeMem.ERR jsr MEM.DecRefCnt only one left ? bne .8 no, must be a code segment loaded several times - lda (ZPMemMgrSPtr) and #S.MEM.F.CODE CS: Any BINPATH to discard ? sta (ZPMemMgrSPtr) Mark as FREE beq .1 - ldy #S.MEM.BIN lda (ZPMemMgrSPtr),y - jsr MEM.GetMemByID X unmodified * lda (ZPMemMgrSPtr) * bpl * ***MUST BE ALLOCATED*** - lda #0 mark BINPATH slot as free sta (ZPMemMgrSPtr) - .1 lda Mem.LastSlot beq .8 - jsr MEM.GetMemByID X unmodified lda (ZPMemMgrSPtr) bmi .8 used, exit .2 dec Mem.LastSlot free! get previous.... beq .80 empty list: go set Mem.Free=Mem.HiMem - lda Mem.LastSlot jsr MEM.GetMemByID X unmodified lda (ZPMemMgrSPtr) bpl .2 free again! loop - ldy #S.MEM.PTR lda (ZPMemMgrSPtr),y set Mem.Free... sta Mem.Free @@ -332,7 +279,6 @@ K.FreeMem tay .8 clc rts - .80 >LDYA Mem.HiMem >STYA Mem.Free clc @@ -417,10 +363,8 @@ Mem.DecRefCnt ldy #S.MEM.REFCNT K.LoadStkObj ldx #SYS.LoadTxtFile To get ending \0 jsr K.SYSCALL2 bcs .99 - sty .81+1 Save File Len sta .82+1 - stx .8+1 Save MAIN hMem iny bne .1 @@ -433,12 +377,9 @@ K.LoadStkObj ldx #SYS.LoadTxtFile To get ending \0 stx .80+1 >STYA A4L Save Destination Address in AUX - lda .8+1 jsr K.GetMemPtr - >STYA A1L Save MAIN base Ptr - pha Add Allocated LEN tya clc @@ -450,21 +391,18 @@ K.LoadStkObj ldx #SYS.LoadTxtFile To get ending \0 sec Main To Aux jsr AuxMove - .8 lda #$ff SELF MODIFIED jsr K.FreeMem release MAIN memory - .80 ldx #$ff Returns AUX hMem .81 ldy #$ff and file len in Y,A .82 lda #$ff * clc rts - .9 pha jsr .8 pla sec -.99 rts +.99 rts */-------------------------------------- * # GetStkObjPtr * ## ASM @@ -488,25 +426,22 @@ MEM.GetKrnlBuf pha pla adc DevMgr.Free+1 bcs .99 we crossed $FFFF, out of mem - cpx #DevMgr.HiMem pha sbc /DevMgr.HiMem pla bcs .99 No More Room... - ldy DevMgr.Free stx DevMgr.Free ldx DevMgr.Free+1 sta DevMgr.Free+1 txa - * clc rts .99 lda #E.OOM * sec - rts + rts *-------------------------------------- MAN SAVE USR/SRC/SYS/KERNEL.S.MEM diff --git a/SYS/KERNEL.S.OSDX.txt b/SYS/KERNEL.S.OSDX.txt index 61f4e6f6..4877da6d 100644 --- a/SYS/KERNEL.S.OSDX.txt +++ b/SYS/KERNEL.S.OSDX.txt @@ -19,7 +19,6 @@ GWORD .EQ ZPDRV+20 *-------------------------------------- X.OSD >STYA ZPCmdPtr >STYA TXTPTR - ldy #S.CB-1 .10 jsr SHARED.TXTPTR.GetY @@ -30,29 +29,22 @@ X.OSD >STYA ZPCmdPtr ldy CB.Cache+S.CB.DstPtr lda CB.Cache+S.CB.DstPtr+1 bne .11 Ptr To Aux - tya hBM in Aux beq .8 no Src BM jsr K.GetMemPtr - .11 >STYA ZPDstBMPtr - ldx #0 - .1 lda (ZPDstBMPtr) sta DstBM.Cache,x inc ZPDstBMPtr bne .2 - inc ZPDstBMPtr+1 .2 inx cpx #S.BM bne .1 - .8 ldx CB.Cache+S.CB.CMD - jmp (J.Cmds,x) *-------------------------------------- J.Cmds .DA SETPIXEL @@ -69,21 +61,17 @@ J.Cmds .DA SETPIXEL SETPIXEL >LDYA CB.Cache+S.CB.Y1 ldx DstBM.Cache+S.BM.RowBytes jsr YAMultX - pha tya - clc adc ZPDstBMPtr sta ZPDstBMPtr pla adc ZPDstBMPtr+1 sta ZPDstBMPtr+1 - lda CB.Cache+S.CB.M bit #S.CB.M.C16 bne SETPIXEL.C16 - SETPIXEL.MONO lda CB.Cache+S.CB.X1 pha and #$7 MOD 7 @@ -98,7 +86,6 @@ SETPIXEL.MONO lda CB.Cache+S.CB.X1 clc adc ZPDstBMPtr sta ZPDstBMPtr - lda CB.Cache+S.CB.X1 adc ZPDstBMPtr+1 sta ZPDstBMPtr+1 @@ -106,10 +93,8 @@ SETPIXEL.MONO lda CB.Cache+S.CB.X1 lda CB.Cache+S.CB.OP * cmp #S.CB.OP.XOR beq .2 - lda CB.Cache+S.CB.COLOR bne .1 - lda (ZPDstBMPtr) and Mono.NMasks,x sta (ZPDstBMPtr) @@ -119,12 +104,11 @@ SETPIXEL.MONO lda CB.Cache+S.CB.X1 ora Mono.Masks,x sta (ZPDstBMPtr) rts - .2 lda (ZPDstBMPtr) eor Mono.Masks,x sta (ZPDstBMPtr) - rts -SETPIXEL.C16 + rts +SETPIXEL.C16 *-------------------------------------- GETPIXEL *-------------------------------------- @@ -149,10 +133,8 @@ FILLRECT *-------------------------------------- BITBLT >LDYA CB.CACHE+S.CB.SrcPtr bne BITBLT.1 - tya jsr K.GetMemPtr - BITBLT.1 >STYA ZPSrcBMPtr @@ -189,18 +171,14 @@ DRAWTEXT sec *-------------------------------------- GETTEXTSIZE clc php - lda CB.Cache+S.CB.hFONT jsr K.GetMemPtr >STYA ZPFontPtr - ldy #S.FON-1 - .1 lda (ZPFontPtr),y sta FON.Cache,y dey bpl .1 - lda ZPFontPtr clc adc #S.FON @@ -208,67 +186,52 @@ GETTEXTSIZE clc lda ZPFontPtr+1 adc /S.FON sta ZPTablePtr+1 - .2 >LDYA CB.Cache+S.CB.TxtPtr >STYA TXTPTR - stz CB.Cache+S.CB.SrcW stz CB.Cache+S.CB.SrcW+1 lda FON.Cache+S.FON.PixH sta CB.Cache+S.CB.SrcH stz CB.Cache+S.CB.SrcH+1 - .3 jsr SHARED.TXTPTR.GetNext beq .4 - jsr FON.GetChar lda (ZPCharPtr) Get Char PixelW sec adc CB.Cache+S.CB.SrcW sta CB.Cache+S.CB.SrcW bcc .3 - inc CB.Cache+S.CB.SrcW+1 bra .3 - .4 plp lda CB.Cache+S.CB.SrcW ldx CB.Cache+S.CB.SrcW+1 ldy CB.Cache+S.CB.SrcH bcc GETRECTBUFSIZE.RTS - 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 - sta DRAWTEXT.END+1 save hBM, ZPDstBMPtr=BMData - >LDYA CB.Cache+S.CB.TxtPtr >STYA TXTPTR stz GWORD reset Col index in BM stz GWORD+1 reset Bit index in Col - DRAWTEXT.LOOP jsr SHARED.TXTPTR.GetNext beq DRAWTEXT.END - jsr FON.GetChar - lda (ZPCharPtr) Char PixW sta GBYTE jsr CHAR.GetNext Char ByteW sta GBYTE2 - >LDYA ZPDstBMPtr >STYA ZPTmpPtr @@ -281,7 +244,6 @@ DRAWTEXT.LOOP jsr SHARED.TXTPTR.GetNext pha and #7 mod 8 sta GWORD+1 Update Bit index in Col - pla lsr lsr @@ -290,14 +252,12 @@ DRAWTEXT.LOOP jsr SHARED.TXTPTR.GetNext adc GWORD Update Col Index in BM sta GWORD bra DRAWTEXT.LOOP - DRAWTEXT.END lda #$FF SELF MODIFIED sta CB.Cache+S.CB.SrcPtr Save hBM in Src CB stz CB.Cache+S.CB.SrcPtr+1 lda #S.CB.CMD.BITBLT sta CB.Cache+S.CB.CMD - jmp CB.Update *-------------------------------------- DRAWTEXT.JMP asl @@ -311,14 +271,12 @@ DRAWTEXT.JMP asl .DA DRAWTEXT.SHIFT26 .DA DRAWTEXT.SHIFT26 .DA DRAWTEXT.SHIFT7 -*-------------------------------------- +*-------------------------------------- DRAWTEXT.SHIFT0 lda FON.Cache+S.FON.PixH - .6 pha save Height counter ldx GBYTE2 init Width counter ldy GWORD get col index in BM - .7 jsr CHAR.GetNext eor (ZPTmpPtr),y @@ -327,13 +285,11 @@ DRAWTEXT.SHIFT0 lda FON.Cache+S.FON.PixH dex bne .7 - lda ZPTmpPtr clc adc DstBM.Cache+S.BM.RowBytes sta ZPTmpPtr bcc .10 - inc ZPTmpPtr+1 .10 pla get back Height counter @@ -341,47 +297,38 @@ DRAWTEXT.SHIFT0 lda FON.Cache+S.FON.PixH bne .6 rts -*-------------------------------------- +*-------------------------------------- DRAWTEXT.SHIFT1 lda FON.Cache+S.FON.PixH - .1 pha save Height counter ldx GBYTE2 init Width counter ldy GWORD get col index in BM - .2 jsr CHAR.GetNext - asl 8th bit in ->carry - eor (ZPTmpPtr),y sta (ZPTmpPtr),y iny bcc .3 - lda #1 eor (ZPTmpPtr),y sta (ZPTmpPtr),y - .3 dex bne .2 - lda ZPTmpPtr Next line... clc adc DstBM.Cache+S.BM.RowBytes sta ZPTmpPtr bcc .4 - inc ZPTmpPtr+1 .4 pla get back Height counter dec bne .1 - rts -*-------------------------------------- +*-------------------------------------- * X = ShiftL x2 (Range 4..10) -*-------------------------------------- +*-------------------------------------- DRAWTEXT.SHIFT26 lda SHIFT8.L-4,x sta .3+1 @@ -394,23 +341,17 @@ DRAWTEXT.SHIFT26 sta .4+2 ldx GWORD+1 ShiftL Index - lda FON.Cache+S.FON.PixH - .1 pha save Height counter lda GWORD sta ColIndex lda GBYTE2 - .2 pha save Width counter - jsr CHAR.GetNext pha - and First.Masks,x x = 2->6, for X=3 : A=000xxxxx tay Range 0..127 - .3 lda $FFFF,y SELF MODIFIED ShiftL3 A=xxxxx000 ldy ColIndex get col index in BM @@ -421,9 +362,7 @@ DRAWTEXT.SHIFT26 pla and Last.Masks,x x = 2->6, for X=3 : A=xxx00000 lsr Range 0..127 !! A=0xxx0000 - tay but SHIFTL(X+1) A=00000xxx - .4 lda $FFFF,y SELF MODIFIED ldy ColIndex get col index in BM @@ -433,13 +372,11 @@ DRAWTEXT.SHIFT26 pla get back Witdh counter dec bne .2 - lda ZPTmpPtr clc adc DstBM.Cache+S.BM.RowBytes sta ZPTmpPtr bcc .5 - inc ZPTmpPtr+1 .5 pla get back Height counter @@ -453,47 +390,36 @@ DRAWTEXT.SHIFT7 lda FON.Cache+S.FON.PixH ldx GBYTE2 init Width counter ldy GWORD get col index in BM - .2 jsr CHAR.GetNext - lsr 1st bit in carry, for COL 1 bcc .3 - pha Other 7 bits for COL 2 - lda #$80 - eor (ZPTmpPtr),y sta (ZPTmpPtr),y - pla get back bit 1->8 already shifted Left 7 (= Shift right 1) - .3 iny - eor (ZPTmpPtr),y sta (ZPTmpPtr),y - dex bne .2 - lda ZPTmpPtr clc adc DstBM.Cache+S.BM.RowBytes sta ZPTmpPtr bcc .4 - inc ZPTmpPtr+1 .4 pla get back Height counter dec - bne .1 + bne .1 rts *-------------------------------------- CHAR.GetNext inc ZPCharPtr bne .8 inc ZPCharPtr+1 .8 lda (ZPCharPtr) - rts + rts *-------------------------------------- FON.GetChar cmp FON.Cache+S.FON.Last bcc .1 @@ -504,21 +430,17 @@ FON.GetChar cmp FON.Cache+S.FON.Last bcs .3 .2 lda FON.Cache+S.FON.Default - .3 asl php clc adc ZPTablePtr sta ZPCharPtr - lda #0 adc ZPTablePtr+1 sta ZPCharPtr+1 - plp bcc .4 inc ZPCharPtr+1 - .4 lda (ZPCharPtr) clc adc ZPFontPtr @@ -540,7 +462,6 @@ BM.Create lda DstBM.Cache+S.BM.W adc #8 bcc .1 inx - .1 sta DstBM.Cache+S.BM.RowBytes txa @@ -550,20 +471,15 @@ BM.Create lda DstBM.Cache+S.BM.W ror DstBM.Cache+S.BM.RowBytes lsr ror DstBM.Cache+S.BM.RowBytes - >LDYA DstBM.Cache+S.BM.H ldx DstBM.Cache+S.BM.RowBytes - jsr YAMultX Compute BM total bytes - pha - eor #$ff sta ZPTmpPtr+1 tya eor #$ff sta ZPTmpPtr - tya clc adc #S.BM @@ -572,27 +488,21 @@ BM.Create lda DstBM.Cache+S.BM.W adc /S.BM jsr K.GetMem bcs .9 - >STYA ZPDstBMPtr - ldy #S.BM-1 - .2 lda DstBM.Cache,y sta (ZPDstBMPtr),y dey bpl .2 - lda ZPDstBMPtr * clc adc #S.BM sta ZPDstBMPtr sta .4+1 - lda ZPDstBMPtr+1 adc /S.BM sta ZPDstBMPtr+1 sta .4+2 - ldy #0 lda CB.Cache+S.CB.OP @@ -600,22 +510,18 @@ BM.Create lda DstBM.Cache+S.BM.W beq .3 lda #$ff - .3 inc ZPTmpPtr bne .4 inc ZPTmpPtr+1 beq .8 - -.4 sta $ffff,y +.4 sta $ffff,y iny bne .3 inc .4+2 bra .3 - .8 txa hBM - clc -.9 rts +.9 rts *-------------------------------------- * IN: * Y,A = num1 (16) @@ -627,12 +533,9 @@ YAMultX stx GBYTE sty GWORD sta GWORD+1 - ldy #0 Result LO tya Result HI - bra .3 - .1 pha tya clc @@ -640,10 +543,8 @@ YAMultX stx GBYTE tay pla adc GWORD+1 - .2 asl GWORD rol GWORD+1 - .3 lsr GBYTE bcs .1 bne .2 @@ -653,13 +554,11 @@ CB.Update >LDYA ZPCmdPtr >STYA ZPSListDataPtr ldx #0 - .1 lda CB.Cache,x jsr SHARED.SetDataByte inx cpx #S.CB bne .1 - clc rts *-------------------------------------- diff --git a/SYS/KERNEL.S.PFT.txt b/SYS/KERNEL.S.PFT.txt index 9819e2e7..4c82c3c4 100644 --- a/SYS/KERNEL.S.PFT.txt +++ b/SYS/KERNEL.S.PFT.txt @@ -23,39 +23,29 @@ K.PFTRemove.RTS rts PFT.CheckPathYA stx .6+1 Save SYSCALL # jsr STDLIB.realpath.I realpath in K.Buf256 bcs K.PFTRemove.RTS - ldx #0 - .1 lda Flt.Table.hPath,x beq .8 jsr K.GetMemPtr >STYA ZPPtr1 - ldy #$ff - .2 iny lda (ZPPtr1),y "/FILTER\0" beq .3 end of filter string.... - cmp K.Buf256,y can be \0 beq .2 bra .8 - .3 lda K.Buf256,y path is "/FILTER/..." ? cmp #'/' bne .8 - lda Flt.Table.hLib,x get hLib jsr K.GetMemPtr >STYA .7+1 - pla discard JSR return @ pla - >LDYAI K.Buf256 pass full path to handler .6 ldx #$ff SELF MODIFIED SYSCALL # .7 jmp $ffff SELF MODIFIED - .8 inx cpx #K.FLT.MAX bne .1 @@ -63,17 +53,13 @@ PFT.CheckPathYA stx .6+1 Save SYSCALL # .80 >LDYAI K.Buf256 *-------------------------------------- PFT.YAToMLIPATH >STYA .1+1 - ldx #0 no filter, prodos path - .1 lda $ffff,x SELF MODIFIED beq .2 - inx sta K.MLI.PATH,x cpx #MLI.MAXPATH bne .1 - .2 stx K.MLI.PATH inx stz K.MLI.PATH,x Make ending 0 for /dev/xxx path @@ -97,25 +83,20 @@ PFT.CheckNodeA stx .80+1 Save SYSCALL # sta IO.hFD ldy OF.Table.hPath-1,x if 0, its a hDEV bne .10 - tax ldy Dev.Table-1,x lda Dev.Table,x bra .11 - .10 jsr K.GetMemPtr .11 >STYA pFD - ldy #S.FD.HANDLER lda (pFD),y beq .8 Handler is 0, back to kernel.... jsr K.GetMemPtr >STYA .1+1 - pla discard JSR return @ pla - ldx .80+1 restore SYSCALL # lda .81+1 restore passed hFILE @@ -123,16 +104,13 @@ PFT.CheckNodeA stx .80+1 Save SYSCALL # .8 lda (pFD) #S.FD.T bne .80 - ldy #S.FD.REG.REF lda (pFD),y sta K.MLI.PARAMS+1 - .80 ldx #$ff SELF MODIFIED .81 lda #$ff SELF MODIFIED clc rts - .9 lda #E.INVH sec rts diff --git a/SYS/KERNEL.S.PIPE.txt b/SYS/KERNEL.S.PIPE.txt index f9bd0ddf..3b622be0 100644 --- a/SYS/KERNEL.S.PIPE.txt +++ b/SYS/KERNEL.S.PIPE.txt @@ -12,15 +12,13 @@ IO.OPEN.PIPE ldy #S.FD.PIPE.S lda (pFD),y inc sta (pFD),y - lda IO.hFD clc - rts + rts *-------------------------------------- IO.CLOSE.PIPE ldy #S.FD.PIPE.S lda (pFD),y bmi .1 remote PS closed its end - lda #$80 sta (pFD),y clc @@ -29,17 +27,14 @@ IO.CLOSE.PIPE ldy #S.FD.PIPE.S .1 jsr IO.CLOSE.NOD ldy #S.FD.PIPE.hMem - lda (pFD),y beq .2 - .DO AUXPIPE=1 ldx #SYS.FreeStkObj jsr K.SYSCALL2 .ELSE jsr K.FreeMem .FIN - .2 lda IO.hFD jmp K.FreeMem *-------------------------------------- @@ -67,9 +62,7 @@ IO.WRITE.PIPE ldy #S.FD.PIPE.S ldy #S.FD.PIPE.Head+1 jsr IO.PIPE.GET.BUF - >STYA IO.PIPE.DSTBUF - >PULLA get cnt lo sta IO.PIPE.CNT eor #$ff @@ -79,7 +72,6 @@ IO.WRITE.PIPE ldy #S.FD.PIPE.S sta IO.PIPE.CNT+1 eor #$ff pha - ldy #S.FD.PIPE.Head lda (pFD),y tay @@ -87,53 +79,41 @@ IO.WRITE.PIPE ldy #S.FD.PIPE.S .DO AUXPIPE=1 sta SETWRITEAUX .FIN - .1 inx bne .2 pla inc beq .8 - pha - .2 lda (IO.PIPE.SRCBUF) sta (IO.PIPE.DSTBUF),y inc IO.PIPE.SRCBUF bne .4 - inc IO.PIPE.SRCBUF+1 - .4 iny bne .1 - lda IO.PIPE.BUFH inc cmp IO.PIPE.SIZEH beq .6 - sta IO.PIPE.BUFH inc IO.PIPE.DSTBUF+1 bra .1 - .6 stz IO.PIPE.BUFH - lda IO.PIPE.BASEH Pipe Buffer Base sta IO.PIPE.DSTBUF+1 bra .1 - .8 .DO AUXPIPE=1 sta CLRWRITEAUX .FIN - tya ldy #S.FD.PIPE.Head sta (pFD),y iny lda IO.PIPE.BUFH sta (pFD),y - ldy #S.FD.PIPE.Free jsr IO.PIPE.SUB.CNT @@ -151,17 +131,14 @@ IO.READ.PIPE.NODATA >RET 4 *-------------------------------------- IO.READ.PIPE ldy #S.FD.PIPE.Used+1 - lda (pFD),y Data ? dey ora (pFD),y bne .10 yes... - ldy #S.FD.PIPE.S lda (pFD),y bmi IO.READ.PIPE.EOF Remote PS closed the Pipe bpl IO.READ.PIPE.NODATA - .10 >PULLW IO.PIPE.DSTBUF get dest buf ldy #S.FD.PIPE.Tail+1 @@ -173,7 +150,6 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1 tax ldy #S.FD.PIPE.Used cmp (pFD),y - >PULLA get cnt hi pha iny #S.FD.PIPE.Used+1 @@ -186,56 +162,43 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1 tax iny lda (pFD),y X,A = Used - .12 stx IO.PIPE.CNT sta IO.PIPE.CNT+1 eor #$ff pha - txa eor #$ff tax - ldy #S.FD.PIPE.Tail lda (pFD),y tay - .DO AUXPIPE=1 sta SETREADAUX .FIN .1 inx bne .2 - pla inc beq .8 - pha - .2 lda (IO.PIPE.SRCBUF),y sta (IO.PIPE.DSTBUF) inc IO.PIPE.DSTBUF bne .4 - inc IO.PIPE.DSTBUF+1 - .4 iny bne .1 - lda IO.PIPE.BUFH inc cmp IO.PIPE.SIZEH beq .6 - sta IO.PIPE.BUFH inc IO.PIPE.SRCBUF+1 bra .1 - .6 stz IO.PIPE.BUFH - lda IO.PIPE.BASEH sta IO.PIPE.SRCBUF+1 Restore Pipe Buf base bra .1 @@ -250,14 +213,13 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1 iny lda IO.PIPE.BUFH sta (pFD),y - ldy #S.FD.PIPE.Free jsr IO.PIPE.ADD.CNT iny #S.FD.PIPE.Used jsr IO.PIPE.SUB.CNT -IO.READ.PIPE.EXIT +IO.READ.PIPE.EXIT >LDYA IO.PIPE.CNT Y,A = bytes written clc rts @@ -278,9 +240,7 @@ IO.PIPE.GET.BUF lda (pFD),y .ELSE jsr K.GetMemPtr get src buf .FIN - sta IO.PIPE.BASEH Pipe Buffer Base - * clc adc IO.PIPE.BUFH rts @@ -289,7 +249,6 @@ IO.PIPE.ADD.CNT clc lda (pFD),y adc IO.PIPE.CNT sta (pFD),y - iny lda (pFD),y @@ -301,9 +260,7 @@ IO.PIPE.SUB.CNT sec lda (pFD),y sbc IO.PIPE.CNT sta (pFD),y - iny - lda (pFD),y sbc IO.PIPE.CNT+1 sta (pFD),y @@ -315,7 +272,6 @@ IO.EOF.PIPE clc iny ora (pFD),y beq .8 - lda #0 * clc rts diff --git a/SYS/KERNEL.S.PS.txt b/SYS/KERNEL.S.PS.txt index 9bbfc48d..277e7646 100644 --- a/SYS/KERNEL.S.PS.txt +++ b/SYS/KERNEL.S.PS.txt @@ -26,7 +26,6 @@ K.ExecL sty .1+1 >LDYAI 256 jsr K.GetMem bcs .99 - stx .90+1 >STYA PS.ArgV >PUSHYA @@ -38,15 +37,13 @@ K.ExecL sty .1+1 bcs .9 jsr PS.Exec - -.9 php +.9 php pha .90 lda #$ff SELF MODIFIED jsr K.FreeMem pla plp - -.99 rts +.99 rts */-------------------------------------- * # ExecV * ## C @@ -60,7 +57,6 @@ K.ExecL sty .1+1 *\-------------------------------------- K.ExecV >STYA PS.ArgV >PULLB PS.Flags - PS.Exec jsr PS.CreateChild A=PID,Child S.PS at PS.NewPSPtr,PS.Load.hMem bcs .9 sta .8+1 @@ -71,7 +67,6 @@ PS.Exec jsr PS.CreateChild A=PID,Child S.PS at PS.NewPSPtr,PS.Load.hMem jsr PS.AddArgV K.IOBuf= /.../SHELL, K.Buf256=/.../SCRIPT bcc .8 or K.IOBuf= 0, K.Buf256=/.../BINFILE - .90 pha save error code >PUSHBI 2 lda .8+1 @@ -91,26 +86,20 @@ PS.Exec jsr PS.CreateChild A=PID,Child S.PS at PS.NewPSPtr,PS.Load.hMem *-------------------------------------- PS.CreateChild ldx #0 bra .2 Skip PS0 - .1 lda PS.Table.PID,x beq .4 Found an empty slot - .2 inx cpx CORE.PSCount bne .1 - cpx #K.PS.MAX bne .3 - lda #E.OOH sec rts -.99 plx +.99 plx rts - -.3 inc CORE.PSCount - +.3 inc CORE.PSCount .4 inc CORE.LastPSID Get a PSID not already running beq .4 not = 0 lda CORE.LastPSID @@ -120,16 +109,13 @@ PS.CreateChild ldx #0 lda CORE.LastPSID sta PS.Table.PID,x phx save PS Index - >LDYAI S.PS jsr K.GetMem0 Blank Everything in this S.PS bcs .99 - >STYA PS.NewPSPtr txa plx sta PS.Table.hPS,x - jsr Mem.SetOwner Set Ownership lda PS.Flags @@ -139,18 +125,14 @@ PS.CreateChild ldx #0 lda CORE.LastPSID ldy #S.PS.PID sta (PS.NewPSPtr),y - lda #S.PS.F.NOHUP bit PS.Flags beq .5 - lda PS.Table.hPS Select PS0 jsr K.GetMemPtr bra .6 - -.5 >LDYA pPs -.6 >STYA ZPPtr1 - +.5 >LDYA pPs +.6 >STYA ZPPtr1 ldy #S.PS.PID lda (ZPPtr1),y dey #S.PS.PPID @@ -162,23 +144,19 @@ PS.CreateChild ldx #0 jsr K.StrDup bcs .9 - jsr Mem.SetOwner Set Ownership txa ldy #S.PS.hCWD sta (PS.NewPSPtr),y - jsr ENV.Dup dup hENV from parent PS bcs .9 ldy #S.PS.hENV - sta (PS.NewPSPtr),y txa dey sta (PS.NewPSPtr),y - ldy #S.PS.hStdIn .7 lda (ZPPtr1),y @@ -186,13 +164,11 @@ PS.CreateChild ldx #0 iny cpy #S.PS.hStdErr+1 bne .7 - ldy #S.PS.hSID lda (ZPPtr1),y sta (PS.NewPSPtr),y tax lda S.Table.hSession-1,x - jsr K.GetMemPtr phy ldy #S.PS.ZP.SESSION+1 @@ -206,23 +182,19 @@ PS.CreateChild ldx #0 lda #S.PS.F.HOLD bit PS.Flags beq .8 - ora (ZPPtr1) sta (ZPPtr1) HOLD parent PS - lda CORE.LastPSID ldy #S.PS.CPID sta (ZPPtr1),y - -.8 -* lda #PS.INIT +.8 +* lda #S.PS.S.INIT * ldy #S.PS.S * sta (PS.NewPSPtr),y Make this PS Init.... lda CORE.LastPSID Exit with A=PSID clc rts - .9 pha >PUSHBI 2 lda CORE.LastPSID @@ -238,19 +210,15 @@ PS.Load ldy #$ff beq .2 no / in path...try search in PATH cmp #'/' bne .1 - >PUSHWI K.S.STAT >LDYA PS.ArgV found /, some path specified, no search ldx #SYS.stat jsr K.SYSCALL2 bcc .6 REAL path in K.Buf256 - .99 rts - .2 >LDYA PS.ArgV jsr ENV.Search.PATH Get fullpath in K.Buf256 bcc .6 - ldy #S.PS.hCWD lda (PS.NewPSPtr),y jsr K.GetMemPtr @@ -258,11 +226,9 @@ PS.Load ldy #$ff >LDYA PS.ArgV jsr ENV.Search.YA bcs .99 - .6 lda K.S.STAT+S.STAT.P.TYPE cmp #S.FI.T.BIN beq PS.LoadBIN - .7 cmp #S.FI.T.TXT beq PS.Load.SCRIPT @@ -281,7 +247,6 @@ PS.Load.SCRIPT ldx #$ff lda K.Buf256,x sta K.IOBuf,x bne .10 - jsr PS.LoadGetHeader bcs PS.Load.RTS @@ -290,24 +255,20 @@ PS.Load.SCRIPT ldx #$ff bcs PS.Load.IPATH >STYA .2+1 - ldx #$ff .1 inx .2 lda $ffff,x SELF MODIFIED sta K.Buf256,x K.Buf256 = "$ROOT" bne .1 - ldy #0 - .3 lda K.IOBuf+128,y Check HEADER= "#!/" cmp PS.Load.HEADER,y bne PS.Load.IBIN iny cpy #3 bne .3 - -.4 iny +.4 iny inx lda K.IOBuf+128-1,y sta K.Buf256-1,x K.Buf256 = "${ROOT}BIN/SHELL" @@ -316,13 +277,11 @@ PS.Load.SCRIPT ldx #$ff bne .4 sta K.Buf256-1,x K.Buf256 = "${ROOT}BIN/SHELL\0" - .5 >PUSHWI K.S.STAT >LDYAI K.Buf256 ldx #SYS.stat jsr K.SYSCALL2 bcs PS.Load.RTS - lda K.S.STAT+S.STAT.P.TYPE cmp #S.FI.T.BIN bne PS.Load.IBIN @@ -337,7 +296,6 @@ PS.LoadBIN jsr BIN.Load K.Buf256= "${ROOT}BIN/SHELL\0", K.IOBuf=/.../SCRIPT dey pla sta (PS.NewPSPtr),y save pCode LO... - txa ldy #S.PS.hCS sta (PS.NewPSPtr),y save CS hMem in S.PS @@ -348,7 +306,6 @@ PS.LoadBIN jsr BIN.Load K.Buf256= "${ROOT}BIN/SHELL\0", K.IOBuf=/.../SCRIPT ldy #H.BIN.F Get Bin S.PS.F lda (ZPPtr4),y beq .1 - ldy #S.PS.F update PS S.PS.F ora (PS.NewPSPtr),y sta (PS.NewPSPtr),y @@ -386,9 +343,8 @@ PS.LoadBIN jsr BIN.Load K.Buf256= "${ROOT}BIN/SHELL\0", K.IOBuf=/.../SCRIPT ldy #S.PS.ZP.STACK sta (PS.NewPSPtr),y save pStack LO... - - tay + tay beq .3 SS.SIZE.LO=0, set as default $100 lda #$ff SS.SIZE.HI @@ -404,13 +360,11 @@ PS.LoadBIN jsr BIN.Load K.Buf256= "${ROOT}BIN/SHELL\0", K.IOBuf=/.../SCRIPT ldy #S.PS.ZP.LOCAL+1 sta (PS.NewPSPtr),y - txa ldy #S.PS.hSS sta (PS.NewPSPtr),y save SS hMem in S.PS jmp Mem.SetOwner Set Ownership - .9 rts *-------------------------------------- PS.LoadGetHeader @@ -428,7 +382,6 @@ PS.LoadGetHeader .1 lda #$ff SELF MODIFIED ldx #SYS.fread jsr K.SYSCALL2 - php pha lda .1+1 @@ -447,26 +400,20 @@ PS.Load.HEADER .AZ "#!/" * Buf256+IOBUF(?)+PS.ArgV[1,...] -> #S.PS.hARGV *-------------------------------------- PS.AddArgV ldy #$ff In both cases, remove ARGV[0] - .60 iny lda (PS.ArgV),y bne .60 - tya sec adc PS.ArgV sta PS.ArgV bcc .70 - inc PS.ArgV+1 Skip old ARGV[0] = scriptename - .70 >LDYAI K.Buf256 jsr K.strlen >STYA PS.ArgSize - lda K.IOBuf is there a /BIN/SHELL ? beq .10 - >LDYAI K.IOBuf jsr K.strlen jsr PS.AddYAp12ArgSize @@ -475,31 +422,24 @@ PS.AddArgV ldy #$ff In both cases, remove ARGV[0] lda K.IOBuf beq .11 +1 for scriptpath inx - .11 >LDYA PS.ArgV >STYA ZPPtr1 .1 lda (ZPPtr1) beq .4 - inx - ldy #0 - .2 iny lda (ZPPtr1),y bne .2 - -* lda #0 +* lda #0 jsr PS.AddYAp12ArgSize - .3 jsr SHARED.AddYp1ToPtr1 bra .1 .4 txa ldy #S.PS.ARGC sta (PS.NewPSPtr),y - >LDYA PS.ArgSize Add 1 for ending 0 iny bne .5 @@ -507,7 +447,6 @@ PS.AddArgV ldy #$ff In both cases, remove ARGV[0] .5 jsr K.GetMem bcs PS.AddPtr1ToStrVUntil0.RTS - >STYA ZPPtr2 Target Buffer txa ldy #S.PS.hARGV @@ -515,13 +454,10 @@ PS.AddArgV ldy #$ff In both cases, remove ARGV[0] >LDYAI K.Buf256 jsr PS.AddYAToStrV - lda K.IOBuf beq .6 - >LDYAI K.IOBuf jsr PS.AddYAToStrV - .6 >LDYA PS.ArgV >STYA ZPPtr1 *-------------------------------------- @@ -529,10 +465,8 @@ PS.AddPtr1ToStrVUntil0 .1 lda (ZPPtr1) sta (ZPPtr2) beq .8 Ending \0 - jsr PS.AddPtr1ToStrV bra .1 - .8 clc PS.AddPtr1ToStrVUntil0.RTS rts @@ -540,12 +474,10 @@ PS.AddPtr1ToStrVUntil0.RTS PS.AddYAToStrV >STYA ZPPtr1 PS.AddPtr1ToStrV ldy #$ff - .2 iny lda (ZPPtr1),y sta (ZPPtr2),y bne .2 - jsr SHARED.AddYp1ToPtr1 jmp SHARED.AddYp1ToPtr2 *-------------------------------------- @@ -574,45 +506,35 @@ K.Kill.PID .BS 1 *-------------------------------------- K.Kill cmp #0 beq .99 CS - sta K.Kill.PID - jsr CORE.GetPSByID bcs .99 >STYA ZPPtr1 - >PULLA cmp #2+1 bcs .9 asl tax jmp (.1,x) - .1 .DA K.Kill.0 .DA K.Kill.1 .DA K.Kill.2 - .9 lda #E.SYN * sec rts - .99 >RET 1 *-------------------------------------- K.Kill.1 ldy #S.PS.S - lda #PS.QUIT + lda #S.PS.S.QUIT sta (ZPPtr1),y - K.Kill.0 clc rts - K.Kill.2 ldy #S.PS.hSID lda (ZPPtr1),y tax lda S.Table.hSession-1,x jsr K.FreeMem - ldx #5 - .11 ldy .10,x lda (ZPPtr1),y @@ -635,7 +557,6 @@ K.Kill.2 ldy #S.PS.hSID .1 lda K.Kill.PID ldx #0 - .2 cmp PS.Table.PID,x beq .3 @@ -643,7 +564,6 @@ K.Kill.2 ldy #S.PS.hSID cpx CORE.PSCount bne .2 bra * - .3 stz PS.Table.PID,x lda PS.TABLE.hPS,x stz PS.TABLE.hPS,x @@ -698,7 +618,6 @@ K.LoadFile clc ror FIO.bTXT ldx #SYS.FOpen jsr K.SYSCALL2 - bcs .9 .12 sta FIO.hFILE @@ -722,27 +641,22 @@ K.LoadFile clc bne .1 inc bne .1 - .10 lda #E.FTB .11 bra .99 - .1 jsr K.GetMem bcs .99 >STYA FIO.MemPtr stx FIO.hMem - >PUSHW K.S.Stat+S.STAT.SIZE >PUSHW FIO.MemPtr lda FIO.hFILE ldx #SYS.FRead jsr K.SYSCALL2 bcc .2 - pha lda FIO.hMem jsr K.FreeMem pla - .99 pha lda FIO.hFILE ldx #SYS.FClose @@ -753,7 +667,6 @@ K.LoadFile clc .2 sty .7+1 sta .8+1 - bit FIO.bTXT bpl .5 @@ -764,15 +677,13 @@ K.LoadFile clc adc FIO.MemPtr sta .4+1 - pla adc FIO.MemPtr+1 sta .4+2 - .4 stz $ffff Self Modified .5 jsr .99 close file - + .7 ldy #$ff SELFMODIFIED .8 lda #$ff SELFMODIFIED ldx FIO.hMem @@ -789,21 +700,15 @@ K.GetMemStat >STYA ZPPtr1 ldy #23 ldx #7 - .1 lda DevMgr.Stat,x sta (ZPPtr1),y dey dex bpl .1 - sta SETREADAUX - jsr .2 - sta CLRREADAUX - .2 ldx #7 - .3 lda Mem.Table,x sta (ZPPtr1),y dey diff --git a/SYS/KERNEL.S.PWDX.txt b/SYS/KERNEL.S.PWDX.txt index a38ae226..ccc978e6 100644 --- a/SYS/KERNEL.S.PWDX.txt +++ b/SYS/KERNEL.S.PWDX.txt @@ -30,9 +30,7 @@ K.GetPWUID sta ZPPtr1+1 .1 lda (ZPPtr3) beq PWD.GetPW.99 EOF - ldy #0 - jsr PWD.NextString skip USERNAME jsr PWD.NextString skip PASSWORD @@ -40,25 +38,20 @@ K.GetPWUID sta ZPPtr1+1 jsr PWD.GetByte get UID cmp ZPPtr1+1 beq PWD.GetPW.8 - jsr PWD.NextLine bra .1 - PWD.GetPW.8 ldx ZPPtr2+1 beq .8 Dry run, no output - jmp PWD.Record2PW - .8 clc a = UID rts - PWD.GetPW.9 lda #E.IPWDDB sec rts PWD.GetPW.99 lda #E.IUSR sec -PWD.GetPW.RTS rts +PWD.GetPW.RTS rts */-------------------------------------- * # GetPWName * ## C @@ -87,26 +80,19 @@ K.GetPWName >STYA TXTPTR beq PWD.GetPW.99 ldy #$ff - -.2 iny +.2 iny jsr SHARED.TXTPTR.GetY beq .4 - cmp (ZPPtr3),y beq .2 - .3 jsr PWD.NextLine bra .1 - .4 lda (ZPPtr3),y cmp #':' bne .3 - ldx ZPPtr2+1 beq .8 - jmp PWD.Record2PW - .8 iny jsr PWD.NextString skip PASSWORD jmp PWD.GetByte get UID @@ -127,11 +113,9 @@ K.PutPW >STYA ZPPtr2 *-------------------------------------- lda PWD.hDB bne .1 - ldy #S.PW.UID jsr SHARED.TXTPTR.GetY bne PWD.GetPW.RTS Must be ROOT user - jsr PWD.GetRecordLen tay lda #0 @@ -142,23 +126,18 @@ K.PutPW >STYA ZPPtr2 >STYA ZPPtr3 >STYA PWD.DBPtr stx PWD.hDB - jmp .8 - .1 jsr K.GetmemPtr >STYA PWD.DBPtr ldy #S.PW.PASSWD jsr SHARED.TXTPTR.GetY bne .12 - jsr PWD.DeleteRecord bcc .80 rts - .12 jsr PWD.DeleteRecord bcc .11 user exits.. - jsr PWD.GetUID new user, get UID bcs .99 ldy #S.PW.UID @@ -173,47 +152,37 @@ K.PutPW >STYA ZPPtr2 sta PWD.DBSize bcc .2 inc PWD.DBSize+1 - .2 >LDYA PWD.DBPtr >STYA ZPPtr4 - >LDYA PWD.DBSize jsr K.Getmem bcs .99 - >STYA ZPPtr3 >STYA PWD.DBPtr - ldy #0 - .3 lda (ZPPtr4),y sta (ZPPtr3),y beq .4 - iny bne .3 inc ZPPtr4 inc ZPPtr3 bra .3 - .4 tya clc adc ZPPtr3 sta ZPPtr3 bcc .5 inc ZPPtr3+1 - .5 lda PWD.hDB stx PWD.hDB jsr K.Freemem .8 jsr PWD.StoreRecord - .80 inc PWD.bDirty clc .99 rts - .9 lda #E.IPWDDB sec rts @@ -231,7 +200,6 @@ PWD.Save lda PWD.bDirty sta A1L+1 adc PWD.DBSize+1 sta A2L+1 - >LDYA PWD.DBSize >SYSCALL2 GetMem bcs .9 @@ -240,8 +208,7 @@ PWD.Save lda PWD.bDirty >STYA A4L Save Destination Address in MAIN clc Aux To Main - jsr AuxMove - + jsr AuxMove >PUSHWZ Aux type >PUSHBI S.FI.T.TXT >PUSHBI O.WRONLY+O.CREATE @@ -255,9 +222,7 @@ PWD.Save lda PWD.bDirty pla sec .9 rts - .1 sta .7+1 - >PUSHW PWD.DBSize lda .8+1 jsr K.getmemptr @@ -266,7 +231,6 @@ PWD.Save lda PWD.bDirty ldx #SYS.FWrite jsr K.SYSCALL2 bcc .2 - pha jsr .7 pla @@ -278,7 +242,6 @@ PWD.Save lda PWD.bDirty .7 lda #$ff SELF MODIFIED ldx #SYS.fclose jsr K.SYSCALL2 - .8 lda #$ff jmp K.freemem SELF MODIFIED *-------------------------------------- @@ -286,34 +249,23 @@ PWD.Save lda PWD.bDirty *-------------------------------------- PWD.GetUID >LDYA PWD.DBPtr >STYA ZPPtr3 - stz .8+1 - .1 lda (ZPPtr3) beq .8 End of DB - ldy #0 - jsr PWD.NextString skip name - jsr PWD.NextString skip password - jsr PWD.GetByte cmp .8+1 bcc .4 - sta .8+1 - .4 jsr PWD.NextLine bra .1 - .8 lda #$ff SELF MODIFIED inc beq .9 - clc rts - .9 lda #E.IUSR sec rts @@ -321,14 +273,11 @@ PWD.GetUID >LDYA PWD.DBPtr PWD.DeleteRecord jsr PWD.FindRecord bcs .9 - .1 iny lda (ZPPtr3),y cmp #C.CR bne .1 - sty .3+1 - tya sec adc ZPPtr3 @@ -336,9 +285,7 @@ PWD.DeleteRecord lda ZPPtr3+1 adc #0 sta ZPPtr4+1 - ldy #$ff - .2 iny lda (ZPPtr4),y sta (ZPPtr3),y @@ -349,11 +296,10 @@ PWD.DeleteRecord .3 sbc #$ff SELF MODIFIED sta PWD.DBSize bcs .8 - dec PWD.DBSize+1 .8 clc -.9 rts +.9 rts *-------------------------------------- PWD.FindRecord >LDYA PWD.DBPtr >STYA ZPPtr3 @@ -365,23 +311,19 @@ PWD.FindRecord >LDYA PWD.DBPtr beq .9 End of DB ldy #$ff - .3 iny jsr SHARED.TXTPTR.GetY beq .4 cmp (ZPPtr3),y beq .3 - .5 jsr PWD.NextLine bra .2 - .4 lda (ZPPtr3),y cmp #':' bne .5 clc rts - .9 lda #E.IUSR sec rts @@ -396,14 +338,13 @@ PWD.NextLine iny lda (ZPPtr3),y cmp #C.CR bne PWD.NextLine - tya sec adc ZPPtr3 sta ZPPtr3 bcc .8 inc ZPPtr3+1 -.8 rts +.8 rts *-------------------------------------- PWD.Record2PW sta CLRWRITEAUX @@ -415,11 +356,9 @@ PWD.Record2PW sta CLRWRITEAUX iny cmp #':' beq .2 - jsr SHARED.PutCharPtr2 inx bra .1 - .2 lda #0 jsr SHARED.PutCharPtr2 inx @@ -453,11 +392,9 @@ PWD.Record2PW sta CLRWRITEAUX iny cmp #':' beq .6 - jsr SHARED.PutCharPtr2 inx bra .5 - .6 lda #0 jsr SHARED.PutCharPtr2 inx @@ -468,11 +405,9 @@ PWD.Record2PW sta CLRWRITEAUX iny cmp #':' beq .8 - jsr SHARED.PutCharPtr2 inx bra .7 - .8 lda #0 jsr SHARED.PutCharPtr2 inx @@ -483,16 +418,12 @@ PWD.Record2PW sta CLRWRITEAUX iny cmp #C.CR beq .10 - jsr SHARED.PutCharPtr2 inx bra .9 - .10 lda #0 jsr SHARED.PutCharPtr2 - sta SETWRITEAUX - clc rts *-------------------------------------- @@ -502,10 +433,8 @@ PWD.GetByte stz ZPPtr4 iny cmp #':' beq .8 - and #$f pha - lda ZPPtr4 asl asl @@ -518,7 +447,6 @@ PWD.GetByte stz ZPPtr4 adc ZPPtr4 sta ZPPtr4 bra .1 - .8 lda ZPPtr4 clc rts @@ -529,14 +457,11 @@ PWD.StoreRecord sec PWD.GetRecordLen clc ldx #0 - ldy #S.PW.NAME-1 jsr PWD.StoreString - lda #':' jsr PWD.StoreChar - ldy #S.PW.PASSWD-1 jsr PWD.StoreString @@ -550,38 +475,32 @@ PWD.GetRecordLen lda #':' jsr PWD.StoreChar - iny S.PW.UID - jsr SHARED.TXTPTR.GetY jsr PWD.StoreByte - lda #':' jsr PWD.StoreChar * iny S.PW.GECOS jsr PWD.StoreString - lda #':' jsr PWD.StoreChar ldy #S.PW.DIR-1 jsr PWD.StoreString - lda #':' jsr PWD.StoreChar ldy #S.PW.SHELL-1 jsr PWD.StoreString - lda #C.CR jsr PWD.StoreChar txa -PWD.GetRecordLen.RTS +PWD.GetRecordLen.RTS rts *-------------------------------------- PWD.StoreString iny @@ -592,31 +511,23 @@ PWD.StoreString iny *-------------------------------------- PWD.StoreByte php phx - jsr MATH.A2STR10NP - plx plp - ldy #0 - .1 lda A2osX.NumStrBuf,y beq PWD.GetRecordLen.RTS - iny - jsr PWD.StoreChar bra .1 *-------------------------------------- PWD.StoreChar inx - bcc .9 Dry run, no store sta (ZPPtr3) inc ZPPtr3 bne .9 inc ZPPtr3+1 - -.9 rts +.9 rts *-------------------------------------- MAN SAVE USR/SRC/SYS/KERNEL.S.PWDX diff --git a/SYS/KERNEL.S.SHARED.txt b/SYS/KERNEL.S.SHARED.txt index 770cfc55..01b0ded3 100644 --- a/SYS/KERNEL.S.SHARED.txt +++ b/SYS/KERNEL.S.SHARED.txt @@ -27,7 +27,6 @@ SHARED.IsDigitOrUC SHARED.IsDigit.9 sec rts - SHARED.IsDigit.8 clc SHARED.IsDigit.RTS @@ -36,24 +35,21 @@ SHARED.IsDigit.RTS SHARED.IsHexDigit jsr ZP.IsDigit bcc .8 - cmp #'A' bcc SHARED.IsDigit.9 cmp #'F'+1 bcc .1 - cmp #'a' bcc SHARED.IsDigit.9 cmp #'f'+1 bcs SHARED.IsDigit.RTS eor #$20 -.1 +.1 * clc sbc #'A'-11 cc so A->10 (11-CC) clc - -.8 and #$0F +.8 and #$0F rts *-------------------------------------- SHARED.SetKeyCharY @@ -72,7 +68,7 @@ SHARED.SetDataByte sta CLRWRITEAUX sta (ZPSListDataPtr) sta SETWRITEAUX -SHARED.SetDataByte.1 +SHARED.SetDataByte.1 inc ZPSListDataPtr bne .8 inc ZPSListDataPtr+1 @@ -92,7 +88,7 @@ SHARED.TXTPTR.GetNext inc TXTPTR bne .9 inc TXTPTR+1 -.9 rts +.9 rts *-------------------------------------- SHARED.SPtr1PPtr2 >STYA ZPPtr1 @@ -108,10 +104,9 @@ SHARED.GetCharPtr1 lda (ZPPtr1) bne SHARED.NextCharPtr1 rts - SHARED.PutCharPtr1 sta (ZPPtr1) -SHARED.NextCharPtr1 +SHARED.NextCharPtr1 inc ZPPtr1 bne .8 inc ZPPtr1+1 never Z diff --git a/SYS/KERNEL.S.SLISTX.txt b/SYS/KERNEL.S.SLISTX.txt index d541b810..88d4c242 100644 --- a/SYS/KERNEL.S.SLISTX.txt +++ b/SYS/KERNEL.S.SLISTX.txt @@ -53,12 +53,10 @@ K.SListGetData sta SLIST.hList lda ZPSListDataPtr ora ZPSListDataPtr+1 bne .12 - >LDYA SLIST.DataLen iny bne .11 inc +1 for ending 0 - .11 ldx #SYS.GetMem jsr K.SYSCALL2.MAIN !!! Get a buffer In MAIN Mem !!! bcs .9 @@ -69,7 +67,6 @@ K.SListGetData sta SLIST.hList ora ZPSListDataLen+1 sec beq .1 String Mode - lda ZPSListDataLen eor #$ff sta SLIST.nBufCnt @@ -77,29 +74,23 @@ K.SListGetData sta SLIST.hList eor #$ff sta SLIST.nBufCnt+1 clc - .1 ror SLIST.bStringMode stz ZPSListDataLen stz ZPSListDataLen+1 - .2 inc SLIST.nDataCnt bne .3 inc SLIST.nDataCnt+1 beq .8 - .3 inc SLIST.nBufCnt bne .4 inc SLIST.nBufCnt+1 beq .8 - .4 jsr SLIST.GetNextByte bit SLIST.bStringMode bpl .5 - cmp #C.CR beq .8 - .5 jsr SHARED.SetDataByte inc ZPSListDataLen bne .2 @@ -112,7 +103,6 @@ K.SListGetData sta SLIST.hList .8 lda #0 jsr SHARED.SetDataByte - .81 >LDYA ZPSListDataLen .82 ldx #$ff SELF MODIFIED clc @@ -138,7 +128,6 @@ K.SListAddData sta SLIST.hList jsr SLIST.Select jsr SLIST.SkipKey - >LDYA SLIST.KeyID Save DataLen location >STYA ZPSListKeyID to update later @@ -148,7 +137,6 @@ K.SListAddData sta SLIST.hList clc adc ZPSListDataLen sta (ZPSListDBlkPtr),y - php jsr SLIST.ToNextByte skip LEN lo @@ -158,14 +146,11 @@ K.SListAddData sta SLIST.hList pha adc ZPSListDataLen+1 sta (ZPSListDBlkPtr),y - jsr SLIST.ToNextByte skip LEN hi plx pla - jsr SLIST.SkipDataAX - lda ZPSListDataLen eor #$ff sta ZPSListDataLen @@ -178,16 +163,13 @@ K.SListAddData sta SLIST.hList bne .2 inc ZPSListDataLen+1 beq .8 - .2 jsr SHARED.GetDataByte jsr SLIST.AddBlockByte bcc .1 - rts .8 lda #0 jsr SLIST.AddBlockByte Add an extra 0 to stop Search here - clc rts */-------------------------------------- @@ -201,7 +183,6 @@ K.SListAddData sta SLIST.hList * ## RETURN VALUE *\-------------------------------------- K.SListSetData sta SLIST.hList - jsr SHARED.PullYA >STYA ZPSListKeyID jsr SHARED.PullYA @@ -216,7 +197,6 @@ K.SListSetData sta SLIST.hList lda SLIST.DataLen cmp ZPSListDataLen bne .9 - ldx SLIST.DataLen+1 cpx ZPSListDataLen+1 bne .9 @@ -226,19 +206,16 @@ K.SListSetData sta SLIST.hList txa eor #$ff sta SLIST.nDataCnt+1 - .1 inc SLIST.nDataCnt bne .2 inc SLIST.nDataCnt+1 beq .8 - .2 jsr SHARED.GetDataByte jsr SLIST.SetBlockByte bra .1 .8 clc rts - .9 lda #E.DATALEN sec rts @@ -262,12 +239,9 @@ K.SListGetByID sta SLIST.hList jsr SLIST.Select jsr SLIST.GetNextByte - tax beq .9 - ldy #0 - .1 phy jsr SLIST.GetNextByte ply @@ -275,16 +249,13 @@ K.SListGetByID sta SLIST.hList iny dex bne .1 - txa lda #0 jsr SHARED.SetKeyCharY jsr SLIST.SkipData - >LDYA SLIST.KeyID clc rts - .9 lda #E.NOKEY sec rts @@ -299,34 +270,27 @@ K.SListGetByID sta SLIST.hList * X = KeyLen *\-------------------------------------- K.SListNewKey sta SLIST.hList - jsr SHARED.PullYA >STYA ZPSListDataPtr jsr SLIST.Search bcc .99 - lda SLIST.KeyLen jsr SLIST.AddBlockByte bcs .9 - ldy #0 - .1 jsr SHARED.GetKeyCharY jsr SLIST.AddBlockByte bcs .9 iny cpy SLIST.KeyLen bne .1 - lda #0 Data Len = 0 jsr SLIST.AddBlockByte bcs .9 - lda #0 jsr SLIST.AddBlockByte bcs .9 - lda #0 Next Len = 0 jsr SLIST.AddBlockByte bcs .9 @@ -335,10 +299,9 @@ K.SListNewKey sta SLIST.hList ldx SLIST.KeyLen clc rts - .99 lda #E.DUPKEY sec -.9 rts +.9 rts */-------------------------------------- * # SListLookup * ## ASM @@ -359,7 +322,6 @@ K.SListLookup sta SLIST.hList >LDYA ZPSListKeyID ldx SLIST.KeyLen - .9 rts */-------------------------------------- * # SListNew @@ -373,7 +335,6 @@ K.SListNew >LDYAI 160 40k Max before out of memory!!! bcs .9 >STYA ZPSListIBlkPtr stx .8+1 - >LDYAI 256 jsr K.GetMem bcs .9 @@ -382,9 +343,7 @@ K.SListNew >LDYAI 160 40k Max before out of memory!!! sta (ZPSListDBlkPtr) txa sta (ZPSListIBlkPtr) - -.8 lda #$ff SELF MODIFIED - +.8 lda #$ff SELF MODIFIED .9 rts */-------------------------------------- * # SListFree @@ -397,15 +356,12 @@ K.SListFree sta .8+1 jsr K.GetMemPtr >STYA .1+1 - ldx #0 - .1 lda $ffff,x SELF MODIFIED beq .8 jsr K.FreeMem inx bra .1 - .8 lda #$ff SELF MODIFIED jmp K.FreeMem *-------------------------------------- @@ -418,52 +374,40 @@ SLIST.Search lda SLIST.hList lda (ZPSListIBlkPtr) jsr K.GetMemPtr >STYA ZPSListDBlkPtr - ldy #$ff .1 iny jsr SHARED.GetKeyCharY bcc .1 - sty SLIST.KeyLen stz SLIST.BytePtr stz SLIST.BlockPtr - .2 >LDYA SLIST.KeyID >STYA ZPSListKeyID - ldy SLIST.BytePtr lda (ZPSListDBlkPtr),y beq .9 - cmp SLIST.KeyLen bne .5 - jsr SLIST.GetNextByte Skip Len - ldy #0 - .3 phy jsr SLIST.GetNextByte sta .4+1 ply jsr SHARED.GetKeyCharY -.4 cmp #$ff SELF MODIFIED +.4 cmp #$ff SELF MODIFIED bne .5 iny cpy SLIST.KeyLen bne .3 - clc rts - .5 jsr SLIST.Select.I move back to ZPSListKeyID jsr SLIST.Next - bra .2 - .9 lda #E.NOKEY sec rts @@ -474,11 +418,9 @@ SLIST.Select lda SLIST.hList SLIST.Select.I ldy ZPSListKeyID+1 sty SLIST.BlockPtr - - lda (ZPSListIBlkPtr),y + lda (ZPSListIBlkPtr),y jsr K.GetMemPtr >STYA ZPSListDBlkPtr - lda ZPSListKeyID sta SLIST.BytePtr rts @@ -489,11 +431,10 @@ SLIST.SkipData jsr SLIST.GetDataLen lda SLIST.DataLen ldx SLIST.DataLen+1 -SLIST.SkipDataAX +SLIST.SkipDataAX clc adc SLIST.BytePtr sta SLIST.BytePtr - txa adc SLIST.BlockPtr sta SLIST.BlockPtr @@ -510,7 +451,6 @@ SLIST.SkipKey ldy SLIST.BytePtr adc SLIST.BytePtr sta SLIST.BytePtr bcs SLIST.ToNextBlock - .8 rts *-------------------------------------- SLIST.GetDataLen @@ -530,8 +470,7 @@ SLIST.ToNextByte pha jsr SLIST.ToNextBlock pla - -.8 rts +.8 rts *-------------------------------------- SLIST.AddBlockByte phy @@ -539,7 +478,6 @@ SLIST.AddBlockByte sta (ZPSListDBlkPtr),y inc SLIST.BytePtr bne .8 - phx >LDYAI 256 jsr K.GetMem @@ -552,16 +490,14 @@ SLIST.AddBlockByte sta (ZPSListIBlkPtr),y * stz SLIST.BytePtr - plx - .8 ply clc rts .9 plx ply - rts + rts *-------------------------------------- SLIST.SetBlockByte ldy SLIST.BytePtr @@ -575,7 +511,7 @@ SLIST.ToNextBlock lda (ZPSListIBlkPtr),y jsr K.GetMemPtr >STYA ZPSListDBlkPtr -SLIST.ToNextBlock.RTS +SLIST.ToNextBlock.RTS rts *-------------------------------------- SLIST.hList .BS 1 diff --git a/SYS/KERNEL.S.STAT.txt b/SYS/KERNEL.S.STAT.txt index 16655f21..3478b9f7 100644 --- a/SYS/KERNEL.S.STAT.txt +++ b/SYS/KERNEL.S.STAT.txt @@ -18,24 +18,19 @@ K.ChMod jsr PFT.CheckPathYA bcs K.FStat.9 >PULLW K.S.STAT+S.STAT.MODE - lda K.S.STAT+S.STAT.MODE+1 and /S.STAT.MODE.RU beq .9 - lda K.S.STAT+S.STAT.MODE and #S.STAT.MODE.XO+S.STAT.MODE.RO+S.STAT.MODE.XG+S.STAT.MODE.RG+S.STAT.MODE.XU+S.STAT.MODE.RU cmp #S.STAT.MODE.XO+S.STAT.MODE.RO+S.STAT.MODE.XG+S.STAT.MODE.RG+S.STAT.MODE.XU+S.STAT.MODE.RU bne .9 - >MLICALL MLIGETFILEINFO bcs .90 - lda K.MLI.PARAMS+S.FI.A and #$3D not S.FI.A.RN+S.FI.A.D+S.FI.A.W ora #S.FI.A.R tax - lda K.S.STAT+S.STAT.MODE tay bit #S.STAT.MODE.WG @@ -44,32 +39,25 @@ K.ChMod jsr PFT.CheckPathYA txa ora #S.FI.A.RN tax - tya .1 bit #S.STAT.MODE.WU beq .2 - txa ora #S.FI.A.D tax - tya .2 bit #S.STAT.MODE.WO beq .3 - txa ora #S.FI.A.W tax - .3 stx K.MLI.PARAMS+S.FI.A >MLICALL MLISETFILEINFO rts - .9 lda #E.SYN sec .90 rts - K.FStat.9 >RET 2 discard statbuf *-------------------------------------- * # FStat @@ -85,38 +73,29 @@ K.FStat.9 >RET 2 discard statbuf *-------------------------------------- K.FStat jsr PFT.CheckNodeA bcs K.FStat.9 - tax lda OF.Table.hPath-1,x jsr K.GetMemPtr - jsr PFT.YAToMLIPATH - jsr K.Stat.I bcs K.Stat.9 - lda (pFD) #S.FD.T bne K.Stat.BLK2SIZE - ldy #S.FD.REG.REF lda (pFD),y sta K.MLI.PARAMS+1 >MLICALL MLIGETEOF bcs K.Stat.BLK2SIZE - ldy #S.STAT.SIZE+3 lda #0 sta (ZPPtr1),y - ldx #2 - .1 lda K.MLI.PARAMS+2,x dey sta (ZPPtr1),y dex bpl .1 - * clc rts */-------------------------------------- @@ -133,50 +112,38 @@ K.FStat jsr PFT.CheckNodeA *\-------------------------------------- K.Stat jsr PFT.CheckPathYA bcs K.FStat.9 go discard statbuf - jsr K.Stat.I bcs K.Stat.9 -K.Stat.BLK2SIZE - ldy #S.STAT.SIZE +K.Stat.BLK2SIZE ldy #S.STAT.SIZE lda #0 sta (ZPPtr1),y - iny - lda K.MLI.PARAMS+S.FI.UBLKS asl sta (ZPPtr1),y - iny - lda K.MLI.PARAMS+S.FI.UBLKS+1 rol sta (ZPPtr1),y - iny - lda #0 rol sta (ZPPtr1),y - * clc K.Stat.9 rts K.Stat.I >PULLW ZPPtr1 Get StatBuf - >MLICALL MLIGETFILEINFO bcs .9 lda K.MLI.PARAMS+S.FI.A jsr STAT.Access2Mode - .2 phy ldy #S.STAT.MODE sta (ZPPtr1),y iny pla sta (ZPPtr1),y - ldx #K.Stat.DST-K.Stat.SRC .3 ldy K.Stat.SRC-1,x @@ -185,7 +152,6 @@ K.Stat.I >PULLW ZPPtr1 Get StatBuf sta (ZPPtr1),y dex bne .3 - clc .9 rts *-------------------------------------- @@ -200,7 +166,6 @@ STAT.Access2Mode and #S.FI.A.FULL cmp #S.FI.A.FULL beq .7 - tay ldx #S.STAT.MODE.RO+S.STAT.MODE.RG+S.STAT.MODE.RU+S.STAT.MODE.XO+S.STAT.MODE.XG+S.STAT.MODE.XU @@ -209,22 +174,18 @@ STAT.Access2Mode txa ora #S.STAT.MODE.WO tax - tya .1 asl D in C bpl .2 RN in N - txa ora #S.STAT.MODE.WG tax - .2 txa bcc .8 ora #S.STAT.MODE.WU .HS 2C BIT ABS - .7 lda #S.STAT.MODE.FO+S.STAT.MODE.FG+S.STAT.MODE.FU rwxrwxrwx .8 ldy /S.STAT.MODE.RU ??????R?? @@ -247,7 +208,6 @@ STAT.Access2Mode.RTS *\------------------------------------- K.MKDir jsr PFT.CheckPathYA bcs STAT.Access2Mode.RTS - lda #S.FI.T.DIR sta K.MLI.PARAMS+4 stz K.MLI.PARAMS+5 @@ -270,13 +230,11 @@ K.MKDir jsr PFT.CheckPathYA *\-------------------------------------- K.MKFIFO >STYA ZPPtr1 pathname buffer >PULLW K.S.STAT+S.STAT.MODE - >LDYAI 512 jsr K.pipe bcs STAT.Access2Mode.RTS ldy #0 - .1 lda IO.DEV.FIFO,y sta (ZPPtr1),y iny @@ -285,7 +243,6 @@ K.MKFIFO >STYA ZPPtr1 pathname buffer lda IO.hFD jsr MATH.AToHexAX - sta (ZPPtr1),y txa iny @@ -293,7 +250,6 @@ K.MKFIFO >STYA ZPPtr1 pathname buffer iny lda #0 sta (ZPPtr1),y - bra K.MkNod.I */-------------------------------------- * # MkNod @@ -312,38 +268,29 @@ K.MKFIFO >STYA ZPPtr1 pathname buffer * A = hFILE *\-------------------------------------- K.MkNod >STYA ZPPtr1 pathname - >PULLW K.S.STAT+S.STAT.MODE >PULLB IO.hFD K.MkNod.I ldx #2 - .1 lda Nod.Table.hPath-2,x beq .2 - inx cpx #K.Nod.MAX+2 bne .1 - lda #E.OOH -* sec +* sec rts - .2 stx .3+1 Store hFILE - >LDYA ZPPtr1 ldx #SYS.StrDup jsr K.SYSCALL2 bcs .9 txa - .3 ldx #$ff SELF MODIFIED sta Nod.Table.hPath-2,x lda IO.hFD sta Nod.Table.hFD-2,x - txa hNODE - clc .9 rts */-------------------------------------- @@ -366,27 +313,22 @@ K.Pipe sta .1+1 SIZE HI jsr K.GetMem .FIN bcs .99 - stx .8+1 save PIPE buffer - ldx #2 jsr IO.MkFD bcs .9 - .1 lda #$ff SELF MODIFIED ldy #S.FD.PIPE.Free+1 sta (pFD),y ldy #S.FD.PIPE.Size+1 sta (pFD),y - ldy #S.FD.PIPE.hMem .8 lda #$ff Self Modified sta (pFD),y txa hFD * clc rts - .9 pha save error code lda .8+1 get back PIPE buffer .DO AUXPIPE=1 @@ -397,8 +339,7 @@ K.Pipe sta .1+1 SIZE HI .FIN pla sec - -.99 rts +.99 rts *-------------------------------------- MAN SAVE USR/SRC/SYS/KERNEL.S.STAT diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index 256a373c..9b662ca2 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -134,22 +134,18 @@ K.FPutS jsr PFT.CheckNodeA set IO.hFD lda (pStack) sta ZPPtr2 Get String - ldy #1 lda (pStack),y sta ZPPtr2+1 - * ldy #0 dey ldx #0 - .1 lda (ZPPtr2),y beq .2 iny bne .1 inx bra .1 - .2 txa >PUSHA push len HI @@ -157,14 +153,12 @@ K.FPutS jsr PFT.CheckNodeA set IO.hFD >PUSHA push len LO >PUSHW ZPPtr2 - jsr UNISTD.Write bcc K.PutS.RET2 tay bpl K.PutS.RET2 IO Erorr - inc 0 = BLOCKING -* sec +* sec rts */-------------------------------------- * # PrintF (BLOCKING) @@ -226,7 +220,7 @@ K.FPutS jsr PFT.CheckNodeA set IO.hFD * + \\% : Print % * Modifiers for len and padding : * + %d : '9' '12' -* + %2d : ' 9' '12' +* + %2d : ' 9' '12' * + %02d : '09' '12' * + %11s : 'ABCDEFGH ' * + %011s : 'ABCDEFGH000' @@ -242,7 +236,6 @@ K.SPrintF stz PrintF.hFILE >STYA pIOBuf str jsr K.PrintF.GetFormat bra K.PrintF.1 - K.FPrintF sta PrintF.hFILE jsr K.PrintF.GetFormat bra K.PrintF.0 @@ -258,7 +251,6 @@ K.PrintF >STYA ZPPtr2 format K.PrintF.0 >LDYAI K.IOBuf >STYA pIOBuf - K.PrintF.1 stz PrintF.Cnt stz PrintF.Cnt+1 @@ -271,23 +263,17 @@ K.PrintF.1 stz PrintF.Cnt .22 cmp #'%' bne .10 - stz K.PrintF.PadL stz K.PrintF.PadC - lda (ZPPtr2) beq .7 end of format... print % and exit jsr ZP.IsDigit bcs .6 no digit....go check specifier - cmp #'0' ...a 0...mmm... padding char? bne .4 - sta K.PrintF.PadC - jsr SHARED.NextCharPtr2 skip 0 ... - lda (ZPPtr2) beq .7 @@ -296,12 +282,10 @@ K.PrintF.1 stz PrintF.Cnt .4 jsr MATH.Dec2ACC32 bcs .99 - lda ACC32 sta K.PrintF.PadL lda K.PrintF.PadC bne .5 - lda #C.SPACE sta K.PrintF.PadC @@ -311,24 +295,19 @@ K.PrintF.1 stz PrintF.Cnt beq .7 .6 ldx #PrintFTBL1.Cnt-1 do we have a %x command? - .61 cmp PrintFTBL1,x beq .62 dex bpl .61 - bra .20 unknown ... .62 jsr SHARED.NextCharPtr2 - txa yes, jmp to it! asl tax - jsr PrintF.ESC .11 bcc .1 bra .99 - .7 lda #'%' bra .20 *-------------------------------------- @@ -337,9 +316,7 @@ K.PrintF.1 stz PrintF.Cnt jsr SHARED.GetCharPtr2 beq .99 - ldx #PrintFTBL2.Cnt-1 - .12 cmp PrintFTBL2,x beq .19 dex @@ -350,22 +327,18 @@ K.PrintF.1 stz PrintF.Cnt jsr MATH.Hex2ACC32 bcs .99 - jsr SHARED.AddYToPtr2 - .14 lda ACC32 bra .20 - .19 lda PrintFTBL2.OUT,x .20 jsr PrintF.COut bcc .11 -*-------------------------------------- +*-------------------------------------- .99 bra PrintF.LocalCleanUp -*-------------------------------------- +*-------------------------------------- .8 ldx PrintF.hFILE beq .80 Writing to buffer, append \0 - >PUSHW PrintF.Cnt Writing to File/dev... >PUSHWI K.IOBuf @@ -377,7 +350,6 @@ K.PrintF.1 stz PrintF.Cnt bne .99 >RET 4 0=BLOCKING - .80 ldy PrintF.Cnt A=0, Writing to buffer, append \0 sta (pIOBuf),y @@ -393,7 +365,7 @@ PrintF.LocalCleanUp sta pStack CC pla plp -PrintF.LocalCleanUp.RTS +PrintF.LocalCleanUp.RTS rts *-------------------------------------- PrintF.LocalGetPtr @@ -414,7 +386,6 @@ PrintF.LocalGetByte sty PrintF.LocalGetByte+1 ply - * clc rts @@ -440,7 +411,6 @@ PrintFTBL2.OUT .HS 08.1B.0C.0A.0D.09.0B \b\e\f\n\r\t\v *-------------------------------------- PrintF.B jsr PrintF.LocalGetByte bcs PrintF.B.RTS - ldy #8 .1 asl @@ -449,7 +419,6 @@ PrintF.B jsr PrintF.LocalGetByte rol jsr PrintF.COut bcs .9 - pla dey bne .1 @@ -465,7 +434,6 @@ PrintF.D clc unsigned short (BYTE) ldy #1 bra PrintF.NUM - PrintF.II sec signed int .HS 90 BCC PrintF.DD clc unsigned int (WORD) @@ -480,9 +448,7 @@ PrintF.U clc unsigned long (DWORD) ldy #4 PrintF.NUM ror ACC32.Sign - ldx #0 - .1 jsr PrintF.LocalGetByte bcs PrintF.B.RTS sta ACC32,x @@ -518,33 +484,26 @@ PrintF.F clc cmp (pStack) bcc .1 bne PrintF.StrNum.RTS - .1 sta PrintF.LocalGetByte+1 tya sec +1 for bytecount byte adc pStack ldy pStack+1 A,Y = float - ldx #FPU.SETFAC jsr GP.ROMCALL - ldy #A2osX.NumStrBuf+1 FOUT.1 will do a DEY ldx #FPU.FOUT jsr GP.ROMCALL PrintF.StrNum ldy #0 - .2 lda A2osX.NumStrBuf,y beq .8 - iny - jsr PrintF.COut bcc .2 .9 rts - .8 clc PrintF.StrNum.RTS rts @@ -563,18 +522,13 @@ PrintF.SS ldy #$00 PSTR lda (ZPPtr1) if CSTR:last char=0, if PSTR:len=0 beq .8 - ldy .1+1 - .1 lda #$ff Self Modified bne .11 CSTR - tya PSTR cmp (ZPPtr1) len check beq .2 - .11 iny - lda (ZPPtr1),y beq .2 @@ -583,20 +537,15 @@ PrintF.SS ldy #$00 PSTR lda K.PrintF.PadL beq .1 - cpy K.PrintF.PadL bne .1 - .8 clc rts - .2 lda K.PrintF.PadL beq .8 - .3 cpy K.PrintF.PadL beq .8 - - lda K.PrintF.PadC + lda K.PrintF.PadC jsr PrintF.COut bcs .9 iny @@ -616,7 +565,6 @@ PrintF.HH jsr PrintF.LocalGetByte *-------------------------------------- PrintF.H jsr PrintF.LocalGetByte bcs PrintF.COut.RTS - PrintF.H.1 jsr MATH.AToHexAX jsr PrintF.COut bcs PrintF.COut.RTS @@ -626,19 +574,15 @@ PrintF.COut phy ldy PrintF.Cnt sta (pIOBuf),y ply - inc PrintF.Cnt bne .8 - lda PrintF.hFILE bne .9 inc pIOBuf+1 inc PrintF.Cnt+1 - .8 clc rts - .9 lda #E.BUF sec PrintF.COut.RTS rts @@ -649,12 +593,10 @@ K.PrintF.GetFormat ldy #1 lda (pStack),y sta ZPPtr2+1 - lda pStack inc inc sta pLocal - rts */-------------------------------------- * # fgets (BLOCKING) @@ -682,7 +624,6 @@ K.FGetS jsr PFT.CheckNodeA lda (pStack) sta ZPPtr2 s LO - ldy #1 lda (pStack),y sta ZPPtr2+1 s HI @@ -698,16 +639,13 @@ K.FGetS jsr PFT.CheckNodeA .1 jsr STDIO.Read.1 bcc .2 - cmp #MLI.E.EOF beq .9 tay bpl .9 IO error - inc NO DATA -> BLOCKING rts - .2 lda K.IOBuf cmp #C.LF Discard any leading LF beq .1 @@ -724,7 +662,6 @@ K.FGetS jsr PFT.CheckNodeA lda ZPPtr1+1 eor #$ff sta ZPPtr1+1 - .3 inc ZPPtr1 bne .4 inc ZPPtr1+1 @@ -736,14 +673,11 @@ K.FGetS jsr PFT.CheckNodeA lda K.IOBuf cmp #C.CR beq .8 - jsr SHARED.PutCharPtr2 bra .3 - .5 cmp #MLI.E.EOF beq .8 String terminated by EOF - - tay + tay bpl .9 I/O error lda ZPPtr2 NO DATA, but string not yet terminated @@ -867,7 +801,6 @@ K.SScanF jsr SHARED.SPtr2PPtr1 ptr2=String to Scan,Ptr1=format bra .1 .12 jsr SHARED.NextCharPtr2 Space.... - cmp (ZPPtr2) another one ? beq .12 bne .1 @@ -891,7 +824,6 @@ K.SScanF jsr SHARED.SPtr2PPtr1 ptr2=String to Scan,Ptr1=format bcs .9 sty ZPPtr3 sta ZPPtr3+1 - jsr .5 bcs .9 out of Ptr on stack @@ -1022,7 +954,7 @@ K.FClose jsr PFT.CheckNodeA jsr UNISTD.Close bcs K.FClose.RTS -.1 ldx #$ff SELF MODIFIED +.1 ldx #$ff SELF MODIFIED stz OF.Table.hFD-1,x lda OF.Table.hPath-1,x @@ -1120,10 +1052,8 @@ K.FSeek jsr PFT.CheckNodeA .11 lda (pFD) bne STDIO.IOERR - >PULLL ACC32 >PULLA whence - cmp #SEEK.END beq .30 bcs .98 @@ -1166,15 +1096,13 @@ K.FSeek jsr PFT.CheckNodeA bne .9 >MLICALL MLISETEOF bcc .82 - .9 rts .98 lda #E.BADARG .HS 2C bit abs .99 lda #E.FTB * sec -K.FSeek.RTS - rts +K.FSeek.RTS rts */-------------------------------------- * # FEOF * Test the end-of-file indicator for hFILE @@ -1196,7 +1124,6 @@ K.FEOF jsr PFT.CheckNodeA IO.EOF lda (pFD) tax jmp (.1,x) - .1 .DA IO.EOF.REG .DA STDIO.IOERR DIR .DA IO.EOF.CDEV @@ -1281,16 +1208,13 @@ K.Rename jsr PFT.CheckPathYA >MLICALL MLIRENAME rts - -.9 >RET 2 +.9 >RET 2 *-------------------------------------- * K.Buf256 = filepath * X = hFD *-------------------------------------- STDIO.NewHFile sta .4+1 Store hFD - ldx #1 - .1 lda OF.Table.hFD-1,x beq .2 @@ -1299,7 +1223,7 @@ STDIO.NewHFile sta .4+1 Store hFD bne .1 lda #E.OOH -* sec +* sec rts .2 stx .3+1 Store hFILE @@ -1320,12 +1244,10 @@ STDIO.NewHFile sta .4+1 Store hFD bcs .9 txa - .3 ldx #$ff SELF MODIFIED sta OF.Table.hPath-1,x .4 lda #$ff SELF MODIFIED sta OF.Table.hFD-1,x - txa hFILE clc diff --git a/SYS/KERNEL.S.STDIO2.S.txt b/SYS/KERNEL.S.STDIO2.S.txt index 69703605..d31fb453 100644 --- a/SYS/KERNEL.S.STDIO2.S.txt +++ b/SYS/KERNEL.S.STDIO2.S.txt @@ -3,7 +3,6 @@ NEW *-------------------------------------- K.PrintF2 >LDYAI K.IOBuf >STYA pIOBuf - ldy #S.PS.hStdOut lda (pPs),y sta PrintF.hFILE @@ -22,7 +21,6 @@ K.PrintF2 >LDYAI K.IOBuf K.FPrintf2 >LDYAI K.IOBuf >STYA pIOBuf - lda (pStack) Bytecount inc tay @@ -38,9 +36,7 @@ K.FPrintf2 >LDYAI K.IOBuf sta PrintF.hFILE bra K.PrintF2.1 - K.SPrintf2 stz PrintF.hFILE - lda (pStack) Bytecount inc tay @@ -70,23 +66,17 @@ K.PrintF2.1 sty PrintF2.Exit.Cnt+1 Total bytes to POP .22 cmp #'%' bne .10 - stz K.PrintF.PadL stz K.PrintF.PadC - lda (ZPPtr2) beq .7 end of format... print % and exit jsr ZP.IsDigit bcs .6 no digit....go check specifier - cmp #'0' ...a 0...mmm... padding char? bne .4 - sta K.PrintF.PadC - jsr SHARED.NextCharPtr2 skip 0 ... - lda (ZPPtr2) beq .7 @@ -95,12 +85,10 @@ K.PrintF2.1 sty PrintF2.Exit.Cnt+1 Total bytes to POP .4 jsr MATH.Dec2ACC32 bcs .99 - lda ACC32 sta K.PrintF.PadL lda K.PrintF.PadC bne .5 - lda #C.SPACE sta K.PrintF.PadC @@ -110,24 +98,19 @@ K.PrintF2.1 sty PrintF2.Exit.Cnt+1 Total bytes to POP beq .7 .6 ldx #PrintFTBL1.Cnt-1 do we have a %x command? - .61 cmp PrintFTBL1,x beq .62 dex bpl .61 - bra .20 unknown ... .62 jsr SHARED.NextCharPtr2 - txa yes, jmp to it! asl tax - jsr PrintF2.ESC .11 bcc .1 bra .99 - .7 lda #'%' bra .20 *-------------------------------------- @@ -136,9 +119,7 @@ K.PrintF2.1 sty PrintF2.Exit.Cnt+1 Total bytes to POP jsr SHARED.GetCharPtr2 beq .99 - ldx #PrintFTBL2.Cnt-1 - .12 cmp PrintFTBL2,x beq .19 dex @@ -149,22 +130,18 @@ K.PrintF2.1 sty PrintF2.Exit.Cnt+1 Total bytes to POP jsr MATH.Hex2ACC32 bcs .99 - jsr SHARED.AddYToPtr2 - .14 lda ACC32 bra .20 - .19 lda PrintFTBL2.OUT,x .20 jsr PrintF.COut bcc .11 -*-------------------------------------- +*-------------------------------------- .99 bra PrintF2.Exit -*-------------------------------------- +*-------------------------------------- .8 ldx PrintF.hFILE beq .80 Writing to buffer, append \0 - >PUSHW PrintF.Cnt Writing to File/dev... >PUSHWI K.IOBuf @@ -176,7 +153,6 @@ K.PrintF2.1 sty PrintF2.Exit.Cnt+1 Total bytes to POP bne .99 >RET 4 0=BLOCKING - .80 ldy PrintF.Cnt A=0, Writing to buffer, append \0 sta (pIOBuf),y @@ -192,7 +168,7 @@ PrintF2.Exit.Cnt sta pStack pla plp -PrintF2.Exit.RTS +PrintF2.Exit.RTS rts *-------------------------------------- PrintF2.LocalGetByte @@ -220,7 +196,6 @@ PrintF2.ESC jmp (.1,x) *-------------------------------------- PrintF2.B jsr PrintF2.LocalGetByte bcs PrintF2.B.RTS - ldy #8 .1 asl @@ -229,7 +204,6 @@ PrintF2.B jsr PrintF2.LocalGetByte rol jsr PrintF.COut bcs .9 - pla dey bne .1 @@ -245,7 +219,6 @@ PrintF2.D clc unsigned short (BYTE) ldy #1 bra PrintF2.NUM - PrintF2.II sec signed int .HS 90 BCC PrintF2.DD clc unsigned int (WORD) @@ -260,9 +233,7 @@ PrintF2.U clc unsigned long (DWORD) ldy #4 PrintF2.NUM ror ACC32.Sign - jsr MATH.ACC32ZERO - .1 jsr PrintF2.LocalGetByte bcs PrintF2.B.RTS @@ -292,29 +263,23 @@ PrintF2.F clc * sec adc pStack ldy pStack+1 A,Y = float - ldx #FPU.SETFAC jsr GP.ROMCALL - ldy #A2osX.NumStrBuf+1 FOUT.1 will do a DEY ldx #FPU.FOUT jsr GP.ROMCALL PrintF2.StrNum ldy #0 - .2 lda A2osX.NumStrBuf,y beq .8 - iny - jsr PrintF.COut bcc .2 .9 rts - .8 clc rts -PrintF2.StrNum.Err +PrintF2.StrNum.Err lda #E.STACK sec rts @@ -328,25 +293,19 @@ PrintF2.SS ldy #$00 PSTR jsr PrintF2.LocalGetByte bcs .9 sta ZPPtr1+1 - jsr PrintF2.LocalGetByte bcs .9 sta ZPPtr1 lda (ZPPtr1) if CSTR:last char=0, if PSTR:len=0 beq .8 - ldy .1+1 - .1 lda #$ff Self Modified bne .11 CSTR - tya PSTR cmp (ZPPtr1) len check beq .2 - .11 iny - lda (ZPPtr1),y beq .2 @@ -355,20 +314,15 @@ PrintF2.SS ldy #$00 PSTR lda K.PrintF.PadL beq .1 - cpy K.PrintF.PadL bne .1 - .8 clc rts - .2 lda K.PrintF.PadL beq .8 - .3 cpy K.PrintF.PadL beq .8 - - lda K.PrintF.PadC + lda K.PrintF.PadC jsr PrintF.COut bcs .9 iny @@ -388,12 +342,10 @@ PrintF2.HH jsr PrintF2.LocalGetByte *-------------------------------------- PrintF2.H jsr PrintF2.LocalGetByte bcs PrintF2.COut.RTS - PrintF2.H.1 jsr MATH.AToHexAX jsr PrintF.COut bcs PrintF2.COut.RTS txa - jmp PrintF.COut PrintF2.COut.RTS rts diff --git a/SYS/KERNEL.S.STDLIB.txt b/SYS/KERNEL.S.STDLIB.txt index cb220c15..2dcd0605 100644 --- a/SYS/KERNEL.S.STDLIB.txt +++ b/SYS/KERNEL.S.STDLIB.txt @@ -23,7 +23,7 @@ K.strtof pha ldy #1 lda TXTPTR+1 sta (ZPPtr1),y - rts + rts */-------------------------------------- * # AToF * Convert String to 40 bits Float @@ -37,12 +37,10 @@ K.strtof pha * On stack (float) *\-------------------------------------- K.AToF >STYA TXTPTR Ptr to source string - lda pStack sec sbc #5 sta pStack - jsr CHARGOT ldx #FPU.FIN @@ -78,8 +76,7 @@ K.StrToUL clc Unsigned adc ZPPtr2+1 ldy #1 sta (ZPPtr1),y - -K.StrToUL.rts rts + K.StrToUL.rts rts */-------------------------------------- * # atol * Convert String to 32 bits long @@ -96,10 +93,8 @@ K.AToL >STYA ZPPtr2 C-String in Ptr2, Dst buffer in Ptr1 * lda #10 base 10 sec signed - K.AToL.I jsr MATH.Dec2ACC32 bcs .9 - ldx #3 .3 lda ACC32,x @@ -107,10 +102,8 @@ K.AToL.I jsr MATH.Dec2ACC32 dex bpl .3 tya Y = A = Count processed - -* clc - -.9 rts +* clc.9 + rts */-------------------------------------- * # atoi * Convert String to 16 bits int @@ -126,12 +119,10 @@ K.AToL.I jsr MATH.Dec2ACC32 K.atoi >STYA ZPPtr2 * lda #10 base 10 sec signed - jsr MATH.Dec2ACC32 bcs .9 - >LDYA ACC32 -.9 +.9 K.atoi.RTS rts */-------------------------------------- * # RealPath @@ -158,33 +149,25 @@ STDLIB.realpath.I ldx #SYS.ExpandStr jsr K.SYSCALL2 bcs K.atoi.RTS - >STYA ZPPtr1 stx .99+1 save expanded buffer hMem - ldx #$ff lda (ZPPtr1) beq .1 - cmp #'/' full path starting with '/'? beq .3 yes, do not append to current prefix - .1 ldy #S.PS.hCWD lda (pPs),y jsr K.GetMemPtr >STYA ZPPtr2 - ldy #$ff - .2 iny inx lda (ZPPtr2),y sta K.Buf256,x bne .2 - dex - .3 ldy #$ff .4 iny @@ -192,7 +175,6 @@ STDLIB.realpath.I lda (ZPPtr1),y sta K.Buf256,x bne .4 - dex beq .81 we have '/'....nothing to do... *-------------------------------------- @@ -201,15 +183,12 @@ STDLIB.realpath.I ldx #1 skip leading / lda K.Buf256,x - .5 ldy #0 dot counter=0 .6 cmp #'/' beq .8 - cmp #'.' bne .7 - iny .HS 2C BIT ABS, skip "LDY #0" .7 ldy #0 not a dot....reset dot counter @@ -217,25 +196,19 @@ STDLIB.realpath.I inx lda K.Buf256,x bne .6 we have /dir\0 - .8 tya beq .80 Y was 0....nothing to do... dey "./" ? bne .9 no.. - lda K.Buf256-2,x cmp #'/' "/./" ? bne .80 - dex dex jsr K.RealPath.RemoveAtX we found "/./", remove,useless.... - bra .80 - .9 dey "../" ? bne .99 ".../" ??!!...mmm...syntax error - lda K.Buf256-3,x cmp #'/' "/../" ? bne .80 @@ -243,20 +216,16 @@ STDLIB.realpath.I dex dex dex - txa we found "/../" beq .99 at the beginning of string...cannot remove /dir/.. jsr K.RealPath.RemoveAtX remove "/.." .10 dex - lda K.Buf256,x go to "/dir" cmp #'/' bne .10 - jsr K.RealPath.RemoveAtX ...remove "/dir" - .80 inx lda K.Buf256,x bne .5 @@ -268,10 +237,8 @@ STDLIB.realpath.I >LDYAI K.Buf256 ldx #SYS.StrDup BANK 2 jmp K.SYSCALL2 - .88 clc rts - .99 lda #$ff SELF MODIFIED jsr K.FreeMem @@ -282,24 +249,19 @@ STDLIB.realpath.I K.RealPath.RemoveAtX txa X = "/something" tay - .1 iny lda K.Buf256,y beq .2 found /something\0 cmp #'/' bne .1 found /something/ - .2 phx save X for exit - .3 iny K.Buf256,y=/ or 0 inx lda K.Buf256-1,y sta K.Buf256-1,x bne .3 - txa bne .8 - lda #'/' Make sure we have a least '/' in the buffer sta K.Buf256 stz K.Buf256+1 diff --git a/SYS/KERNEL.S.STRING.txt b/SYS/KERNEL.S.STRING.txt index a71a4f43..22c566c8 100644 --- a/SYS/KERNEL.S.STRING.txt +++ b/SYS/KERNEL.S.STRING.txt @@ -15,7 +15,6 @@ K.StrLen >STYA .1+1 ldy #0 tya - .1 ldx $ffff,y SELF MODIFIED beq .8 iny @@ -23,7 +22,6 @@ K.StrLen >STYA .1+1 inc inc .1+2 bra .1 - .8 clc rts */-------------------------------------- @@ -57,16 +55,14 @@ K.StrCat sec K.StrCpy clc pha phy - jsr SHARED.SPtr1PPtr2 bcc .2 .1 jsr SHARED.GetCharPtr1 bne .1 - + .2 ldy #0 - .3 lda (ZPPtr2),y sta (ZPPtr1),y beq K.StrDup.8 @@ -88,10 +84,8 @@ K.StrCpy clc *\-------------------------------------- K.StrDup >STYA .1+1 >STYA .4+1 - lda #0 tay - .1 ldx $ffff,y beq .2 iny @@ -99,34 +93,27 @@ K.StrDup >STYA .1+1 inc inc .1+2 bne .1 - .2 iny Add one for ending 0 bne .3 inc - .3 jsr K.GetMem bcs K.StrDup.RTS >STYA .5+1 - phy pha - ldy #0 - .4 lda $ffff,y .5 sta $ffff,y beq K.StrDup.8 iny bne .4 - inc .4+2 inc .5+2 bne .4 - K.StrDup.8 pla ply clc -K.StrDup.RTS rts +K.StrDup.RTS rts */-------------------------------------- * # StrUpr/StrLwr * Convert string to UPPERCASE/lowercase @@ -146,15 +133,11 @@ K.StrUpr ldx #0 .HS 2C bit abs K.StrLwr ldx #2 >STYA ZPPtr1 - phy pha save Y,A to restore them at exit - ldy #0 - .1 lda (ZPPtr1),y beq K.StrDup.8 - cmp .9,x bcc .2 cmp .9+1,x @@ -205,16 +188,13 @@ K.StrCaseCmp clc jsr SHARED.SPtr1PPtr2 ldy #0 - .1 lda (ZPPtr1),y beq .7 jsr K.StrCaseCmp.toUpper sta .2+1 - lda (ZPPtr2),y beq .9 jsr K.StrCaseCmp.toUpper - .2 eor #$ff SELF MODIFIED bne .9 iny @@ -226,23 +206,18 @@ K.StrCaseCmp clc .7 lda (ZPPtr2),y bne .9 tay - .8 clc rts - .9 sec lda (ZPPtr1),y sbc (ZPPtr2),y - ldy #0 - - sec + sec rts *-------------------------------------- K.StrCaseCmp.toUpper bcs .9 - cmp #'a' bcc .9 cmp #'z'+1 @@ -251,7 +226,7 @@ K.StrCaseCmp.toUpper .1 clc -.9 rts +.9 rts *-------------------------------------- MAN SAVE USR/SRC/SYS/KERNEL.S.STRING diff --git a/SYS/KERNEL.S.TERM.txt b/SYS/KERNEL.S.TERM.txt index f7a97706..a2310a62 100644 --- a/SYS/KERNEL.S.TERM.txt +++ b/SYS/KERNEL.S.TERM.txt @@ -38,14 +38,11 @@ DRV.TERM cld .DA DRV.TERM.WRITE *-------------------------------------- DRV.TERM.STATUS jsr DRV.TERM.GetIOCTLBufCntDCB - ldy #S.IOCTL.STATCODE lda (ZPIOCTL),y beq .1 - cmp #S.IOCTL.STATCODE.GETDIB bne .3 - ldy #S.DIB-1 .HS 2C bit abs .1 ldy #3 @@ -54,14 +51,11 @@ DRV.TERM.STATUS jsr DRV.TERM.GetIOCTLBufCntDCB sta (ZPBufPtr),y dey bne .2 - ldy #S.DCB.TTY.STATUS lda (ZPDCBPtr),y sta (ZPBufPtr) - clc rts - .3 cmp #S.IOCTL.STATCODE.EOF bne .9 @@ -69,9 +63,7 @@ DRV.TERM.STATUS jsr DRV.TERM.GetIOCTLBufCntDCB lda (ZPDCBPtr),y and #S.DIB.S.OPENED beq DRV.TERM.OPEN.E - jsr DRV.TERM.CURBLNK - ldy #S.DCB.TTY.OUTTAIL lda (ZPDCBPtr),y iny @@ -83,7 +75,6 @@ DRV.TERM.STATUS jsr DRV.TERM.GetIOCTLBufCntDCB bpl .7 bit OPENAPPLE bmi .7 - bit KBD bmi .8 @@ -92,7 +83,6 @@ DRV.TERM.STATUS jsr DRV.TERM.GetIOCTLBufCntDCB .8 lda #0 clc rts - .9 lda #MLI.E.BADCTL sec rts @@ -105,41 +95,32 @@ DRV.TERM.OPEN tax DEV.ID in A lda (ZPDCBPtr),y bit #S.DIB.S.OPENED beq DRV.TERM.OPEN.1 - DRV.TERM.OPEN.E lda #MLI.E.OPEN sec rts - -DRV.TERM.OPEN.1 txa - +DRV.TERM.OPEN.1 txa ldx #0 .2 ldy A2osX.SCRNDEVS,x beq .3 - inx cpx #K.SCR.MAX bne .2 - lda #E.OOH sec rts - .3 sta A2osX.SCRNDEVS,x ldy #S.DCB.TTY.DEVID sta (ZPDCBPtr),y - ldy #S.DCB.TTY.STATUS lda (ZPDCBPtr),y ora #S.DIB.S.OPENED ora DRV.TERM.DIB+S.DIB.S sta (ZPDCBPtr),y - jsr RESET *-------------------------------------- DRV.TERM.CONTROL jsr DRV.TERM.GetDCB - ldy #S.DCB.TTY.DEVID lda (ZPDCBPtr),y sta A2osX.ASCREEN @@ -147,7 +128,6 @@ DRV.TERM.CONTROL sta SETTEXT jsr DRV.TERM.SCRCPY - lda #0 ldy #S.DCB.TTY.bCURON @@ -155,7 +135,6 @@ DRV.TERM.CONTROL ldy #S.DCB.TTY.bTITLE sta (ZPDCBPtr),y - clc rts *-------------------------------------- @@ -165,46 +144,36 @@ DRV.TERM.CLOSE jsr DRV.TERM.GetDCB lda (ZPDCBPtr),y bit #S.DIB.S.OPENED beq .9 - lda DRV.TERM.DIB+S.DIB.S sta (ZPDCBPtr),y - ldx #0 ldy #S.DCB.TTY.DEVID - .1 lda A2osX.SCRNDEVS,x cmp (ZPDCBPtr),y bne .2 stz A2osX.SCRNDEVS,x - .2 inx cpx #K.SCR.MAX bne .1 - clc rts - .9 lda #MLI.E.IO sec rts *-------------------------------------- DRV.TERM.READ jsr DRV.TERM.GetIOCTLBufCntDCB - bit bActive is screen active? bpl .6 no....go check flush... - jsr DRV.TERM.CURBLNK lda OPENAPPLE bpl .1 - lda KBD bmi .6 Open apple key, not for us... jsr DRV.TERM.Title.ON bra .6 - .1 jsr DRV.TERM.Title.OFF lda KBD @@ -214,12 +183,10 @@ DRV.TERM.READ jsr DRV.TERM.GetIOCTLBufCntDCB and #$7F ldx #KeyRemapped.cnt-1 - .2 cmp KeyRemapped,x beq .3 dex bpl .2 - cmp #C.CR bne .21 @@ -227,58 +194,43 @@ DRV.TERM.READ jsr DRV.TERM.GetIOCTLBufCntDCB ldy #S.DCB.TTY.bCRLF lda (ZPDCBPtr),y bpl .7 - lda #C.LF - .21 jsr Char.Out.Put no remap....send char.... bra .7 and flush - .3 lda KeyRemapped.Tbl,x pha - lda #C.ESC jsr Char.Out.Put - lda #'[' jsr Char.Out.Put - pla jsr Char.Out.Put bra .7 .6 ldy #S.DCB.TTY.OUTTAIL lda (ZPDCBPtr),y - iny - cmp (ZPDCBPtr),y OUTHEAD - + iny cmp (ZPDCBPtr),y OUTHEAD beq .9 no char in output buffer... - .7 stz .8+1 - .70 inc ZPCount bne .71 inc ZPCount+1 beq .8 - .71 jsr Char.Out.Get bcs .8 - ldy .8+1 sta (ZPBufPtr),y iny sty .8+1 bra .70 - .8 lda #$ff SELF MODIFIED ldy #S.IOCTL.BYTECNT sta (ZPIOCTL),y iny lda #0 sta (ZPIOCTL),y - clc rts - .9 lda #E.NODATA * sec rts @@ -286,16 +238,13 @@ DRV.TERM.READ jsr DRV.TERM.GetIOCTLBufCntDCB DRV.TERM.WRITE jsr DRV.TERM.GetIOCTLBufCntDCB jsr DRV.TERM.CUROFF - .1 inc ZPCount bne .2 inc ZPCount+1 beq .8 - .2 ldy #S.DCB.TTY.MODE lda (ZPDCBPtr),y tax - jsr .3 inc ZPBufPtr @@ -311,7 +260,6 @@ DRV.TERM.WRITE jsr DRV.TERM.GetIOCTLBufCntDCB .DA DRV.TERM.IAC .DA DRV.TERM.G0 .DA DRV.TERM.G1 - .8 clc rts *-------------------------------------- @@ -319,15 +267,12 @@ DRV.TERM.COUT lda (ZPBufPtr) cmp #IAC bne .1 - lda #S.DCB.TTY.MODE.IAC jmp DRV.TERM.SETMODE - .1 cmp #C.DEL beq DRV.TERM.COUT.DEL cmp #C.SPACE bcs .8 - ldx #CtrlChars.Cnt-1 .2 cmp CtrlChars,x @@ -336,7 +281,6 @@ DRV.TERM.COUT lda (ZPBufPtr) bpl .2 clc rts - .3 txa asl tax @@ -351,7 +295,6 @@ DRV.TERM.COUT lda (ZPBufPtr) .DA DRV.TERM.COUT.SI .DA DRV.TERM.COUT.FS .DA DRV.TERM.COUT.ESC - .8 jsr SetCharAtCurPos *-------------------------------------- DRV.TERM.COUT.FS @@ -365,11 +308,9 @@ DRV.TERM.COUT.FS ldy #S.DCB.TTY.bLINEWRAP lda (ZPDCBPtr),y bpl DRV.TERM.COUT.BS.8 - ldy #S.DCB.TTY.CH lda #0 sta (ZPDCBPtr),y - jmp DRV.TERM.COUT.LF.1 *-------------------------------------- DRV.TERM.COUT.BS @@ -409,14 +350,12 @@ DRV.TERM.COUT.DEL .1 iny S.DCB.TTY.CV lda (ZPDCBPtr),y beq DRV.TERM.COUT.BS.8 - dec sta (ZPDCBPtr),y dey lda #79 sta (ZPDCBPtr),y S.DCB.TTY.CH - .3 lda #$20 jmp SetCharAtCurPos *-------------------------------------- @@ -454,12 +393,10 @@ DRV.TERM.COUT.ESC DRV.TERM.ESC lda (ZPBufPtr) y = #S.DCB.TTY.MODE ldx #EscCodes.Cnt-1 - .2 cmp EscCodes,x beq .3 dex bpl .2 - lda #0 bra DRV.TERM.SETMODE @@ -468,12 +405,10 @@ DRV.TERM.ESC lda (ZPBufPtr) y = #S.DCB.TTY.MODE plx lda EscModes,x bra DRV.TERM.SETMODE - .4 txa asl tax jmp (.5,x) - .5 .DA Scroll.Dn M .DA Scroll.Up D .DA RESET c @@ -488,7 +423,7 @@ DRV.TERM.SETMODE lda #S.DCB.TTY.INBUFFER sta (ZPDCBPtr),y clc -DRV.TERM.SETMODE.RTS +DRV.TERM.SETMODE.RTS rts *-------------------------------------- DRV.TERM.CSI ldy #S.DCB.TTY.INBUFFER @@ -496,24 +431,19 @@ DRV.TERM.CSI ldy #S.DCB.TTY.INBUFFER inc sta (ZPDCBPtr),y tay - lda (ZPBufPtr) sta (ZPDCBPtr),y cmp #64 End of Seq ? bcs DRV.TERM.CSI.Exec - cpy #S.DCB.TTY.INBUFFER.MAX-1 buffer full? bne .8 - jsr RESET.MODE - .8 clc rts DRV.TERM.CSI.Exec stz CsiHeader stz CsiParamCnt - lda #S.DCB.TTY.INBUFFER+1 EscSeq Ptr clc adc ZPDCBPtr @@ -521,20 +451,17 @@ DRV.TERM.CSI.Exec lda /S.DCB.TTY.INBUFFER+1 adc ZPDCBPtr+1 sta ZPPtr2+1 - lda (ZPPtr2) cmp #'?' bne .2 sta CsiHeader - .1 jsr SHARED.NextCharPtr2 .2 jsr MATH.Dec2ACC32 bcs .5 jsr SHARED.AddYToPtr2 - lda #255 ldx ACC32+1 bne .3 @@ -550,17 +477,13 @@ DRV.TERM.CSI.Exec beq .1 .5 jsr RESET.MODE - lda (ZPPtr2) - ldx #CsiCodes.Cnt-1 .6 cmp CsiCodes,x beq .7 - dex bne .6 - clc rts @@ -585,13 +508,11 @@ Csi.ResetMode clc ldx CsiParamCnt beq .99 - dex bne .99 ldx CsiHeader lda CsiParams - php cmp #20 bCRLF @@ -601,33 +522,28 @@ Csi.ResetMode clc ldy #S.DCB.TTY.bCRLF bra .8 - .1 cmp #7 bne .98 cpx #'?' bne .98 - ldy #S.DCB.TTY.bLINEWRAP - .8 plp ror sta (ZPDCBPtr),y clc rts -.98 plp +.98 plp .99 clc rts *-------------------------------------- Csi.DispAttr ldx CsiParamCnt bne .1 - jmp RESETATTR .1 lda CsiParams-1,x bne .2 - jsr RESETATTR bra .7 @@ -636,7 +552,6 @@ Csi.DispAttr ldx CsiParamCnt .3 ldy #S.DCB.TTY.bNORMAL sta (ZPDCBPtr),y - .7 dex bne .1 @@ -651,18 +566,14 @@ Csi.Query ldx CsiParamCnt lda CsiParams cmp #6 bne .8 - lda #C.ESC jsr Char.Out.Put - lda #'[' jsr Char.Out.Put - ldy #S.DCB.TTY.CV lda (ZPDCBPtr),y inc jsr Decimal.Out - lda #';' jsr Char.Out.Put @@ -670,34 +581,27 @@ Csi.Query ldx CsiParamCnt lda (ZPDCBPtr),y inc jsr Decimal.Out - lda #'R' jsr Char.Out.Put - .8 clc rts *-------------------------------------- Csi.Scroll ldy CsiParamCnt bne .1 - lda #0 ldx #23 bra .8 - .1 cpy #2 bne .9 - lda CsiParams dec ldx CsiParams+1 dex - .8 ldy #S.DCB.TTY.SCROLLTOP sta (ZPDCBPtr),y iny S.DCB.TTY.SCROLLBOT txa sta (ZPDCBPtr),y - .9 clc rts *-------------------------------------- @@ -705,7 +609,6 @@ Csi.EraseScreen ldx CsiParamCnt bne .1 jmp DRV.TERM.CLRSCR.DN - .1 lda CsiParams cmp #1 bne .2 @@ -722,7 +625,6 @@ Csi.EraseLine ldx CsiParamCnt bne .1 jmp CLREOL - .1 lda CsiParams cmp #1 bne .2 @@ -737,48 +639,36 @@ Csi.EraseLine ldx CsiParamCnt *-------------------------------------- Csi.Home lda CsiParamCnt bne .1 - ldy #S.DCB.TTY.CH sta (ZPDCBPtr),y iny S.DCB.TTY.CV sta (ZPDCBPtr),y clc rts - .1 ldx #1 lda CsiParams beq .2 - ldx #24 cmp #24 bcs .2 - tax - .2 dex txa ldy #S.DCB.TTY.CV sta (ZPDCBPtr),y - dec CsiParamCnt beq Csi.Home.8 - ldx #1 lda CsiParams+1 beq .3 - ldx #80 cmp #80 - bcs .3 - tax - .3 dex txa ldy #S.DCB.TTY.CH sta (ZPDCBPtr),y - Csi.Home.8 clc rts *-------------------------------------- @@ -790,8 +680,7 @@ DRV.TERM.G1 ldy #S.DCB.TTY.bG1ALT cmp #'0' beq .1 clc - -.1 ror +.1 ror sta (ZPDCBPtr),y lda #0 jmp DRV.TERM.SETMODE @@ -801,10 +690,8 @@ DRV.TERM.IAC ldy #S.DCB.TTY.INBUFFER inc sta (ZPDCBPtr),y tay - lda (ZPBufPtr) sta (ZPDCBPtr),y - cpy #S.DCB.TTY.INBUFFER+1 CMD ? beq Csi.Home.8 yes, wait for additional bytes @@ -817,13 +704,10 @@ DRV.TERM.IAC ldy #S.DCB.TTY.INBUFFER cmp #SE bne Csi.Home.8 wait for ending SE....keep bIACMode bra COUT.IAC.SB - ldy #S.DCB.TTY.INBUFFER+1 lda (ZPDCBPtr),y get back CMD - .1 cmp #IAC beq COUT.IAC.SB.9 - sec sbc #WILL bcc COUT.IAC.SB.9 @@ -845,14 +729,11 @@ COUT.IAC.SB ldy #S.DCB.TTY.INBUFFER+2 cmp #TELOPT.TTYPE bne COUT.IAC.SB.9 - iny lda (ZPDCBPtr),y cmp #SB.SEND bne COUT.IAC.SB.9 - ldx #0 - .1 lda SB.IS.TTYPE,x jsr Char.Out.Put inx @@ -867,19 +748,15 @@ COUT.IAC.WILL ldx #WILLDO.CNT-1 beq .7 dex bpl .1 - ldx #WILLDONT.CNT-1 .2 cmp WILLDONT,x beq .8 dex bpl .2 - bra COUT.IAC.EXIT - .7 ldx #DO .HS 2C BIT ABS - .8 ldx #DONT bra COUT.IAC.SendAX @@ -890,19 +767,15 @@ COUT.IAC.DO ldx #DOWILL.CNT-1 beq .7 dex bpl .1 - ldx #DOWONT.CNT-1 .2 cmp DOWONT,x beq .8 dex bpl .2 - bra COUT.IAC.EXIT - .7 ldx #WILL .HS 2C BIT ABS - .8 ldx #WONT *-------------------------------------- COUT.IAC.SendAX @@ -914,7 +787,6 @@ COUT.IAC.SendAX jsr Char.Out.Put pla jsr Char.Out.Put - COUT.IAC.WONT COUT.IAC.DONT @@ -926,13 +798,11 @@ RESET.MODE lda #0 rts *-------------------------------------- RESET ldy #S.DCB.TTY.MODE - .1 lda RESET.VALUES-S.DCB.TTY.MODE,y sta (ZPDCBPtr),y iny cpy #S.DCB.TTY.INBUFFER+1 bne .1 - jmp DRV.TERM.CLRSCR *-------------------------------------- RESETATTR lda #$80 @@ -949,7 +819,6 @@ ENQ ldx #0 inx cpx #ENQ.String.Len bne .1 - .8 clc rts *-------------------------------------- @@ -957,20 +826,16 @@ DRV.TERM.COUT.LF ldy #S.DCB.TTY.bCRLF lda (ZPDCBPtr),y bpl DRV.TERM.COUT.LF.1 - jsr DRV.TERM.COUT.CR - DRV.TERM.COUT.LF.1 ldy #S.DCB.TTY.CV lda (ZPDCBPtr),y ldy #S.DCB.TTY.SCROLLBOT cmp (ZPDCBPtr),y beq SCROLL.UP - inc ldy #S.DCB.TTY.CV sta (ZPDCBPtr),y - clc rts *-------------------------------------- @@ -982,7 +847,6 @@ SCROLL.UP ldy #S.DCB.TTY.SCROLLTOP .1 jsr DRV.TERM.SETUP.L1X inx - jsr DRV.TERM.COPY.XtoL1 txa @@ -998,7 +862,6 @@ CLRSOL ldy #S.DCB.TTY.CH lda (ZPDCBPtr),y tax End ldy #0 Start - bra CLR CLREOL ldy #S.DCB.TTY.CH @@ -1008,25 +871,19 @@ CLREOL ldy #S.DCB.TTY.CH CLR stx .1+1 Save End phy - ldy #S.DCB.TTY.CV lda (ZPDCBPtr),y tax - ply - .1 cpy #$ff Self Modified beq .8 - phy - lda #" " jsr SetCharAtYX X unmodified ply iny bra .1 - .8 clc rts *-------------------------------------- @@ -1034,11 +891,9 @@ SCROLL.DN ldy #S.DCB.TTY.SCROLLBOT lda (ZPDCBPtr),y tax - .1 jsr DRV.TERM.SETUP.L1X dex - jsr DRV.TERM.COPY.XtoL1 txa @@ -1052,7 +907,6 @@ SCROLL.DN ldy #S.DCB.TTY.SCROLLBOT DRV.TERM.CURBLNK bit bActive bpl .9 - lda A2osX.TIMER16 and #CURSOR.BLINK.SPEED ldy #S.DCB.TTY.bCURON @@ -1063,12 +917,10 @@ DRV.TERM.CURBLNK DRV.TERM.CUROFF bit bActive bpl DRV.TERM.CURBLNK.RTS - ldy #S.DCB.TTY.bCURON lda (ZPDCBPtr),y beq DRV.TERM.CURBLNK.RTS - -DRV.TERM.CURBLNK.1 +DRV.TERM.CURBLNK.1 lda (ZPDCBPtr),y bne DRV.TERM.CURBLNK.OFF @@ -1078,14 +930,11 @@ DRV.TERM.CURBLNK.1 and #$80 eor #" " bra DRV.TERM.CURBLNK.SET - DRV.TERM.CURBLNK.OFF jsr GetCharAtCurPos bcs DRV.TERM.CURBLNK.RTS Out of screen - DRV.TERM.CURBLNK.SET jsr SetCharAtY.SCR - ldy #S.DCB.TTY.bCURON lda (ZPDCBPtr),y eor #CURSOR.BLINK.SPEED @@ -1096,11 +945,8 @@ DRV.TERM.CURBLNK.RTS Decimal.Out jsr MATH.A2STR10NP ldx #0 - .1 lda A2osX.NumStrBuf,x - beq DRV.TERM.CURBLNK.RTS - inx jsr Char.Out.Put bra .1 @@ -1109,29 +955,22 @@ Char.Out.Put pha save char ldy #S.DCB.TTY.OUTHEAD lda (ZPDCBPtr),y - pha save actual HEAD inc - cmp #S.DCB.TTY.OUTBUFFER.MAX bne .1 - lda #S.DCB.TTY.OUTBUFFER .1 dey OUTTAIL - cmp (ZPDCBPtr),y HEAD+1 = TAIL ? beq .9 CS, full! - iny sta (ZPDCBPtr),y new head - ply old head pla sta (ZPDCBPtr),y clc rts - .9 pla pla rts @@ -1141,25 +980,20 @@ Char.Out.Get ldy #S.DCB.TTY.OUTTAIL iny OUTHEAD cmp (ZPDCBPtr),y beq .9 CS - tay lda (ZPDCBPtr),y pha - tya inc cmp #S.DCB.TTY.OUTBUFFER.MAX bne .1 - lda #S.DCB.TTY.OUTBUFFER .1 ldy #S.DCB.TTY.OUTTAIL sta (ZPDCBPtr),y - pla clc - -.9 rts +.9 rts *-------------------------------------- DRV.TERM.GetIOCTLBufCntDCB >STYA ZPIOCTL @@ -1172,7 +1006,6 @@ DRV.TERM.GetIOCTLBufCntDCB sta ZPBufPtr+1 iny #S.IOCTL.BYTECNT - lda (ZPIOCTL),y eor #$ff sta ZPCount @@ -1201,10 +1034,8 @@ DRV.TERM.Title.ON ldy #S.DCB.TTY.bTITLE lda (ZPDCBPtr),y bmi DRV.TERM.Title.RTS - lda #$ff sta (ZPDCBPtr),y - ldy #S.DCB.TTY.DEVID lda (ZPDCBPtr),y tax @@ -1216,20 +1047,15 @@ DRV.TERM.Title.ON adc /S.FD.DEV >STYA ZPTmpWord - ldx #0 jsr DRV.TERM.SETUP.L1X.SCR - ldy #0 - .1 lda (ZPTmpWord),y beq .3 cmp #$40 bcc .2 - cmp #$60 bcs .2 - and #$1F remap UPPERCASE .2 phy @@ -1237,7 +1063,6 @@ DRV.TERM.Title.ON ply iny bne .1 - .3 lda #C.SPACE .4 phy @@ -1253,7 +1078,6 @@ DRV.TERM.Title.OFF ldy #S.DCB.TTY.bTITLE lda (ZPDCBPtr),y bpl DRV.TERM.Title.RTS - lda #$0 sta (ZPDCBPtr),y jmp DRV.TERM.LINE0CPY @@ -1264,12 +1088,10 @@ DRV.TERM.SETUP.L1X clc adc BUF.BASEL,x sta ZPBufBaseL1 - iny lda (pFD),y adc BUF.BASEH,x sta ZPBufBaseL1+1 - bit bActive bpl DRV.TERM.SETUP.L1X.8 @@ -1330,7 +1152,6 @@ RESET.VALUES .DA #0 S.DCB.TTY.MODE .DA #$80 S.DCB.TTY.bCRLF .DA #0 - .DA #0 S.DCB.TTY.bG0G1 .DA #0 S.DCB.TTY.bG0ALT .DA #$80 S.DCB.TTY.bG1ALT diff --git a/SYS/KERNEL.S.TERMLC.txt b/SYS/KERNEL.S.TERMLC.txt index 4fd88823..11d5381f 100644 --- a/SYS/KERNEL.S.TERMLC.txt +++ b/SYS/KERNEL.S.TERMLC.txt @@ -6,55 +6,44 @@ DRV.TERM.CLRSCR.DN sta (ZPDCBPtr),y tax bra DRV.TERM.CLRSCR.1 - DRV.TERM.CLRSCR.UP ldx #0 ldy #S.DCB.TTY.CV sta (ZPDCBPtr),y tay bra DRV.TERM.CLRSCR.2 - DRV.TERM.CLRSCR ldx #0 DRV.TERM.CLRSCR.1 ldy #24 -DRV.TERM.CLRSCR.2 +DRV.TERM.CLRSCR.2 sty .1+1 sta SET80STORE - .1 cpx #$ff SELF MODIFIED beq .9 - jsr DRV.TERM.SETUP.L1X - lda #" " bit bActive bpl .4 - sta SETPAGE2 jsr .7 sta CLRPAGE2 jsr .7 - .4 sta SETWRITEAUX ldy #79 - .5 sta (ZPBufBaseL1),y dey bpl .5 sta CLRWRITEAUX - inx bra .1 - .7 ldy #39 - .8 sta (ZPScrBaseL1),y dey bpl .8 @@ -72,44 +61,29 @@ DRV.TERM.SCRCPY ldx #23 clc adc BUF.BASEL,x sta .80+1 - iny lda (pFD),y adc BUF.BASEH,x sta .80+2 - jsr DRV.TERM.SETUP.L1X.SCR - phx - sta SETREADAUX - ldx #78 sta SETPAGE2 - ldy #39 - jsr .8 - ldx #79 sta CLRPAGE2 ldy #39 - jsr .8 - sta CLRREADAUX - plx dex - bpl .1 rts - .8 ldy #39 - .80 lda $ffff,x SELF MODIFIED - .81 sta (ZPScrBaseL1),y dex dex @@ -123,7 +97,6 @@ DRV.TERM.COPY.XtoL1 clc adc BUF.BASEL,x sta ZPBufBaseL2 - iny lda (pFD),y adc BUF.BASEH,x @@ -133,7 +106,6 @@ DRV.TERM.COPY.XtoL1 sta SETWRITEAUX sta SETREADAUX - .1 lda (ZPBufBaseL2),y sta (ZPBufBaseL1),y dey @@ -153,16 +125,12 @@ DRV.TERM.COPY.XtoL1 and #$3 ora #4 sta ZPScrBaseL2+1 - sta SET80STORE sta SETPAGE2 - jsr .6 - sta CLRPAGE2 .6 ldy #39 - .7 lda (ZPScrBaseL2),y sta (ZPScrBaseL1),y dey @@ -183,10 +151,8 @@ SetCharAtCurPos pha *-------------------------------------- SetCharAtYX cmp #$40 bcc .1 - cmp #$60 bcs .1 - and #$1F remap UPPERCASE .1 phy @@ -194,30 +160,24 @@ SetCharAtYX cmp #$40 ldy #S.DCB.TTY.bNORMAL ora (ZPDCBPtr),y sta ZPTmpChar - ldy #S.DCB.TTY.bG0G1 Select Active Font lda (ZPDCBPtr),y bpl .2 iny .2 iny - lda (ZPDCBPtr),y bpl .3 not Graphic mode - lda ZPTmpChar cmp #$E0 Normal lowercase ? bcc .3 tay - lda REMAP.E0.FF-$E0,y sta ZPTmpChar - .3 jsr DRV.TERM.SETUP.L1X ply - lda ZPTmpChar sta SETWRITEAUX sta (ZPBufBaseL1),y @@ -227,11 +187,9 @@ SetCharAtYX cmp #$40 bpl SetCharAtYX.8 SetCharAtY.SCR pha - tya lsr tay - pla sta SET80STORE bcs .2 @@ -247,7 +205,6 @@ GetCharAtCurPos ldy #S.DCB.TTY.CV bcs .9 Out of screen tax - jsr DRV.TERM.SETUP.L1X ldy #S.DCB.TTY.CH @@ -256,17 +213,14 @@ GetCharAtCurPos ldy #S.DCB.TTY.CV bcs .9 Out of screen tay - sta SETREADAUX lda (ZPBufBaseL1),y sta CLRREADAUX - cmp #$20 bcs .8 * clc adc #40 remap $00-$1F uppercase - .8 clc .9 rts diff --git a/SYS/KERNEL.S.TIME.txt b/SYS/KERNEL.S.TIME.txt index 67838c4c..41fd8336 100644 --- a/SYS/KERNEL.S.TIME.txt +++ b/SYS/KERNEL.S.TIME.txt @@ -40,7 +40,6 @@ K.PTime2Time jsr SHARED.SPtr1PPtr2 ldy #S.Time.YEAR sta (ZPPtr2),y set year sta ACC32+3 for conputing Century/WDAY later - lda (ZPPtr1) Get Month/day pha save Day ror @@ -50,14 +49,11 @@ K.PTime2Time jsr SHARED.SPtr1PPtr2 lsr ldy #S.Time.MONTH sta (ZPPtr2),y set month - pla get back day and #$1F iny sta (ZPPtr2),y set day - lda ACC32+3 get back year - cmp #69 if before 70 CC,if > 70, CS lda #0 rol get back C in bit 0 @@ -71,7 +67,6 @@ K.PTime2Time jsr SHARED.SPtr1PPtr2 tax iny lda (ZPPtr1),y Get Hour - ldy #S.Time.HOUR sta (ZPPtr2),y set hour iny @@ -89,23 +84,18 @@ K.ComputeWDAY lda #DAY0-1 Thursday : 4 (-1 for mod 7) sta ACC32 lda #70 sta ACC32+1 - .1 ldy ACC32 lda ACC32+1 - cpy ACC32+2 bne .2 cmp ACC32+3 beq .4 - .2 jsr TIME.IsLeapYearYA CS = Leap - pla adc #1 cmp #7 bcc .3 sbc #7 MOD 7 - .3 pha inc ACC32+1 lda ACC32+1 @@ -115,44 +105,35 @@ K.ComputeWDAY lda #DAY0-1 Thursday : 4 (-1 for mod 7) stz ACC32+1 inc ACC32 bra .1 -*-------------------------------------- +*-------------------------------------- .4 ldy #S.Time.MONTH lda (ZPPtr2),y get month tax - .5 lda K.StrFTime.MDAY-1,x get day count in this month clc bne .6 february ? - ldy ACC32+2 lda ACC32+3 jsr TIME.IsLeapYearYA CS = Leap - .6 pla adc K.StrFTime.MDAY-1,x cmp #7 bcc .7 sbc #7 - .7 pha dex bne .5 - pla - ldy #S.Time.DAY adc (ZPPtr2),y get day in month (1..31) dec adjust range 0.30 for MOD 7 - .8 cmp #7 MOD 7 bcc .80 sbc #7 bra .8 - -.80 inc adjust range 1..7 +.80 inc adjust range 1..7 ldy #S.Time.WDAY sta (ZPPtr2),y - clc rts */-------------------------------------- @@ -167,50 +148,38 @@ K.ComputeWDAY lda #DAY0-1 Thursday : 4 (-1 for mod 7) * ## RETURN VALUE *\-------------------------------------- K.CTime2Time jsr SHARED.SPtr1PPtr2 - ldy #3 - .1 lda (ZPPtr1),y sta ARG32,y ARG = ctime dey bpl .1 - lda #SECSDAY ACC = SECSDAY sta ACC32 - lda /SECSDAY sta ACC32+1 - lda ^SECSDAY sta ACC32+2 - stz ACC32+3 - jsr MATH.DIVMOD32 ARG32 = Days, TMP32 = remaining secs lda ARG32 WDAY computation : (ARG32 + DAY0) mod 7 clc adc #DAY0 pha - lda ARG32+1 65535 days = 179 years adc /DAY0 eor #$ff tax - pla - .2 tay sec sbc #7 bcs .2 inx bne .2 - tya ldy #S.Time.WDAY sta (ZPPtr2),y - ldy #CENTURY0 sty ZPPtr3 lda #YEAR0 @@ -219,22 +188,18 @@ K.CTime2Time.Year .1 ldy ZPPtr3 lda ZPPtr3+1 jsr TIME.IsLeapYearYA if Leap year CS - rol Toggle Carry eor #1 lsr - lda ARG32 sbc #365 pha lda ARG32+1 sbc /365 bcc .2 - sta ARG32+1 pla sta ARG32 - inc ZPPtr3 lda ZPPtr3 cmp #100 @@ -243,7 +208,6 @@ K.CTime2Time.Year stz ZPPtr3 inc ZPPtr3+1 bne .1 - .2 pla lda ZPPtr3+1 @@ -255,32 +219,25 @@ K.CTime2Time.Year sta (ZPPtr2),y K.CTime2Time.HMS ldx #3 - .1 lda TMP32,x sta ARG32,x dex bpl .1 - ldy #S.TIME.SECOND jsr .2 - dey #S.TIME.MINUTE jsr .2 - dey #S.TIME.HOUR lda ARG32 sta (ZPPtr2),y clc rts - .2 phy lda #60 jsr MATH.A2ACC32 - jsr MATH.DIVMOD32 - ply lda TMP32 sta (ZPPtr2),y @@ -299,17 +256,14 @@ K.CTime2Time.HMS TIME.IsLeapYearYA cmp #0 Year = 00 ? bne .1 no - tya year = 00, get century in a and #$3 mod 4 = 0 ? beq .9 leap year - .8 clc not leap rts .1 and #$3 mod 4 = 0 ? bne .8 - .9 sec Leap rts *-------------------------------------- @@ -343,27 +297,20 @@ K.StrFTime.MDAY .DA #3,#0,#3,#2,#3,#2,#3,#3,#2,#3,#2,#3 *\-------------------------------------- K.StrFTime jsr SHARED.SPtr1PPtr2 >PULLW ZPPtr3 timeptr - .1 jsr SHARED.GetCharPtr2 beq .8 - cmp #'%' beq .2 - jsr SHARED.PutCharPtr1 bra .1 - .2 ldx #K.StrFTime.Cnt-1 - jsr SHARED.GetCharPtr2 beq .8 - .3 cmp K.StrFTime.Tbl,x beq .4 dex bpl .3 bra .1 - .4 cpx #7 bcc .5 jsr K.StrFTime.AtX @@ -397,40 +344,32 @@ K.StrFTime.A sec Short day of week, 3 chars... .HS 90 BCC K.StrFTime.AA clc full DoW - lda #K.StrFTime.DAY ldx /K.StrFTime.DAY ldy #S.Time.WDAY bra K.StrFTime.STR - K.StrFTime.B sec Short Month, 3 chars.... .HS 90 BCC - K.StrFTime.BB clc full Month.... - lda #K.StrFTime.MON ldx /K.StrFTime.MON ldy #S.Time.MONTH - K.StrFTime.STR sta ZPPtr4 stx ZPPtr4+1 ldx #15 bcc .10 ldx #3 - .10 lda (ZPPtr3),y get required S.Time field value tay beq .2 Illegal value, print ??? - .1 lda (ZPPtr4) sec adc ZPPtr4 sta ZPPtr4 bcc .11 inc ZPPtr4+1 - .11 dey bne .1 .2 @@ -442,7 +381,6 @@ K.StrFTime.STR sta ZPPtr4 tya cmp (ZPPtr4) beq .8 - dex bne .3 @@ -454,7 +392,6 @@ K.StrFTime.II ldy #S.Time.HOUR bcc K.StrFTime.addDecA sbc #12 bra K.StrFTime.addDecA - K.StrFTime.P ldy #S.Time.HOUR lda (ZPPtr3),y cmp #12 @@ -465,10 +402,8 @@ K.StrFTime.P ldy #S.Time.HOUR jsr SHARED.PutCharPtr1 lda #'m' jmp SHARED.PutCharPtr1 - K.StrFTime.YY ldy #S.Time.CENTURY jsr K.StrFTime.addDecPtr1Y - ldx #7 "y" K.StrFTime.AtX ldy K.StrFTime.OfsX-7,x *-------------------------------------- @@ -479,7 +414,6 @@ K.StrFTime.addDecA ldy #'0' clc jsr MATH.A2STR10 - lda A2osX.NumStrBuf jsr SHARED.PutCharPtr1 lda A2osX.NumStrBuf+1 diff --git a/SYS/KERNEL.S.UNISTD.txt b/SYS/KERNEL.S.UNISTD.txt index e7c217b4..6588bbff 100644 --- a/SYS/KERNEL.S.UNISTD.txt +++ b/SYS/KERNEL.S.UNISTD.txt @@ -34,7 +34,6 @@ K.Open jsr PFT.YAToMLIPATH UNISTD.Open ldx #5 /DEV/ cpx K.MLI.PATH bcs IO.OPEN.REG - .1 lda K.MLI.PATH,x cmp IO.DEV.FIFO-1,x bne IO.OPEN.REG @@ -47,45 +46,34 @@ UNISTD.Open ldx #5 /DEV/ jsr K.GetDevByName bcc .7 - ldx #2 - .10 lda Nod.Table.hPath-2,x beq .3 jsr K.GetMemPtr >STYA ZPPtr1 - ldy #0 - .2 lda (ZPPtr1),y iny cmp K.MLI.PATH,y bne .3 cmp #0 end of string ? bne .2 - lda Nod.Table.hFD-2,x return hFD jsr UNISTD.GetPFD - bra .71 - .3 inx cpx #K.NOD.MAX+2 bne .10 - lda #MLI.E.NODEV -* sec +* sec rts no OF found - .7 stx IO.hDev >STYA pFD - .71 lda (pFD) #S.FD.T tax jmp (.8-4,x) - -.8 +.8 * .DA STDIO.IOERR REG * .DA STDIO.IOERR DIR .DA IO.OPEN.CDEV @@ -97,59 +85,46 @@ UNISTD.Open ldx #5 /DEV/ *-------------------------------------- IO.OPEN.REG >MLICALL MLIGETFILEINFO bcc IO.OPEN.REG.E Already Exists - bit IO.Open.FLAGS Create if not exists ? bpl IO.OPEN.RTS No, return MLI error - ldx #2 Yes, Create... - .1 lda IO.Open.TYPE,x sta K.MLI.PARAMS+4,x File type,Aux type dex bpl .1 lda #S.FI.ST.STD - jsr IO.MLI.CREATE bcs IO.OPEN.RTS IO.OPEN.REG.E ldx #0 jsr IO.MkFD bcs IO.OPEN.RTS - jsr IO.MLI.OPEN bcs IO.OPEN.ERR - lda IO.Open.FLAGS bit #O.WRONLY beq .20 Write mode ? - and #O.APPEND Append ? bne .11 yes, go to end of file - stz K.MLI.PARAMS+2 stz K.MLI.PARAMS+3 stz K.MLI.PARAMS+4 >MLICALL MLISETEOF no, reset size to 0 bra .21 - .11 >MLICALL MLIGETEOF bcs IO.OPEN.ERR - >MLICALL MLISETMARK .21 bcs IO.OPEN.ERR - .20 lda IO.Open.FLAGS and #O.TEXT Text Mode ? beq .8 - lda #$FF sta K.MLI.PARAMS+2 lda #C.CR sta K.MLI.PARAMS+3 >MLICALL MLINEWLINE bcs IO.OPEN.ERR - .8 lda IO.hFD IO.OPEN.RTS rts @@ -173,7 +148,6 @@ K.Close jsr UNISTD.GetPFD UNISTD.Close lda (pFD) #S.FD.T tax jmp (.1,x) - .1 .DA IO.CLOSE.REG .DA IO.CLOSE.DIR .DA IO.CLOSE.CDEV @@ -197,11 +171,9 @@ UNISTD.Close lda (pFD) #S.FD.T * CS: A = EC *\-------------------------------------- K.Read jsr UNISTD.GetPFD - UNISTD.Read lda (pFD) #S.FD.T tax jmp (.1,x) - .1 .DA IO.READ.REG .DA STDIO.IOERR DIR .DA IO.READ.CDEV @@ -229,7 +201,6 @@ K.Write jsr UNISTD.GetPFD UNISTD.Write lda (pFD) #S.FD.T tax jmp (.1,x) - .1 .DA IO.WRITE.REG .DA STDIO.IOERR DIR .DA IO.WRITE.CDEV diff --git a/SYS/KERNEL.S.Z80.txt b/SYS/KERNEL.S.Z80.txt index 8f92662a..7d179453 100644 --- a/SYS/KERNEL.S.Z80.txt +++ b/SYS/KERNEL.S.Z80.txt @@ -26,11 +26,8 @@ Z80.6502P.C .EQ %00000001 Z80.Init ld SP,000FFH Init Stack to 000FFH ($10ff) ld A,0FFH Set Flag... ld Z80.6502A,A ...in 6502 A reg - im 1 - ei - jr Z80.Exit *-------------------------------------- .BS 00038h-* @@ -41,7 +38,6 @@ Z80.Irq push AF push HL push IX push IY - ld (Z80.pStack),SP *-------------------------------------- Z80.Exit ld Z80.IOz,A exit to 6502, falling in main loop for next call @@ -56,7 +52,6 @@ Z80.Exit ld Z80.IOz,A exit to 6502, falling in main loop for next call Z80.Enter ld A,(Z80.6502X) get 6502,X cp A,PS.RESUME jpz Z80.Resume - ld L,A ld H,0 HL=offset in jump table ld DE,(Z80.pCode) DE=Code Base @@ -66,13 +61,8 @@ Z80.Enter ld A,(Z80.6502X) get 6502,X inc HL ld H,(HL) get jmp hi at X+1 ld L,A - call Z80.JumpHL - ld Z80.6502A,A - - - *-------------------------------------- Z80.Resume ld SP,(Z80.pStack) @@ -82,9 +72,7 @@ Z80.Resume ld SP,(Z80.pStack) pop DE pop BC pop AF - ei - reti *-------------------------------------- diff --git a/SYS/KERNEL.S.txt b/SYS/KERNEL.S.txt index 0332b849..35f8053b 100644 --- a/SYS/KERNEL.S.txt +++ b/SYS/KERNEL.S.txt @@ -15,7 +15,6 @@ NEW .INB INC/GFX.I .INB INC/KERNEL.I - .INB USR/SRC/SYS/KERNEL.S.DEF .INB USR/SRC/SYS/KERNEL.S.INIT .INB USR/SRC/SHARED/X.PRINTF.S @@ -24,7 +23,7 @@ A2osX.MAIN .PH A2osX.EndTables .INB USR/SRC/SYS/KERNEL.S.CORE .INB USR/SRC/SYS/KERNEL.S.DRV .INB USR/SRC/SYS/KERNEL.S.TERM - .LIST ON + .LIST ON Mem.MLoMem .EQ * .LIST OFF .EP @@ -73,7 +72,7 @@ A2osX.E0 .PH $E000 ********* TMP ***** go to A2osX.D1 .INB USR/SRC/SYS/KERNEL.S.IO .INB USR/SRC/SYS/KERNEL.S.PIPE -********* TMP ***** go to A2osX.D2 +********* TMP ***** go to A2osX.D2 *-------------------------------------- PWD.bDirty .BS 1 PWD.hDB .BS 1 diff --git a/SYS/KM.APPLETALK.S.txt b/SYS/KM.APPLETALK.S.txt index 2db879cf..3a85d517 100644 --- a/SYS/KM.APPLETALK.S.txt +++ b/SYS/KM.APPLETALK.S.txt @@ -17,12 +17,10 @@ BUF.PREFIX .EQ $300 *-------------------------------------- AT.INIT >LDYAI MSG.INIT jsr PrintFYA - lda #$F9 sta TmpPtr1 lda #$C7 sta TmpPtr1+1 - .1 ldy #3 .2 lda (TmpPtr1),y @@ -30,14 +28,11 @@ AT.INIT >LDYAI MSG.INIT bne .3 dey bpl .2 - ldy #4 lda (TmpPtr1),y - ldx #0 cmp #1 beq .4 - ldx #$80 cmp #2 beq .4 @@ -46,19 +41,15 @@ AT.INIT >LDYAI MSG.INIT >LDYAI MSG.FAILED jsr PrintFYA rts - .3 dec TmpPtr1+1 lda TmpPtr1+1 cmp #$C0 bne .1 - >LDYAI MSG.NOHW jsr PrintFYA rts - .4 stx WC.Flag tay - lda TmpPtr1+1 and #$0f pha Push slot # @@ -69,25 +60,20 @@ AT.INIT >LDYAI MSG.INIT >LDYA MLI+1 >STYA GO.OLDMLI+1 >STYA MLIATALK.PARAMS.OLDMLI - ldy #$14 lda TmpPtr1+1 Cn sta MLIALLOCIRQ.PARAMS.SLOT - >STYA GO.WSCARD+1 bit WC.Flag bmi .5 - >STYA MLI+1 .5 >LDYAI MSG.ATINIT jsr PrintFYA - jsr GO.WSCARD .DA #MLIATALK .DA MLIATALK.PARAMS bcs .9 - >LDYAI MSG.IRQ jsr PrintFYA @@ -97,7 +83,6 @@ AT.INIT >LDYAI MSG.INIT bcs .9 cli - >LDYAI MSG.PREFIX1 jsr PrintFYA @@ -105,7 +90,6 @@ AT.INIT >LDYAI MSG.INIT .DA #MLIGETPREFIX .DA MLIGETPREFIX.PARAMS bcs .9 - >LDYAI MSG.PREFIX2 jsr PrintFYA @@ -113,11 +97,9 @@ AT.INIT >LDYAI MSG.INIT .DA #MLISETPREFIX .DA MLIGETPREFIX.PARAMS bcs .9 - >LDYAI MSG.OK jsr PrintFYA rts - .9 pha >LDYAI MSG.KO jsr PrintFYA diff --git a/SYS/KM.NSC.S.txt b/SYS/KM.NSC.S.txt index 424f0d58..4dd4d61f 100644 --- a/SYS/KM.NSC.S.txt +++ b/SYS/KM.NSC.S.txt @@ -17,14 +17,12 @@ offset .EQ $4 *-------------------------------------- NSC.Init >LDYAI NSC.MSG0 jsr NSC.Print - lda MACHID and #MACHID.CLK Clock already installed ? beq .1 >LDYAI NSC.MSG1 jmp NSC.Print - .1 jsr NSC.Detect bcc .2 @@ -32,7 +30,6 @@ NSC.Init >LDYAI NSC.MSG0 jmp NSC.Print .2 jsr NSC.Install - lda MACHID ora #MACHID.CLK sta MACHID @@ -40,38 +37,29 @@ NSC.Init >LDYAI NSC.MSG0 >LDYAI NSC.MSG3 jmp NSC.Print *-------------------------------------- -DS1216E.DATA1 .EQ $10 -DS1216E.DATA2 .EQ $18 +DS1216E.DATA1 .EQ $10 +DS1216E.DATA2 .EQ $18 *-------------------------------------- NSC.Detect php sei lda $CFFF pha - sta $C300 ldx #7 - .1 ldy #8 .2 lda $C304 - lsr ror DS1216E.DATA1,x - dey bne .2 - dex bpl .1 - lda $C304 Reset DS1216E comparison register with READ A2=1 - ldx #7 Read 8 bytes... - .3 lda DS1216E.PATTERN,x phx ldx #8 ....of 8 bits - .4 ldy #0 lsr bcc .5 @@ -81,25 +69,18 @@ NSC.Detect php pla dex bne .4 - plx dex bpl .3 - ldx #7 - .6 ldy #8 .7 lda $C304 - lsr ror DS1216E.DATA2,x - dey bne .7 - dex bpl .6 - pla bmi .8 sta $CFFF @@ -111,10 +92,8 @@ NSC.Detect php bne .9 dex bpl .81 - sec rts - .9 clc rts *-------------------------------------- @@ -123,39 +102,30 @@ NSC.Install lda DATETIME+1 sec sbc #NSCDRV.B.START sta offset - lda DATETIME+2 sta TmpPtr1+1 sbc /NSCDRV.B.START sta offset+1 - ldy #1 - ldx #0 .1 lda NSCDRV.RELOC,x beq .2 - sta TmpPtr2 inx lda NSCDRV.RELOC,x sta TmpPtr2+1 - lda (TmpPtr2) clc adc offset sta (TmpPtr2) - lda (TmpPtr2),y adc offset+1 sta (TmpPtr2),y - inx bne .1 - .2 lda RRAMWRAMBNK1 lda RRAMWRAMBNK1 - .3 ldy #NSCDRV.SIZE-1 always < 128 .7 lda NSCDRV.B.START,y @@ -164,7 +134,6 @@ NSC.Install lda DATETIME+1 bpl .7 lda RROMBNK1 - lda #$4C sta DATETIME rts @@ -182,9 +151,7 @@ NSCDRV.RELOC .DA NSCDRV.R1+1 *-------------------------------------- NSC.Print sty TmpPtr1 sta TmpPtr1+1 - ldy #0 - .1 lda (TmpPtr1),y beq .8 @@ -205,11 +172,8 @@ NSCDRV.B.START .EQ * NSCDRV php sei sta $CFFF Make cards release $C8xx space - sta $C300 - lda $C304 Reset DS1216E comparison register with READ A2=1 - ldy #7 Read 8 bytes... NSCDRV.1 @@ -260,16 +224,12 @@ NSCDRV.6 adc #$0A bpl NSCDRV.6 NSCDRV.R4 sta DS1216E.DATA,x - dex bpl NSCDRV.4 - NSCDRV.R5 lda DS1216E.DATA+4 Get HH sta TIMELO+1 - NSCDRV.R6 lda DS1216E.DATA+5 Get mm sta TIMELO - NSCDRV.R7 lda DS1216E.DATA+1 Get MM asl asl diff --git a/SYS/KM.RAMWORKS.S.txt b/SYS/KM.RAMWORKS.S.txt index 6d95337b..e3fac87f 100644 --- a/SYS/KM.RAMWORKS.S.txt +++ b/SYS/KM.RAMWORKS.S.txt @@ -26,22 +26,18 @@ RWBankSelect .EQ $C073 *-------------------------------------- RW.Init >LDYAI RW.MSG jsr PrintFYA - jsr RW.Detect1 bcs .10 >LDYAI RW.MSG.OK jsr PrintFYA - rts .10 jsr RW.Detect2 bcc .1 - >LDYAI RW.MSG.KO1 jsr PrintFYA rts - .1 pha Push Page count lsr divide by 4 to compute KB size @@ -72,7 +68,6 @@ RW.Init >LDYAI RW.MSG >LDYAI RW.MSG.KO3 jsr PrintFYA rts - .3 >LDYAI RW.MSG.OK3 jsr PrintFYA rts @@ -90,9 +85,7 @@ RW.ONLINEBUFFER .BS 16 RW.Detect2 php sei sta SETALTZP - ldx #0 start detection at page $00 - .1 stx RWBankSelect lda 0 sta RW.SAVEZP0,x save Bank 0 $0000 to prevent ALTZP trash @@ -100,9 +93,7 @@ RW.Detect2 php sta RW.SAVEZP1,x inx bpl .1 - lda #0 - .2 sta RWBankSelect *-------------------------------------- @@ -113,19 +104,15 @@ RW.Detect2 php * * to address possibly a timing issue with Accelerators *-------------------------------------- - sta 0 eor #$FF sta 1 eor #$FF inc bpl .2 - ldx #0 - .3 txa sta RWBankSelect - *-------------------------------------- * Added after David Finnigan from macgui.com testing sessions * @@ -140,12 +127,9 @@ RW.Detect2 php eor #$FF cmp 1 bne .4 - inx bpl .3 - .4 dex we reached 128,last detected page was 127 - ldy #127 X = detected page count .6 sty RWBankSelect @@ -158,53 +142,41 @@ RW.Detect2 php bpl .6 txa - stx RW.PGCNT PGCNT = last detected page, as we do -1 for AuxMem - sta CLRALTZP plp lda RW.PGCNT beq .9 - clc rts - -.9 sec +.9 sec rts *-------------------------------------- RW.Install lda RRAMWRAMBNK1 lda RRAMWRAMBNK1 - ldx #RWDRV.SIZE .1 lda RWDRV.B.START-1,x sta RWDRV.START-1,x dex bne .1 - lda RW.PGCNT lsr sta RWDRV.MAXHI+1 lda #0 ror sta RWDRV.MAXLO+1 - lda RROMBNK1 - sta SETWRITEAUX - ldx #RWDRVX.SIZE .2 lda RWDRVX.B.START-1,x sta RWDRVX.START-1,x dex bne .2 - sta CLRWRITEAUX - inc DEVCNT ldx DEVCNT lda #$B0 Slot 3,Drive 2,0=Not Removable, 0=no int, 00=1 Volume sta DEVLST,x - lda #RWDRV.START sta DEVPTRS3D2 lda /RWDRV.START @@ -213,24 +185,20 @@ RW.Install lda RRAMWRAMBNK1 rts *-------------------------------------- RW.Format jsr RW.BLOCK.SET00 - lda RW.PGCNT lsr sta RW.BLOCK2.TB+1 lda #0 ror sta RW.BLOCK2.TB - jsr MLI .DA #MLIGETTIME .DA 0 - ldx #3 -.1 lda DATELO,x +.1 lda DATELO,x sta RW.BLOCK2.CT,x dex bpl .1 - ldx #RW.BLOCK2.END-RW.BLOCK2 .2 lda RW.BLOCK2-1,x sta RW.BLOCK-1,x @@ -272,14 +240,12 @@ RW.Format jsr RW.BLOCK.SET00 .4 lda RW.FBITMAPCNT beq .49 - dec RW.FBITMAPCNT jsr RW.BLOCK.SETFF bra .5 .49 jsr RW.BLOCK.SET00 - lda RW.PGCNT and #$1F compute incomplete bitmap block asl @@ -289,24 +255,19 @@ RW.Format jsr RW.BLOCK.SET00 tay lda #$FF bcc .42 first half of block only - ldx #0 .40 sta RW.BLOCK,x inx bne .40 - cpy #0 beq .5 .41 sta RW.BLOCK+$ff,y dey bne .41 - bra .5 - .42 sta RW.BLOCK-1,y dey bne .42 - .5 inc RW.MLIWRITEBLOCK.BLK lda RW.MLIWRITEBLOCK.BLK cmp #4 Are we writing first volume bitmap ? @@ -315,11 +276,9 @@ RW.Format jsr RW.BLOCK.SET00 * lda #$CF Mark Block 0 & 1 free, 2,3 used (vol hdr) lda #$0F sta RW.BLOCK - ldy #0 lda #$8 Start a BLOCK 4 (%00001000) ldx RW.BITMAPCNT - .62 pha eor RW.BLOCK,y Mark bitmap blocks as "used" sta RW.BLOCK,y @@ -328,20 +287,17 @@ RW.Format jsr RW.BLOCK.SET00 beq .63 lsr bne .62 - lda #$80 + lda #$80 iny bra .62 - .63 jsr MLI Write Block 4,5... .DA #MLIWRITEBLOCK .DA RW.MLIWRITEBLOCK bcs .9 - dec RW.BITMAPCNT another bitmap block needed ? bne .4 - clc -.9 rts +.9 rts *-------------------------------------- RW.BLOCK.SETFF lda #$FF bra RW.BLOCK.SET @@ -407,7 +363,6 @@ RWDRV.B.START RWDRV.START cld ProDOS will check that byte!!! ldy DRV.COMMAND 0 = Status ? beq RMDRV.CMDSTATUS - cpy #3 beq RWDRV.EXITOK 3 = Format : nothing to do, exit with no error bcs RWDRV.IOERR > 3 = Invalid OP, IO error @@ -417,7 +372,6 @@ RWDRV.START cld ProDOS will check that byte!!! lda DRV.BLKNUM+1 sbc RWDRV.MAXHI+1 bcs RWDRV.IOERR DRV.BLKNUM >= RW.DRV.SIZE, IO error - lda DRV.BLKNUM Get Back DRV.BLKNUM asl compute PAGE = blocknumLO *2 pha @@ -439,18 +393,14 @@ RWDRV.START cld ProDOS will check that byte!!! inx second 256 bytes first stx DRV.A2H Use DRV.A1L/H for RAM PTR stz DRV.A2L - inc DRV.BUFF+1 - dey Y=CMD, zero if read bne RWDRV.W non zero, go write - sta SETREADAUX ldx #DRV.A2L READ:copy from RAM to BUFF lda #DRV.BUFF bra RWDRV.RW - -RWDRV.W sta SETWRITEAUX +RWDRV.W sta SETWRITEAUX ldx #DRV.BUFF lda #DRV.A2L WRITE:copy from BUFF to RAM dey Make sure Y=0 for main loop below @@ -465,7 +415,6 @@ RWDRV.RW.DST sta ($FF),y iny bne RWDRV.RW.SRC - .HS 24 BIT Zero Page to skip RTS RWDRV.RTS rts $FF58 Must Be RTS @@ -480,21 +429,18 @@ RWDRV.RTS rts $FF58 Must Be RTS * plp cli -RMDRV.CMDSTATUS +RMDRV.CMDSTATUS RWDRV.MAXLO ldx #$FF return device block count in X,Y... RWDRV.MAXHI ldy #$FF - RWDRV.EXITOK lda #0 make A=0 clc rts - RWDRV.IOERR lda #MLI.E.IO Carry already set rts *-------------------------------------- * X=Page(0/1 or LC),A=Bank *-------------------------------------- RWDRV.GOAUX pha save BANK - sta SETWRITEAUX ldy #RWDRVX.XM.SIZE Backup begining of $300 to generate move code @@ -502,20 +448,16 @@ RWDRV.GOAUX pha save BANK sta RWDRVX.XM.SAVE-1,y dey bne .1 - pla restore BANK - sta SETREADAUX jsr RWDRVX.START Setup Code in main mem at $300 for data move * returns : CC=WRITE, CS=READ sta CLRREADAUX CLRWRITEAUX already triggered by code copy jsr RWDRV.XM.RUN Now execute generated code in main memory - sta SETREADAUX jsr RWDRVX.RESTORE sta CLRREADAUX rts A & carry setup properly by RWDRVX.RESTORE - RWDRV.END .EP RWDRV.B.END RWDRV.SIZE .EQ RWDRV.B.END-RWDRV.B.START @@ -537,12 +479,9 @@ RWDRVX.START sta RWDRVX.XM.BANK+1 setup BANK cmp #$D0 $C0 <= PAGE < $D0 ? bcs .1 no, store in BNK1 ora #$10 Remap $C0 page to $D0 BNK2 - .1 ror RWDRVX.XM.RWLC+1 Save Carry to select proper RW bank later - ldy DRV.BUFF ldx DRV.BUFF+1 - lsr DRV.COMMAND DRV.COMMAND: 1=READ,2=WRITE bcc .2 CC=WRITE, CS=READ stz RWDRVX.XM.SRC+1 READ from src LO = 0 @@ -550,12 +489,10 @@ RWDRVX.START sta RWDRVX.XM.BANK+1 setup BANK sty RWDRVX.XM.DST+1 WRITE to DRV.BUFF stx RWDRVX.XM.DST+2 bra .3 - .2 sty RWDRVX.XM.SRC+1 READ from DRV.BUFF stx RWDRVX.XM.SRC+2 stz RWDRVX.XM.DST+1 WRITE to dst LO = 0 sta RWDRVX.XM.DST+2 WRITE to dst HI = PAGE - .3 sta CLRWRITEAUX ldy #RWDRVX.XM.SIZE @@ -588,9 +525,7 @@ RWDRVX.XM.START php ldy #2 2 pages to copy RWDRVX.XM.COPY jsr RWDRV.XM.RUN+RWDRVX.XM.MNLC-RWDRVX.XM.START WRITE:copy from MAIN to TMP - bcc RWDRVX.XM.SRC CC=WRITE,CS=READ? - jsr RWDRV.XM.RUN+RWDRVX.XM.RWLC-RWDRVX.XM.START READ:copy from BANK to TMP sta SETALTZP @@ -598,34 +533,28 @@ RWDRVX.XM.SRC lda $FFFF,x sta RMDRVX.TMP,x inx bne RWDRVX.XM.SRC - sta CLRALTZP jsr RWDRV.XM.RUN+RWDRVX.XM.MNLC-RWDRVX.XM.START READ:copy from TMP to MAIN bcs RWDRVX.XM.1 CC=WRITE,CS=READ? - jsr RWDRV.XM.RUN+RWDRVX.XM.RWLC-RWDRVX.XM.START WRITE:copy from TMP to BANK sta SETALTZP - RWDRVX.XM.1 lda RMDRVX.TMP,x RWDRVX.XM.DST sta $FFFF,x inx bne RWDRVX.XM.1 - sta CLRALTZP inc RWDRV.XM.RUN+RWDRVX.XM.SRC+2-RWDRVX.XM.START inc RWDRV.XM.RUN+RWDRVX.XM.DST+2-RWDRVX.XM.START dey bne RWDRVX.XM.COPY - plp RWDRVX.XM.MNLC stz RWBankSelect ProDOS always uses LCBANK1 bit RRAMWRAMBNK1 bit RRAMWRAMBNK1 rts - RWDRVX.XM.RWLC lda #$FF bpl RWDRVX.XM.BANK bit RRAMWRAMBNK2 @@ -633,7 +562,6 @@ RWDRVX.XM.RWLC lda #$FF RWDRVX.XM.BANK lda #$FF sta RWBankSelect rts - RWDRVX.XM.END *-------------------------------------- RWDRVX.XM.SIZE .EQ RWDRVX.XM.END-RWDRVX.XM.START diff --git a/SYS/KM.VSDRIVE.S.txt b/SYS/KM.VSDRIVE.S.txt index c7cd277a..bcfe33ea 100644 --- a/SYS/KM.VSDRIVE.S.txt +++ b/SYS/KM.VSDRIVE.S.txt @@ -32,10 +32,8 @@ VSDRIVE.Init >LDYAI VSDRIVE.MSG0 stx DRV+2 DRV.Slotn0 sta .1+1 Slot Cn - and #$0F pha slot n - >LDYAI VSDRIVE.SSCOK jsr PrintFYA @@ -48,30 +46,24 @@ VSDRIVE.Init >LDYAI VSDRIVE.MSG0 jsr VSDRIVE.SetSlot bcs .91 - pha Push slot pha 2 times >LDYAI VSDRIVE.DEVOK jsr PrintFYA jsr VSDRIVE.Install - >LDYAI VSDRIVE.OK jsr PrintFYA rts - .90 >LDYAI VSDRIVE.DRVKO jsr PrintFYA rts - .91 >LDYAI VSDRIVE.NOSLOT jsr PrintFYA rts - .92 pha Push EC >LDYAI VSDRIVE.SRVKO jsr PrintFYA - inc .1+1 lda .1+1 cmp #$C8 @@ -92,54 +84,42 @@ VSDRIVE.Check bit RRAMWRAMBNK2 eor DRV+1 bne .8 sec - .8 bit RROMBNK1 rts *-------------------------------------- SSC.Detect stz TmpPtr1 sta TmpPtr1+1 - .1 ldx #DEVSIG.Value-DEVSIG.Offset-1 .2 ldy DEVSIG.Offset,x lda (TmpPtr1),y cmp DEVSIG.Value,x bne .3 - dex bpl .2 - lda TmpPtr1+1 A=SlotCN asl asl asl asl tax X=SlotN0 - stz SSC.RESET,x - jsr VSDRIVE.Wait - lda #SSC.CTL.CLKINT+SSC.CTL.B115200+SSC.CTL.8D+SSC.CTL.1S+SSC.CMD.NOP sta SSC.CTL,x - jsr VSDRIVE.Wait - lda #SSC.CMD.RIRQDIS+SSC.CMD.TE+SSC.CMD.DTR - sta SSC.CMD,x - + sta SSC.CMD,x jsr VSDRIVE.Wait lda TmpPtr1+1 A=Slot Cn, X=n0 clc rts X=SlotN0, A=SlotCN - .3 inc TmpPtr1+1 no match, try next slot.... lda TmpPtr1+1 cmp #$C8 bne .1 - .9 sec rts *-------------------------------------- @@ -150,9 +130,7 @@ VSDRIVE.Ping ldx DRV+2 DRV.Slotn0 .10 jsr VSDRIVE.IncTimer Wait....... bne .10 - ldy #10 - .1 lda SSC.STATUS,x and #SSC.STATUS.TDRE Ready for transmit? bne .20 @@ -161,11 +139,9 @@ VSDRIVE.Ping ldx DRV+2 DRV.Slotn0 bne .1 dey bne .1 - lda #1 sec rts Time Out..... - .20 stz VSDRIVE.Ping.TO stz VSDRIVE.Ping.TO+1 @@ -173,44 +149,34 @@ VSDRIVE.Ping ldx DRV+2 DRV.Slotn0 .2 lda VSDRIVE.CMDS-1,y sta SSC.DATA,x - .3 lda SSC.STATUS,x and #SSC.STATUS.TDRE char transmitted? bne .4 jsr VSDRIVE.IncTimer bne .3 - lda #2 sec rts - .4 dey bne .2 next byte - lda #521^$ffff 522 bytes to recieve sta VSDRIVE.Ping.BC lda /521^$ffff sta VSDRIVE.Ping.BC+1 - stz VSDRIVE.Ping.TO stz VSDRIVE.Ping.TO+1 ldy #3 EC if no byte recieved - .5 lda SSC.STATUS,x and #SSC.STATUS.RDRF incoming char? bne .6 - * jsr VSDRIVE.Wait - jsr VSDRIVE.IncTimer bne .5 - tya sec rts - .6 ldy #4 EC=4 if recieved only partial reply lda SSC.DATA,x @@ -218,7 +184,6 @@ VSDRIVE.Ping ldx DRV+2 DRV.Slotn0 bne .5 inc VSDRIVE.Ping.BC+1 bne .5 - clc rts *-------------------------------------- @@ -229,14 +194,13 @@ VSDRIVE.IncTimer .8 rts *-------------------------------------- VSDRIVE.Wait lda #0 - .1 dec bne .1 rts *-------------------------------------- VSDRIVE.CMDS .HS C6.00.00.03 .DA #ADT.CMD.VSD -* C6=C5 eor 03 eor 00 eor 00 +* C6=C5 eor 03 eor 00 eor 00 VSDRIVE.Ping.TO .BS 2 VSDRIVE.Ping.BC .BS 2 *-------------------------------------- @@ -256,14 +220,12 @@ VSDRIVE.SetSlot ldx #2 Starts at Slot1 lda DEVPTRS+17,x cmp DEVPTRS+1 bne .2 - lda #DRV.EntryPoint sta DEVPTRS,x sta DEVPTRS+16,x lda /DRV.EntryPoint sta DEVPTRS+1,x sta DEVPTRS+17,x - txa asl asl @@ -276,12 +238,10 @@ VSDRIVE.SetSlot ldx #2 Starts at Slot1 iny sta DEVLST,y add Drv2 sty DEVCNT - txa lsr exit with A=SLOT clc rts - .2 inx inx cpx #16 @@ -294,19 +254,14 @@ VSDRIVE.Install ldx #PATCH.SIZE sta DRV.EntryPoint-1,x dex bne .1 - bit RRAMWRAMBNK2 bit RRAMWRAMBNK2 - ldx #DRV.SIZE - .2 lda DRV-1,x sta $D000,x dex bne .2 - bit RROMBNK1 - clc rts *-------------------------------------- @@ -361,13 +316,11 @@ DRV .EQ * DRV.Slotn0 ldx #$ff Self Modified lda DRV.COMMAND S=0,R=1,W=2,F=3 bne .1 - ldx #$ff return Status ldy #$ff -.8 lda #0 +.8 lda #0 clc rts - .1 cmp #3 beq .8 Format .... * bcs DRV.DO.CMD.ERR more....IO error @@ -375,29 +328,23 @@ DRV.Slotn0 ldx #$ff Self Modified ora #2 W=2,R=3 ldy DRV.UNITNUM bpl .2 - adc #2 CC from bcs - .2 sta DRV.CmdBuf.Cmd store cmd eor #ADT.CMD.VSD eor DRV.BLKNUM eor DRV.BLKNUM+1 sta DRV.CmdBuf.Sum Compute & store CheckSum - lda DRV.BLKNUM sta DRV.CmdBuf.BlkL lda DRV.BLKNUM+1 sta DRV.CmdBuf.BlkH - * send CMD+CS ldy #4 Send 5 bytes including Sum - .3 lda DRV.CmdBuf.Sum,y jsr DRV.SSCSend dey bpl .3 - ldy #8 .5 lda DRV.READWRITE,y @@ -412,15 +359,12 @@ DRV.Slotn0 ldx #$ff Self Modified * Read block *-------------------------------------- DRV.DO.CMD.R ldy #3 Read Back and check 4 bytes - .1 jsr DRV.SSCGet eor DRV.CmdBuf.BlkH,y bne DRV.DO.CMD.ERR dey bpl .1 - ldy #4 Read 4 bytes DATE/TIME + 1 Byte Checksum - .2 jsr DRV.SSCGet eor DRV.CmdBuf.Sum @@ -430,74 +374,60 @@ DRV.DO.CMD.R ldy #3 Read Back and check 4 bytes tay Last EOR was with Checksum, must be 0 bne DRV.DO.CMD.ERR - * Y=0 from TAY stz DRV.CmdBuf.Sum sec - .3 jsr DRV.SSCGet jsr $100 eor DRV.CmdBuf.Sum sta DRV.CmdBuf.Sum iny bne .3 - bcc .4 inc DRV.BUFF+1 clc bcc .3 .4 dec DRV.BUFF+1 - jsr DRV.SSCGet - eor DRV.CmdBuf.Sum bne DRV.DO.CMD.ERR rts A=0,CC from bcc .4 *-------------------------------------- DRV.DO.CMD.ERR1 pla pla - DRV.DO.CMD.ERR lda #MLI.E.IO sec rts *-------------------------------------- -* Write Block +* Write Block *-------------------------------------- DRV.DO.CMD.W lda #$B1 lda (),y sta $103 - ldy #0 stz DRV.CmdBuf.Sum sec - .1 jsr $100 jsr DRV.SSCSend eor DRV.CmdBuf.Sum sta DRV.CmdBuf.Sum iny bne .1 - bcc .2 - inc DRV.BUFF+1 clc bcc .1 - .2 dec DRV.BUFF+1 - * A = DRV.CmdBuf.Sum jsr DRV.SSCSend -* read back CMD - +* read back CMD ldy #4 Read 5 bytes (echo from server) - .3 jsr DRV.SSCGet eor DRV.CmdBuf.Sum,y Check 5 bytes (including block Sum) @@ -507,26 +437,20 @@ DRV.DO.CMD.W lda #$B1 lda (),y rts *-------------------------------------- DRV.SSCSend sta .2+1 - .1 lda SSC.STATUS,x * bit #SSC.STATUS.DCD+SSC.STATUS.DSR * beq DRV.DO.CMD.ERR1 - and #SSC.STATUS.TDRE Outgoing char? beq .1 - .2 lda #$ff sta SSC.DATA,x - rts *-------------------------------------- DRV.SSCGet lda SSC.STATUS,x * bit #SSC.STATUS.DCD+SSC.STATUS.DSR * beq DRV.DO.CMD.ERR1 - and #SSC.STATUS.RDRF incoming char? beq DRV.SSCGet - lda SSC.DATA,x rts *--------------------------------------