From fc3fc7e817d7f026216ea30689314c9befda7cdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 25 Aug 2017 17:02:16 +0200 Subject: [PATCH] Kernel 0.9.1 : Code reorganization & move to CSTR --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes BIN/ARP.S.txt | 6 +- BIN/ASM.S.FIO.txt | 4 +- BIN/ASM.S.SRC.txt | 2 +- BIN/ASM.S.SYM.txt | 6 +- BIN/ASM.S.txt | 8 +- BIN/ATBROWSE.S.txt | 8 +- BIN/ATLOGON.S.txt | 2 +- BIN/CAT.S.txt | 6 +- BIN/CHTYP.S.txt | 8 +- BIN/DNSINFO.S.txt | 4 +- BIN/EDIT.S.CTRL.txt | 2 +- BIN/EDIT.S.SCRN.txt | 36 +-- BIN/EDIT.S.txt | 4 +- BIN/FORMAT.S.txt | 8 +- BIN/IPCONFIG.S.txt | 34 +-- BIN/LS.S.txt | 12 +- BIN/LSDEV.S.txt | 6 +- BIN/MEM.S.txt | 14 +- BIN/MEMDUMP.S.txt | 20 +- BIN/NETSTAT.S.txt | 4 +- BIN/NFSMOUNT.S.txt | 2 +- BIN/NSCUTIL.S.txt | 12 +- BIN/PING.S.txt | 12 +- BIN/PS.S.txt | 4 +- BIN/RPCDUMP.S.txt | 10 +- BIN/X.CPMVRM.S.txt | 12 +- DRV/CONSOLE.DRV.S.txt | 2 +- DRV/DHGR.DRV.S.txt | 2 +- DRV/LANCEGS.DRV.S.txt | 6 +- DRV/MOUSE.DRV.S.txt | 6 +- DRV/PIC.DRV.S.txt | 6 +- DRV/SSC.DRV.S.txt | 6 +- DRV/SSC.I.DRV.S.txt | 6 +- DRV/UTHER2.AI.DRV.S.txt | 6 +- DRV/UTHERNET.DRV.S.txt | 6 +- DRV/UTHERNET2.DRV.S.txt | 6 +- INC/A2osX.I.txt | 217 ++++++++-------- LIB/LIBTCPIP.S.SKT.txt | 25 ++ SBIN/DESKTOP.S.txt | 2 +- SBIN/DHCPCLNT.S.txt | 10 +- SBIN/GETTY.S.txt | 6 +- SBIN/HTTPD.S.txt | 14 +- SBIN/INSDRV.S.txt | 6 +- SBIN/KCONFIG.S.txt | 20 +- SBIN/LOGIN.S.txt | 4 +- SBIN/NFSD.S.txt | 12 +- SBIN/SHELL.S.CMD.txt | 10 +- SBIN/SHELL.S.CSH.txt | 2 +- SBIN/SHELL.S.IO.txt | 2 +- SBIN/SHELL.S.txt | 8 +- SBIN/TCPIP.S.CFG.txt | 14 +- SBIN/TCPIP.S.txt | 4 +- SBIN/TELNETD.S.txt | 14 +- SYS/KERNEL.S.BIN.txt | 205 +++++++-------- SYS/KERNEL.S.DAT.txt | 3 - SYS/KERNEL.S.DIRENT.txt | 14 +- SYS/KERNEL.S.ENV.txt | 36 --- SYS/KERNEL.S.FIO.txt | 2 +- SYS/KERNEL.S.GP.txt | 4 +- SYS/KERNEL.S.INIT.txt | 22 +- SYS/KERNEL.S.JMP.txt | 480 +++++++++++++++++++++-------------- SYS/KERNEL.S.PS.txt | 2 +- SYS/KERNEL.S.STAT.txt | 31 +-- SYS/KERNEL.S.STDIO.txt | 534 +++++++++++++++++++-------------------- SYS/KERNEL.S.STDLIB.txt | 24 +- SYS/KERNEL.S.txt | 6 +- 68 files changed, 1061 insertions(+), 970 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 777cf759decd6b503a52c7f2526113cb05b3e3f6..47bb3f0746721fe0bc2ee9c736a5be0728d68de0 100644 GIT binary patch delta 13545 zcmZX53qVv=`uMr`&cL7o0}2cS$mOLlzz7I9+DjgTkfRWT&q{}qT`ZqSZME%>F~K!r zSP<)2OWW*hm_rT?RNG@i>0yDTUVOmtQX2$O%qDBIY?c3a?!AN9ALO2UzSsHAcfRv| z=id8iG^QAhDfZn`8u>Nsk#3g+N6nJIdrO*iP~Me>{t~J3i9*AO4UR&7?-sOtDwREH znZw%R%)t%8?}b%-&UZ{+9kyNMpZSROo+_#mnUR&NVk&9#H0$*$X{Cfc7GaWgSl^kX zeyPLuQinO%ns^uW8tV^JsC$1${hl>Xq`tt*zGD4RC6dEKKDe*oYS5oiwmgEh|b9x(J<4#3r(SZeu< zXv0`zEvp+|dq4dCHwJhyE|J4{+l)pfoMcq$@@_@-bSL-2C^gD(;|6QEB^H)}t&22` z96tPD>_<7!efP%u(`o5Ef@$#l@KM!vp2lhvNZ*UJ`&&%Wn`Y-=4tgR^K|%|QLj=M9MAh*DMtJcvwVdPIiAnC zVi5cKHF_j_#x^l===OxE$yxKJ(_CV8zT5lJlG%%yVUx#joUaKDPlF%Rgws5;6`AN^ z^DJnj!wD~RnEm0dFxu*MfU4C;ADVEo6BG8^2`_cPziZZpb&mI$m#vo@0{haZKkDpa zU9s05bz1f}tm?D=@fcBbL$%oxv_w{K(_W^gp0RvorC5)4yN-a^B&R*A+U!-Yf_3%g zR~PYDVWns9jkbJDgoK-6@hu;c+gavp_pO(C1-X59WB++dvV7(G(sy-(IaI~VaY&B5 zGg7whSgl@~mA^bEZ;1rC4$HwD6so;PWm=>vHKoJfe3i|w!xXKu`FEIDm94tNHgU4i zFTT+~o?WPNE$NEk63NZ|T}hmDi(kC)dfoJ{MRrdxmw&u*#3C75qH;-($$v2(tDe^U zyiV2i2sfQw*x+|AsbZ0eW3Jt!GHl2$&DF0|tx;W24XQ4wEQq^VTI(Heni1dV6W{0? z-zbl_$ba#f5wG@+mzh!QM?Ue-`ozEL6EExRU^rLoF>cslL1t;YPke5iub2JRnelr{ zAA}$Nc5IJ))aD=W^00bnzVnYi_|eSxF1yP^vt=1*>)j!Bd0EW~e(`cot9>o|-L2<3 zJ3P2S-SN0mw*MCSBe$j-D$@iQ<7buWwhElY<=bqgKAM>DG6F~EG43bb@doenDKp*} zxOen|JkhkOy?wM{>3KCBHS+GC&lgbC+YR4bD5x-fz}0-n?O)6JJf|=~XRUd9tIG9b zzv)AcjT)&+tV}RdtqIeb*?HW}=M2xMaGBi0y-VSb{2I6yINOKZp$|A+@+mXZnqXST zb;5N$XZwJ&`0FMn+7dvD$;j1IaAx|;=+*?{C4hub;L)1UtgD!qFw?CGuDM;bYc7#M z$ZcHBA%xl0;o1Bs`m@$ z+YRdJRHrO*Ub~-p?QU?Bih1k1Yi4wlp_+*r05{%dXP#qk^|VEse(4^KhUQnHxhXWi zL1X#CIt{i$U3$VV-SQ;s=cWe6_G`CkA7lHi`_RqqhDX1R@zD<3eq%Oyq!wo=oaQ=k!YO*6sP`-b0o zFa_jd*y4-U30?6;AhsMc%Al!PbIS5HtLrtdv7Q1|YW6Z#3Y2MlnXyX9j%93XP8ksU z6rq=r=IgfTQAsp#G(6*sPyf?7xU(GRhcEydkOW7XW|)51Y2FI6g(h5R*wYPt&NMpg zbc1|2tU{1*(n^!jylf53p}kDYKE?pLfgm>ev|VM|e!6Dc>Dsc>mTrMep|R~{zT0-1 z^8xzrwx8xaZ2Oq+%1$eYDcF#6tVgfqQ&A`Pg6tOte-#=t0#|p*I$uTJ9Sw(u6%6a) zY*;uF5f^uc8&eqepQ2q4bhgr68#q;CXLlQ7=by35`>%C&w{&*D-r0SVjceF7@_^TG zJ^bYU*VFLzNDO`EOvCjN&D`!Y&($3?Kv0-v@c@g@>>L_7BgBin?N`sRH+t%-4bT60 zrs1K{@QQ%5kDpz2_Sv&lXa9coJi9T8lo0~%XL zH;Dqx?LTuM$R1@u*2LvUy6c$s+dRO3?1GHD3a}0Vrn}K&AS;o}K7O{ePRid~WYco3 zNgELeX!w3Khtf5qUy6{QKU->)2&9cYrMi6$f4sEM>qbwbXLl(fl#E5j-{>(Wg09-bWi=8Dp1x-fNM5 z@@4Nwb<8JU_p+b&9^-y6`&$v*b=vkb)A;sPMnzgHB8|cTF~A^^ddR#|)6&)R1UG58 zHI@(@?=VYR6J9iO^QtW~*x+{i9J3TeX@?s!FGp8E%A(i@hwXD~iydYU9&Y#N4^WiV zvmSL?C+bl(*^b2y*j}(5K{7d4ffJf#0{LQoGaq$8G^AZIVg#^9fYWyQa!T0Z_5e$# z72L4hKEw7hW2Wno?WlvuJnD##)G@_SE>GQO4eBeZhdLdNU5>`%4l`<{ z<9uCy*N!_h8y9cxbeK9Fby_-pnt>)7_^RkSdXzbF+`;VzE672^uN=)f2)OkOScoPT($#+1pd3%n z_}a1OnEVEe&IMgN;V}BMeghhV+0z0c=yd^SJMPGvXttez>%lRO>2wX+zHyk2IUx3s zNi@`t&#t(mHlZ;3ffk#;c8F>mb8w%LX&3~)Hi;`M&ei4Oq-^4VF|z9dCxaU{X}}oB zz6}!@Xp;b%19ZlKkztn&fC8G!l3z z-zWG^-MVc0AU?g4nJXu!X#0lRcLvE5K;vVBc-kr^jD|LD6*F&c%OGUU36eE(GzLNe zhJL6Kc@yzn^IQ?+3DIWgtkyT831^CMn zlYOY>ouS&6A=aJ%6FG0gzpL${xHnm;KjJ>2obDL!jR` zxlPfE5|65A*n7D)5C*$2*Jc}HZ*_~wk%(8Cx3TGZ&`D)9?Z$ya0$c z5OnKFbc=?wE8pB2!v9>$#M4dZ@QJldLIpT|@wpnqIa|{?&EYkK2c%|Gt2+ul3}+;BA@w2O}{$bukw$U3=S z$3`jRPt^ui<^j$`+m|Ytz;pC4?$NBuYho@3>_przb`yYmuUrC(S8%sys`b zu|`lh1*Em{Z~`tZ1_?F%Fexc0@Le9Uq=e858mFY9p!eL+3PLZ!(^0_tlj8Mtf(Q)? z`nOxQ9&91fW}tu%1X>X7rp-b@AG!rkq1B>*j|Ey{2SM)qBoy->0OFb6R0Q=2PV=T> zsCN9YHx))5#?N|F^Qa@(>P^L0bO@}xb=2Y#%}+rAp9=88lHv`b$W#>gnE+f>wz0fK z&~$z}3jADv=4^UuN2v(apnxv~sJ^7+Nl`!s3O;%VsMc$XOlmLDmx8~+ zXqRV;E(7{>3W%bTO`AknfTc0igg9=NPnuG$s77<&D zH;c-rrXas>+%Axsni!p0p+(*&+>kV2I>|HX^^X^C$r0w3mV&&wNs?6L-96b!N5Q9f z`hv2JTgr1LM^Dor0yHU3DnArZK2tLP8u;G^e6VE&&(ze~?T0p~^Fk}@~D7RfFkRmYq} zBa0Zy3)4~PPk5(46(n7#LE-B0;&`)B-#KNal15N35_l3I(R ze#MvN)NE-+5(>MCXZTSHX+{c)`3=YUQLHp06@~u~FZZLA6&dMBd5c#7T&X~x`D|Xc z=!+Q|?2&A>$GH5`qv1fC%H|9^fwW zEEF=0!t4F1fcrAR8+|C=8v}ja#LG%H3nH>0*volnPFYC_fZf49D+Pu4QF!}IDqvAo zDhlaxcM|FB-|}j zL}pYAA~R4Z%cF=H+&E!|*`RR5{Ep^#`Evtr98&_cH{ z=`po9j22uzW|Awrj4ZIom5O9@1i4XjaajNrNyXxq1E_E+4!;jQFO`5yjK>!Os01nj zgGCd(5=E#QXF`{nhqsa@2{#5(iC)PfG6kO^(D`^GkWzc43eY)eI6VlGWIBF?Gz;(x zK|rIy?*vitDGLP}`65cSbD4J8PJL0~imW0eyGMZg-An1!09WViCDuzq>ih5v1(itM zj~6MZxUdJ@XmwV8wssGpiAhRI?vN&-@Wt4upk`AU_zeZ*=1knKpj1IwB154zCu?~T z&yb81+4#1C3fiOsyjG7UBLlNwpy50 z9gib5X4i$W-6*yC=vdR1Xwk(Qr&3@o)r z5(?dbw}((6R0%ePz>5C?9}0mL|06yIO>XHVUtZxu{4`>K2aFcFaT1eXpk1!b<~4}v z@JvcZeou(F9A1kwqrYbhUMAk;qN#_(q3QGBq2 z!}YTw3jZOD@_pnvHzB;TFDlH}@%|6l;m>Y(-txR6eiC5Jz~|jiVoL!E=Z(L(p;@|o zy|8A;#8K*yrN895pNzi zxy!1BK?7bAR)*iwdR{{aH#OKN9GuUD6T=~v*5YNP`5WFG4gt0f*M(CN74=j3)T^}1 zGct95*yrSuELTXC1p>SY(R--JS`Gr{}V5Wq~=lRC~ zY1SRmxo_f^BB?o46K;zH;~ca0Gtd(aC8j)HVgBUy)g~ra;TDCOAh#3qBV`vD7r3+H(!^{bGcJk*vD>^UZ>R-xYHZN6bYPK z{)6Q)5L`dOi7`}gMY}*+P>`1`EIaZ)EQ0cc$d-a;9uXi}Zld|fze50(W(lDq75RTE zLb3%&8uI^4gy;oGI-2>p2+=NI$&a=`iGsdxOInt#%UiDH7Y)M2QG7lIPG(=aWt4Bo z+rrP1r|dYTx{o{~DNn$X>GCpn<~+6K@$!vZx9rT@vZ3S|*c!5v;@0LUz>{#Q%g+!N z1GMbM_Bm9b*C~M}Y`-5HcN;QLZ-|*kK5)_nbZaR-?>y)oKvJMg&e|bnT%!)i?HmBBH=6v?_w_E;#ewR z{m2wlZXUlZ^HJdF6zHmC9tt7;(o|>)4~2u$7+Iam0*Viua8SA;%qMyrpN*xW7F-2v zQQk7GdW|-tP)H<|N$Q0QQRsJW%rZzw;!&kCS*<2-qORe2aj=)Zca!AiuMn71fmxk0 zABDNxsAaGbi?n>AOe4s&g(&O?yfY5=(sld~kh0=Ol74>@>G=ZysQF((&G4TAUXTN! zDWfP?i2arGHk3S_uyfw#E#*jYLqz9hEYH?y3;AKd2h)DRGgMS+#jiy4O@W5b>?E)J zCW!X_AFMUJ=z~PQ6UlA~z<}F8EF2!;gexYS(21!)_3C_n7wO#UBui?yu>YtoR1`T;R+{lkd8y8G)|5OIUY1#25p7s-Lxx2Ieb!+ z(Qsy(oPt`fFM3f(A1RRX!o7ZnU6Pm0drNduDnU>C9eTwiS_A0N8N#@DG@c5ey=i$Ed0Bdn4V#3e^P|_V} z7Fd@*$-`MO`3^YK4TkWNf ztythjgL0r?4$lo?Lxb;6g5fWdDZm_z>EDE?T_ryqD*Qh9wO&nLx|eL=vt%-wz4CWh{=K?@g@s&o7q%2$?}+Q5T#Y|Tp@P%b z+(nQJFW-5BG$dV1EdKCRG;cDN0YkV;*{uSL=SN6VZaD5L4Q6x`sf82Tsy zOq)aNDB8n`SI?yn{#!%)Q}m-wJZmAHOWJh{>4l83xAZ_PEyu4dq*Lg}ocP2-S}l3Z z>GFH!V_G@uG3T|%ovz<(k2~4Cp1L2+G~8kJ$8?B))Cj4^(vf;BiP;lA=XK$SKc?@k zc-%=!%xt+mhnDoPKlIv@*5+25W%ZKM=h%It_DJ$ov)U{Hp6RU~&3pVjTt2NH2dl|P zPk>A7B?<$KWR|f9d)rW)#5K+A3Abi1a*>jY1TI#z7by(zrRz7SNr7+hU&Oi$U!;`+}o;13uY24=zMCc`dTUhrhDDdQq^bZN~-hkT2wcq zE2C~&*TZ#^uJs&E=Ewe_zfNx6ZS7+-`t6>4o#&nbLjy(6!isi!si(}zKGM%_!%wu+ z_g6eW&_?f-9E1;xl0Dq7?DGS#La>t76Y%vH3X9l?0lODKo1||7)V#s!oCGs$&Va%I z%3h$jxn|1t*S@ZKb+e#yP9EpWu65XFk&$(KfW{&nYV7ArVl)O)LTBk$MLn=MI-;e& ze?kBGerNwk|5!hiTmaJ(;wR_F*gXRXvZQJ=_iOisykDe|nuxhw?T2>vcNrq3eUS*ABB=2dkH%4%7FC?QyJW zs1E9agvv{+u}a;hcFB?$Hg=FbKG>vIY?M{0ZN*M*%y!{$7tQ&#JTch*DyCPMpk`J$Zr4jiUa@#jC%^DBy-Hmg%U z&DQL6EjrQcH2T_tJDQiRbIKE{O>mua?doADBmD0034@ahZgCy1H8`!t6YHIvr)660 zdZ*Xoy=wNeK@Di*q7;T}#ZFN@1E?JSqTJ<`3)M4f@)7(+*5wIxU*sOvQGKG=X+Y*h za$%CT$DF1ghfe%B-z9tpku!NbZBZV;Q zd%Jso?Op63_uCyO9k;s4o$y0(K3qHZ5!CPrzkc1fy4Rj6K7~&;or*ZU==6@$J5Rf5 z5Bx+IHppp@ijR0u(V6?t6r4dQaPWgc|Do2Qfg!JR)6aRILud{c#NETybNjge0p($i z{JMo8bf&xI)Fn{i!?WL$hc27i49^CJQzdXlU$7`VMD}5LGGWu8d&loPg z7&VeK^5C#`m`KSC7|9;tZ$>iV7opEa#zz81@!|&=4K8?)i6s{~e&#_YpEAP!HQ>2R z8C58WS8cTNAXFMbNktIZrm%<6L6>JMeIS>iE1*n;`&Ec`epdpn-khMxAQVET1J2Ui zIJrw^ylp$+-1Mfi_AO`4L1)wL+@^_K+suw!6WzhS?JSiuCZ?mbYNE92_MwB$mbaWh zZRZvfDewc%?22KjVLRJ`hTEU5N(i9_ufPt+3RTGuB zTcF5U(t10Nc6s)*p2Iime4B0)kGc&NMiWr{s(Gb|SwycJ#`hL6DRj(5ysd~yR}K!_ z=QjnvsbJwo)ui+??v=+ahLD(i5qA_Z_XFK4D;Q1Sii@4Ca?{F-P$DYNo5+Pu-o$hL z2Xu@q$AUUJM(LXVkBNyf?x$-jFLK}CG^{=7y3Hnyw8`Z;P}L$|R4?Zi!EPZnpK{l9 z0dt!GY#s_13w^wA1rwthzL>D91OB;V25Y`js<})bEWM0Km5ETre${%BEyBYqm@FFj zVplTR^eQLbvXY4*k?7@>%)APA&8R(?WYk%;=SEEZBQ<>^)fPm`ttD0{S*z!wuPxhfvD{8A4OXfQ3Xr07d zV;!}8LTZH+lhYH#LM4%1LXwgJ-mxQiv4I3WcE^a_*R8M;O5~tc4C=l4LLM+DspKuY zw6}t^+b=;`&iY<^iY=Wvl*X90j@4`#n;Zt1JosWF%FQ&%<3D8ITD#*??*7eN#!TDB zN;hvEGi@KM7LNzYyT_<{7QA3Nq%FvCh_5GV0bb+Zv}hoNcXB7|^zDj0Zh2 zX4^hSKu;1X#pWl*Oq<3I0@>y#*)h}RF}q*K&C3(^={8bJ&&jOUpiKFDjX|iXxBL+0 zwbofrH}3)7h7&&o#XmU)erNaw_ea!A# z4YKy!8L5;k29bo1N76M~>*b^HdyM}(#QIte7_sWd+yMJS@ zz(z{6Ucpx%WXW{SPS593q8vq;r2ooA{a=einhthoXQTI3;B;OkEr#N)+}GRmkwjYHibh=l@65ZJZ2&ZBF+osN4zwl>!- v2><0#W*6i^@7?Q|-RmT~*GYG;^Vq%4bN4#g?sZjNs%kvWX97*7*2QKNyWt}PL4-rbQIp`{4gXeflPZiXE z?jqf8p38n1V+t__e-u{!CEqZ(H(OsP|4b#8WfjyuWI`6Mg4su#1}wKLT=q%WbKwSQ zv!!8@`i*Am8_lK=%lwC^Kezlajk^0ks9&P2`3qHadK#F{`Q1&H&0`EO(6X!!scrjIh%dLqJQt+SqtW& zT1!1oUj4VV3(pF4=(CpE7~34{+cAb?F^2jW7JYW^XpA%)%5SVOx_LIKrC01b!1q<0 zd2-X00aye7ir9ThleY!cDi6s1Z3>0i9w77dGxKfxW3y`{w@*pcaI&7vr5tnCZiyi93Ws?-_O@JmrzeVPq(l~&(oLxj>=*=(Ko z?ucLP5&u|riPEvEHHw>0D$85rIhP%NvHBltX0$H0xq-U;WA)d~l0J>n;c`xPPk*k` z?^X^!?IXuOEbec=AGlN+Re!1(j<$`j`4Q49S(>+ zpnDYl@YRt6vLUN~ti#pfs=nnPd;Cm5Y^%-Ts@{J0ak1{4cM;_yCUqRvcAxa*-u%Q^1nobQY?`V(ii z^ek<@BAahm-_-QEQPZ!Y>#v=9rN4lpQjO=X6r`~^!>pyfG14%?4MjpRDik+_;(I8} z|Fn3(!q=q6jc~Gf%NGVCV;$uThZyVk+{qi9@%MvKUfiJV4sl4;H#zoVyYWwhf%FJx zJUzIee1waUI(#e>U_@X^M#kJ~VSt;7f}Me^H#xaB8=ma1oK7v+J!>1zX6vsJZaPC? zn~82f4i5v^-#5JdnHXp@?9Ho|iJY5Pf!KUbFNLB?(`Npfz1MEiSlVEiDj1Fe86%Fo z#aJZ7ZW*hlO^eui(!qrkUpGb$MM4kb{;RR6wqdB5zvYL}0#?M4;sj{Lvz=Ftmr!^M zg{<8;d^LskY&Xuj7UsfpFs``fzk#o@{_QrUVRL(xw!QkPc5|DBCPK*7);i{vww?2` z8kt+0+c{V3A?DUo?Q$}AwwNr1`EyYS=fWHiMmyMUJb7)dH<9Q#c^E!zull6j7&Q`K zjt6ZsV6Ih0rqaaJB9Na~A5k4BPHSlDs5;y6&PL8_kDN3%nr1X89Y0+%ob4c#^Y_J> zsD?O?6KqPy{XN=O)g9R#K^NA*kNo{z$AJ#(*^ZM<9Xa7`p!_()mW~#9mUdX1I?TQ~ z6BCU=alpo~zoV+6!$f}-*$_wk0AP)^1Ht8hIn`0s*kN*Mh*KPBi*w9usf{}h*uxVO za;+s>t+nKkl{a}bDF0KSS35g~K#ZHBDB~Rg7eJI8MVnd1OY$2p$%76e1TTZ%g(}|* zWTX=?_c#FSrQ?=pwU)IF7%yH6k9p$)HzL=*(@r}cX=$Kaw{XfMEp3g6ed~fvc4@4o zt-hu0y_UB7>>I|}*B^0zqKjYjOoTf_6zL^hwmD{GnVYLLEZojSclU^CvS%eiA@h7Y-ybRBVP z(-9`7;fUChF4IJu2~F?ZNIO!h=5|>oI2WS2Kv12-htS^|4pM=vZY|$P+qfU)+8qB5 z!^8x56xcDfAOaM1Lh+rTO3rw2gk5#M%k1)LTi2Ny=F`qD_I%el?zYL-f}qx7eTVVj z%fpP4lomt^xfYB?D{*m^x+kZksuqxq(%5cvjKl?}+D(#%xPy9bL8W;n8{A}@3nvJ~ za)ZW{(a3Vc7Q0ExH*Nm>d5N;P)*=&anW#lasrQi;@rvHh;yaMxbLjNP-pBi|}JUNgvQjB9R$%vAJ}C{W2Ndf7JP%QrISf6{Z528s&0 zh8|+h|7Pd*!<1zp${qWO9N4F|45))9>d2}7#W;E+HSNCrz&Y7n7>5fQdtlf5vMYMj zT9ca@eDHe$&ib2OGjYQD0G`K3IHtwXYyG#~@T(o1FA>+M{eIS(DFF$E-Up=Ee%~&N z@vEKt2dn9^X@!1`5=VNBqt(H=u#flXBU-O;QmC*`_UHrIOFe8`PopHpVZKS1w{k%8 zT#ue%U+n=Q)T5N)H#^8NiVP3zp1;{0^7Fsi9ezh8{8*Bj6GJZgW4!!C=Yn?4jLEI( zzP%QaSprT}M7H%8ezmpMd-jue?O;qcx9U6g3b%c(S~C@ArY$OVuA=uGcVAF$kHy=N z%vfXwiqQvH5EN$Vr^&qyl24Z!%f{x;nA2;XWnwJh?3`ZX(XsgnV?8Es-NA`$hiikx zovoF4jrDL6)mV@205_t8`H?{0Ac1v*^}9=kFfu>Hl^ag?R(;%S8nz6WUnQrhb(1G; zaJHv=d7t|+6zulvw#DR(#xCizB~--hn^*l|FA$vkxR;n|BXUTG5O;5g(*I1h02|n3 zo5_Y>xc19DlQ8L;aS$u%i^ROkvm(5_&5x}6Tpv59?& zax!XAe@nwWGOoPe+B+Z)Xzd#ihO`Fv^B})|tD>KP{0WtOyI;Q{p#M0KZTIgt1oqo} zn(vQJ*k)MCA)b?3#vq{npw{w-c`y_H?a%`TES*<@|Gb{@ckdghrB56HR`~3CCMd+e zUo(+y^@HaL6B^-MbP9)8w(x${_~Qy!nQS4v_$HDUU&m7Zb-3VOxL>*Ae-XT$sIs-ATdn4oHQP}%DW>slf)(hLV6>Kikm888cAQO@ND38q9xp@oeY7pSb zNPdim7j1sAbQ(Mr1svz$>AK=qo~sdv)d;p&IT<`%m%DR|2u(u)Cq&Zxmv)H2bQJJ` z2wb(x**_CWPau`8MbT zxHMtf3CT!do9wf4>kd_k6O)Pp8+c6d*6pPwX>ST+sF9+Pho%#7B6*0M(vad5k16<1 zOgi%X2q_Qq3?dR>8XpVO2sq8tXXQUvDo#8x9!32XD?O=5>TfvTlZu*sW{O0WCTb`7 z^|a@p%N7*>cWm^e7EqtyFFdK(@=pcY^ldwLm#WgL`SB7HQ9zRbFD%_GDm^h71)ddv z>vwG}D;4IJ2s8dnfM#ubVYg0%!m>3B(4x}P-wPrnrlH`^r+})W%wmHIZ}+04ihoQ4 zr>`v(4J82ue}UihqU6ed3i#sEZQDd%>B#>}0hpPeRVzrHiGshvZC;fB(xiA4_%9w^ zSh{2Lc2U-(MC9MXLyL;jiiJ)|$;h+Sspq6rq&SDEnN&b|k{ShnEph;Z*}6+58cY%_ z**83bR~e5H7BeXw$-m_>xvL4dMAT*yEZ%ux@jSnC4wVcNa)K;HPjB9lCFm_V5qY)| zl5(=Wl3}N`^E3s!w(cm)DoGO*lbnizJA}SYgka3cAoK+uk@X*lG~|DgN2C?+)Cekbm{KhFrCaDussS*z(k5H2WG)m%giXb6Kg#tt4%)zy~bmI*$eqSWvX`6-|cd3R2a` zbI7UQRB%|sJXz7U(o)ekrNRP?Oj3aCqk`-~H=GR9cFlbzT~O%4cqIRR3jU09t1e7L zp*Il@_oD*K7lJL{axz>9iXP)T6ueLdGY4}NR$!qT1^yt&Qc4gaf7qN3C;x}Y(^1H6 z9s^llX5M=&QkU8`xRD_#-r~nr=X!d7($%j&us}s?zUz|KMN?(MJK4mZL zR*6fX25Ij&rB$aQ`CXngcXi&*EiiQN$Es;YoL=dKZDSr=}s|0VDW_MQO;BrbL&%2xMg@8=y!D#YZW*3*Wb>v@B;Q zuobkB265JP8qcCKT;)&ASf2*&!p+Gf4fH9UY^0(vcfJRScSU8t&wuJ!5JZT~X=)VW z;bbS`#3`nwq0kw4%%2J>PXh^OPVxf@Jw*w<_^w%CR_Us=5+P!&1a*4za01qCo^+Qh z6H%bdITp|h+FzNBf_x^SKrVve2;eJnFL|M?NbvP5!3O-Cyo+EKA~EbKe}Nd5z)72q zf&!e3r_qA=fr9vRg7Aw0R0Ji*hXbhDR4_gREq8^0oF9U(1yFHRDE0}Y;@rbT=q#KC zO=>pYO$rv90;&1#;UY2ucM|9v%mh&?_ecRcHwrHfqN1p|SWAj%ygvwN=HXL8RBU35 zKqFI9%DuUnxqFL>3)iL>BWbJv_lcv5Q~+0H)sbx$k5u!qOisoWI?SU^kS(X50?bXtyPRo)+YEMOAi;V2iIh(DK8 z%JL+Us4z1tJ+GMOpMd1aA~b(}US?r|CWGgki2PDS_)1M4Z{|tJFI5B;6c_TKWaPI{ z1m$E3RH?{CO(~K0A_2~?s2WKZg9cpStQNQg?+k`0yi`DwaIMPC;x_}>)3WK%Y#y47 zT$TgBz(=N`HstUqu$~pup#mE?_XVX*2Mc@>5|PVFU=);2aF|h0z6BZ6$TGyPBdAse%f3e^h7&uEuXFsDQ{EO8Htw;kvzx_ol7g zkdwZ*bVu2)SN1-)6XHIK$_3=goYnZ2f(m6&bRHg7P;(RV1r9+4Fjz+BIu&$RJ(^p< zd-+781D}SvY>PmAh$tWd4yvUX<`E$O9RH@bp zp+tZDw7}?swmYHtt1!xI^$ur~ERH~wih_1Jp}c6kbtk|{`#C3AQ@Dnw1v`{JFPhsf zJbM0|Jrvp{I;soc!uQ>Y$oG=?4?tkMoq$tPF&jv57$A@N9 z;nZGyniQ{L`)nBOb$o}A?8AX96csp?rQ(A2Pvb5qGcf@z{Ud&brIt_!@W(8?{v5=Y zSSp38#IkTImU;s(4X5T%RahHN&7%zXU^taYRpalV74#;he3#5LGG6_9Vd?JDT`!hy zLGx>{R|L4}TD&BJik@FLNwac_CeSzuO`n2BAHr`&P;;rb@aYJc)!Vq66d3;&0n>R0 zE9O9P7^~-i9Pi@IbHJDX4}NnF6+#`sAIzZ?%io(exuUfzi%SYJd7Fb5vG70rzc^Lq zhGKr9BH^?(=l@_P5=JxOxup0r)skgf(J@L(*G4!&-;CdI|W6PVdtm-mK}pG z1@My3`vTYxe-Ya%P2SofG0yNysW?7`(G-iWBca(9wzWmX;H#08-;xtfx}u!S%mQbm z5@J!<2To+>x=b<5L^(r|;v`Opg1u-JXbK?S@S7?D`PPddjo^780(~ez(w#&}$k!%- zbm_w8PDZ{BA|ykAq#)l$5mF>TQjy;&5t5m=jvsAd77F^v$tgF3Y!5zS!q)y+1Q$S% z)NJ5qwg?5DcCswnqS?Xgg@l>EV(+(9~z*&TOV~G%Ja3%gGnLI!N%j6Sy{yfcZ%z zBI!SbJ|SO#Jrr-={rkOHFYI`_Z0pV)do??@l)hZL8%h5uvi*`OE?Q045?3Y~i2qkk zVBuPiJpPCbpM3s>XGc>(nieN+&04Vo$lNM$^F0Rx@~b{+gI^06pKoB2nd^!tk3J#a z;__&4L+A0k(Xd^6OEl@y16ji%BA+C^d=xO0B^1mxd=*UY2*=3fv|8EM67Ir+S@ z;oxv_8Z=wOLz7ToC$61G1tfJ%L#|Kck#I_}6V-PMDBjV*DdmzNY-A7ao(B%57eAOs z1uyIaqGC;MrYaYrfOsC*m!MLCcUN3?;xf`ocrHlpzRxm+c|?wW|^V=qW~U66A25blnlW(5xex*)4q zm7SKCk&{`-$1bp=lo1T)(B$kgx;a>npog-m%`ggd5^*eW2sR3R|@|nmI_;TpBy_Tg;y1= z)nxDs4&eX}!lA!C#JVtZ6>nXU#gae!Z|r{pJ0!#qggYZ=-f$kQoM*pvpk*H^eL=*66=Mz z`7keUJVpu`o~fcjDIXl8g6a8U4YX$aIT;kd8C0__lXspesry!z6lbCcf4olxu{{7E zQ$ctN#I4Xu3Zj+BM=ti`EfzksNP}tq9eAdKCia#Gc7>!N0&Hn04qHGii3x)~1fdeX z-zA{HS(6Yr$*vN8Q{Zg8cL5yr*ePT>C|}SF3JS;d3*aR_VhWp+x0>$?pWNn5K{JZr z^v4@k3X(@o!HXv0a4L(Mf|G9%{1^+7bgm${Jlcr{=|I9Po*npvdGsuCDg>d)U%58x zAUTpGA(t4?PJj|`j;H+HV?{P`_`l<+ppf}aZW$VI#?v|lsjw}c3JhK_oglMdr6_%9 zJnoN&Gjal9o%nVFe1A(4I0q$9_JEg&$*>xhG93)>75u6u?R#nGt}VzV71;PMoJPT$ zHJmZj0#n(d$t6^QYT?aJfQKw`_9?=~1j;9L>13OzR7K9jqF)YOhMN<>#FyjV1o)Wr z$isyE378LL@TFtL!#Lqs&%dC8b4&wK16Mvo!7mZG$aGNy8BQ!&KUI-vC9^W8f$M$cP9v_IA{#d+Qo*U3hX}Ia8#+&rf?OUY`d>XA&1(*VV-AfI zhNxeTB~xQ@e5#xNdy^O3+f*R=^Yh>)3a)@ED5x>)%6@BL|H*)UL*GCZ-0OsHWFpE# z`r-Pz0c{V3(jmzgi@5S)GoEItfW|gv&hkh~1V$(%vK{HvoK%KUdRBXG15*<+EmYo?O+*{secA z8?!4-(prgbk2w%7;jm&6t#}HqkzFfIF0~T576vm(*%MujC`RJ&Fu6h1^zJNPQ-b0?%$Wz}{f3lmK*&4}> z8m!%hlim8STK|i4tN*au(Zof!{=pH+{-L|Z3))=pNcD%^23xm25LzQwWR4^6eYm(A zVERJ`0OD}j$iCIRC+DJ_G#IE`>q!ZkCHLg8q+Zqa-St+0<$PtYug5;0&>?oWO&2EhYY{ez^F#gLY^zscydm8CF$#Iyu1ZK`2?SYkp6}FsL zYl&jmM|*7U06psRK0r-BSOzA+47;;Ot_6v%P+YW$vf8>^7u5JeqM|Iun|=J)Svonx z4rwcpGMv)@gl3n%FE8<#MrtidTm1Txa?T?wBE!2bF+I|r89iP-K0T1k^0?jhEa?M@ z6i=}YJ?v4u_fy*6wV_8p#IDBw^C_JbcDTnj8_^ac#hwJSg+9rVJkYnJz4MEIywysQ0!8H=oEI7?8zP8sIs1 z?B-d>)x34~{M7+2xZZKL`s#p1e|~U)b2EEX4-UAms8g}u_o_h}2PM~zT^kU^(}Kve z56T?w*^nfrB1s7cS%(`Wl#x2Dp6dLy0WJ7UVUE`81M!B?%jZKcJGM6}59%Eof!Z6W zmBeG@HY#KK>y&Im7vNTK?!a~?`yRgeBb{3QTGvq}@j1$xx}jKGwOkwXL!Hv()u2?D zvWAZ!)j?SrZuqzlavY|OB@UI}sFW=|sO8k)fs=td(KJlN5Ox`a4`^gt?cBIo!pfR# zQqVh@V#xWh%MN#Oiu&%OO8n=aXutB@>tokf58W8@A6_|}F`PA=+56XCuf8RH7uxFE zhuaXMxLe$#ZEM>8*!EVNPrI`H>GtQ_pX@^DJ^Q%*7S{{4kP8T%zF@l0c;PHZ@{{Ir zLEI9qmOI4#)`5_`Go*7?XLzTk6QRBETWx>b{)HW(&$`_&J$q@d$ECkr{N|zuASB1K z8G508wS604@!-v?_18YRc5#p!Bs{;p_T4q1{Px@A#tQGsyQ7{^CDpF=^Oi z6_anIXf6KxDn?oU*vOMN?oZI98-*D7*2%z&E;1wx>at^G4yk_JnlQL+!C-abU{%uK z(edn~B+a2Y+dwz7se?KhV_=$f6%)FO@smk|^@)Q(ZR1uDZtw@J&k@B|4cgfHHwK$t zc7qhw!1~%jl0^OH;8@C_HA)(+57O zE5JQ{dKK?l%`7K$jjI`T;+3l{4Kl;PRg-Ij43ajWp_$lo$&6Y!M&X$8r-_LX?&q^5y7ABt3zlEM4t|p) zA6c@%c?v$P2s)B%sMZCJa4`f=$~Ham++1j+9HE}YFf8%ud|Hlio+EVzM5tAU(V?o5 zq3UBB7`l9Th^07Ns$pmd(xyg-_>`d$q449giLAatF$6&N(KcJ~#%#8CNVlhccnHM% zCi`flywtTK5^{O6t-uW2N49lnh`r@ZU?%Jp26~u?$*yU$xv*$h$f_bF5n7&sglF*o z%alwVHhSESr7sT~7v7HZf~>rEhpP?`TQ3i*M?;Oz-&T}g9)`@$>dV81zF{%?Lu{8r z)nFg4>JlkW=ycY;VQ?+*)FSlLu=j}fh(G`H=S%MqcG-w&g@rM^&Q!g|K)H`$gGOu; z0@JdwBam1J1X9TKjT#~OzH>+5{|_KNgAYB%1iD6#oM>7zf^Cm60gC5GW;Q+icPAv- zg5iwd{>PY*weO4g8&G}$KQtOTYC2&78juXh`22qsE>78^r{U&xhd)B@M}lu0QQQE7 zL1#j4z}e*XXbbm?g(YQk0e6SJGK%vbXO@=-->6sIfQ0wkqin&bUeW3SIf2iN>U~;0 zp`sntOWjEyz>#y1HTXtrKIa0w^)tqTZ)n+FqfplZhbuvjpfLqswU|x@-)PPk$Giji zeoYH*RB%nJZdA05kZL=rc1T|~xHKE^zAQRKb0vuTYKlnuvc+VI25c>7kig@B?5BBJ za}fLaDC7&mc#s$gBekxmaczClM#nrN-I(p{jGudgd42yTX8$J1{!K3XH@WWLOV diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index be2216a494bbeb532f3d5d5f44c865aae916fde6..680fb626732184038623785db87c371d93184783 100644 GIT binary patch delta 33370 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 IDZc;z0TegX3jhEB delta 34222 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 L.MSG2 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA .8 lda #0 @@ -110,7 +110,7 @@ CS.RUN.DUMP >LIBCALL hLIBTCPIP,LIBTCPIP.ARP.GetC.ACHE >STYA ZPPTR1 >LDYA L.MSG0 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA ldx #K.ARPCACHE.SIZE @@ -138,7 +138,7 @@ CS.RUN.DUMP >LIBCALL hLIBTCPIP,LIBTCPIP.ARP.GetC.ACHE >LDYA L.MSG1 phx - >SYSCALL PrintFYA + >SYSCALL PrintF.YA plx .4 lda ZPPTR1 diff --git a/BIN/ASM.S.FIO.txt b/BIN/ASM.S.FIO.txt index 2157b5d7..b695ae25 100644 --- a/BIN/ASM.S.FIO.txt +++ b/BIN/ASM.S.FIO.txt @@ -58,7 +58,7 @@ FIO.OpenFileA sta FIO.hFileName .1 >PUSHW ZPPtr1 >LDYA L.MSG.SRC.FILE - >SYSCALL PrintFYA + >SYSCALL PrintF.YA ldy #SRC.COUNT lda (pData),y @@ -258,7 +258,7 @@ FIO.LOAD.ASM.T ldy #ASM.T.hMem .1 >PUSHW L.ASM.T.FILENAME >LDYA L.MSG.T.FILE - >SYSCALL PrintFYA + >SYSCALL PrintF.YA >PUSHWI 0 Aux type >PUSHBI 6 S.FILEINFO.TYPE.BIN diff --git a/BIN/ASM.S.SRC.txt b/BIN/ASM.S.SRC.txt index ecad85f1..22584349 100644 --- a/BIN/ASM.S.SRC.txt +++ b/BIN/ASM.S.SRC.txt @@ -25,7 +25,7 @@ SRC.PrintLine ldy #ASM.MACRO.ON dey >PUSHB (pData),y >LDYA L.MSG.SRCLINE - >SYSCALL PrintFYA + >SYSCALL PrintF.YA .9 rts *--------------------------------------- SRC.PrintLineErr ldx #0 diff --git a/BIN/ASM.S.SYM.txt b/BIN/ASM.S.SYM.txt index 946bfc05..afba3016 100644 --- a/BIN/ASM.S.SYM.txt +++ b/BIN/ASM.S.SYM.txt @@ -52,7 +52,7 @@ SYM.Quit ldy #SYM.pLastGBlock rts *--------------------------------------- SYM.Dump >LDYA L.MSG.SYMBOLS - >SYSCALL PrintFYA + >SYSCALL PrintF.YA ldy #SYM.DumpCount lda #20 @@ -92,7 +92,7 @@ SYM.Dump >LDYA L.MSG.SYMBOLS >PUSHA >LDYA L.MSG.GSYMBOL - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 @@ -105,7 +105,7 @@ SYM.Dump >LDYA L.MSG.SYMBOLS pla >PUSHA >LDYA L.MSG.LSYMBOL - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcc .4 rts diff --git a/BIN/ASM.S.txt b/BIN/ASM.S.txt index 46cee225..5c3fd053 100644 --- a/BIN/ASM.S.txt +++ b/BIN/ASM.S.txt @@ -177,7 +177,7 @@ CS.INIT >SYSCALL GetArgC rts .99 >LDYA L.MSG.HELP - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #ERR.INV.ARGS sec .9 rts @@ -206,7 +206,7 @@ CS.RUN >SYSCALL GetC inc >PUSHA >LDYA L.MSG.PASS - >SYSCALL PrintFYA + >SYSCALL PrintF.YA ldy #SRC.hFILENAME lda (pData),y @@ -237,7 +237,7 @@ CS.RUN >SYSCALL GetC .1 jsr SYM.Dump >LDYA L.MSG.SUMMARY - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #0 End of assembly, exit with no error .99 sec @@ -259,7 +259,7 @@ CS.RUN >SYSCALL GetC >PUSHA >PUSHW SRC.LINENUM >LDYA L.MSG.ERROR - >SYSCALL PrintFYA + >SYSCALL PrintF.YA pla sec rts diff --git a/BIN/ATBROWSE.S.txt b/BIN/ATBROWSE.S.txt index 96289e53..dd48f44e 100644 --- a/BIN/ATBROWSE.S.txt +++ b/BIN/ATBROWSE.S.txt @@ -53,7 +53,7 @@ CS.RUN stz K.MLI.PARAMS Sync pha >LDYA L.MSG.NOATK - >SYSCALL PrintFYA + >SYSCALL PrintF.YA pla sec .99 rts @@ -61,7 +61,7 @@ CS.RUN stz K.MLI.PARAMS Sync .10 >PUSHB K.MLI.PARAMS+$E NODE >PUSHW K.MLI.PARAMS+$8 NET >LDYA L.MSG.NETNODE - >SYSCALL PrintFYA + >SYSCALL PrintF.YA stz K.MLI.PARAMS Sync lda #ATLookupName @@ -97,7 +97,7 @@ CS.RUN stz K.MLI.PARAMS Sync beq .8 >LDYA L.MSG.DUMP0 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 .1 lda ZPPTR1 @@ -117,7 +117,7 @@ CS.RUN stz K.MLI.PARAMS Sync bpl .2 >LDYA L.MSG.DUMP - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 lda ZPPTR2 diff --git a/BIN/ATLOGON.S.txt b/BIN/ATLOGON.S.txt index 656d681e..ff0df9d1 100644 --- a/BIN/ATLOGON.S.txt +++ b/BIN/ATLOGON.S.txt @@ -49,7 +49,7 @@ CS.RUN stz K.MLI.PARAMS Sync pha >LDYA L.MSG.NOATK - >SYSCALL PrintFYA + >SYSCALL PrintF.YA pla sec .99 rts diff --git a/BIN/CAT.S.txt b/BIN/CAT.S.txt index d7499579..cf7dc5f8 100644 --- a/BIN/CAT.S.txt +++ b/BIN/CAT.S.txt @@ -70,7 +70,7 @@ CS.INIT >SYSCALL GetArgC bne .2 .99 >LDYA L.MSG.USAGE - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #SYSMGR.ERRSYN sec rts @@ -235,7 +235,7 @@ CS.RUN.PRINT sty BytesRead Y,A = Bytes read .3 >PUSHW ZPPtr1 >LDYA L.MSG.CTRLCHAR - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 bra .7 @@ -271,7 +271,7 @@ CS.RUN.PRINTNUM clc >PUSHYA >LDYA L.MSG.LINENUM - >SYSCALL PrintFYA + >SYSCALL PrintF.YA .8 rts *-------------------------------------- CS.RUN.OPEN >SYSCALL GetFullPath.YA diff --git a/BIN/CHTYP.S.txt b/BIN/CHTYP.S.txt index db90b4a9..a8e11aa5 100644 --- a/BIN/CHTYP.S.txt +++ b/BIN/CHTYP.S.txt @@ -81,7 +81,7 @@ CS.INIT >SYSCALL GetArgC bne .2 .99 >LDYA L.MSG.USAGE - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #SYSMGR.ERRSYN sec rts @@ -192,7 +192,7 @@ CS.RUN.FILE jsr CS.RUN.GetFilePath >PUSHWI UsrBuf256 >LDYA L.MSG.FILE - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 ldy #HexFileType @@ -221,7 +221,7 @@ CS.RUN.FILE jsr CS.RUN.GetFilePath *-------------------------------------- CS.RUN.CheckErr bcs .1 >LDYA L.MSG.OK - >SYSCALL PrintFYA + >SYSCALL PrintF.YA rts .1 pha @@ -234,7 +234,7 @@ CS.RUN.CheckErr bcs .1 >PUSHA >LDYA L.MSG.ERR - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 rts diff --git a/BIN/DNSINFO.S.txt b/BIN/DNSINFO.S.txt index d16ddc07..cb23cdc9 100644 --- a/BIN/DNSINFO.S.txt +++ b/BIN/DNSINFO.S.txt @@ -83,7 +83,7 @@ CS.RUN.ADD cmp #3 CS.RUN.DUMP >LIBCALL hLIBTCPIP,LIBTCPIP.DNS.GetC.ACHE >STYA ZPPTR1 >LDYA L.MSG0 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #K.DNSCACHE.SIZE sta EntryCount @@ -118,7 +118,7 @@ CS.RUN.DUMP >LIBCALL hLIBTCPIP,LIBTCPIP.DNS.GetC.ACHE >PUSHB (ZPPTR1) Entry Status >LDYA L.MSG1 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA .2 lda ZPPTR1 clc diff --git a/BIN/EDIT.S.CTRL.txt b/BIN/EDIT.S.CTRL.txt index 6f420203..5b49ae91 100644 --- a/BIN/EDIT.S.CTRL.txt +++ b/BIN/EDIT.S.CTRL.txt @@ -53,7 +53,7 @@ Ctrl.A ldy #PromptMode >PUSHW ZPPTR1 >LDYA L.MSG.HELPLINE - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 inc .1+1 diff --git a/BIN/EDIT.S.SCRN.txt b/BIN/EDIT.S.SCRN.txt index b4d70278..54f8b9f7 100644 --- a/BIN/EDIT.S.SCRN.txt +++ b/BIN/EDIT.S.SCRN.txt @@ -11,7 +11,7 @@ SCRN.Init ldy #ScreenH >PUSHA >LDYA L.SEQ.INIT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 lda #12 >SYSCALL PutChar.A @@ -58,7 +58,7 @@ SCRN.UpdateTopBar .2 >PUSHYA >LDYA L.MSG.TOPBAR - >SYSCALL PrintFYA + >SYSCALL PrintF.YA .9 rts *-------------------------------------- @@ -99,7 +99,7 @@ SCRN.UpdateMain ldy #ScreenY bcs .9 >LDYA L.SEQ.CEOL - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 inc TmpByte @@ -176,7 +176,7 @@ SCRN.UpdateLineAtALenY bcs .9 >LDYA L.SEQ.CEOL - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 rts .9 jmp Ctrl.Q @@ -189,7 +189,7 @@ SCRN.UpdateAttrC bpl .8 >LDYA L.SEQ.NORM - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 stz bSelected rts @@ -198,7 +198,7 @@ SCRN.UpdateAttrC bmi .8 >LDYA L.SEQ.INV - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 lda #$ff sta bSelected @@ -215,11 +215,11 @@ SCRN.UpdateStatusBar >PUSHA >LDYA L.MSG.GOTOXY - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 >LDYA L.SEQ.INV - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 ldy #PromptMode @@ -247,7 +247,7 @@ SCRN.UpdateStatusBar >PUSHB (pData),y >LDYA L.MSG.STATUSBAR - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 lda #58 @@ -255,7 +255,7 @@ SCRN.UpdateStatusBar bcs .9 >LDYA L.SEQ.NORM - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 jmp SCRN.GotoCurXCurY @@ -275,7 +275,7 @@ SCRN.UpdateStatusBar tax >LDYA L.MSG.STATUSBAR,x - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 rts *-------------------------------------- @@ -290,7 +290,7 @@ SCRN.UpdateStatusBarErrA .1 lda #$ff >PUSHA >LDYA L.MSG.STATUSBAR.E - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 rts .9 jmp Ctrl.Q @@ -319,11 +319,11 @@ SCRN.InvLineA sta .2+1 lda .2+1 >PUSHA >LDYA L.MSG.GOTOXY - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 >LDYA L.SEQ.INV - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 ldy #ScreenW @@ -344,7 +344,7 @@ SCRN.InvLineA sta .2+1 .2 lda #$ff >PUSHA >LDYA L.MSG.GOTOXY - >SYSCALL PrintFYA + >SYSCALL PrintF.YA .9 rts *-------------------------------------- @@ -365,7 +365,7 @@ GotoXY txa >PUSHA >LDYA L.MSG.GOTOXY - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 rts .9 jmp Ctrl.Q @@ -509,7 +509,7 @@ SCRN.scrollUp ldy #CurX >PUSHA >LDYA L.SEQ.SCROLLUP - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 ldy #ScreenY+1 @@ -544,7 +544,7 @@ SCRN.scrollDn ldy #CurX >PUSHA >LDYA L.SEQ.SCROLLDN - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 ldy #ScreenY+1 diff --git a/BIN/EDIT.S.txt b/BIN/EDIT.S.txt index 2590730e..1ee6b816 100644 --- a/BIN/EDIT.S.txt +++ b/BIN/EDIT.S.txt @@ -133,7 +133,7 @@ CS.INIT lda #$ff .9 rts *-------------------------------------- CS.RUN >LDYA L.SEQ.DETECT - >SYSCALL PrintFYA Send Query for term W & H + >SYSCALL PrintF.YA Send Query for term W & H bcs .9 .1 >SYSCALL Sleep @@ -189,7 +189,7 @@ CS.QUIT ldy #hBuffer >SYSCALL FreeMem.A .8 >LDYA L.SEQ.RESET - >SYSCALL PrintFYA + >SYSCALL PrintF.YA .9 rts *-------------------------------------- CharIn tax diff --git a/BIN/FORMAT.S.txt b/BIN/FORMAT.S.txt index 536e23bd..a9b17b5a 100644 --- a/BIN/FORMAT.S.txt +++ b/BIN/FORMAT.S.txt @@ -76,7 +76,7 @@ CS.INIT >SYSCALL GetArgC bne .2 .99 >LDYA L.MSG.USAGE - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #SYSMGR.ERRSYN sec rts @@ -163,7 +163,7 @@ CS.RUN jsr CS.RUN.BuildCat bcs .9 >LDYA L.MSG.OK - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #0 sec rts @@ -171,7 +171,7 @@ CS.RUN jsr CS.RUN.BuildCat .9 pha >PUSHA >LDYA L.MSG.ERR - >SYSCALL PrintFYA + >SYSCALL PrintF.YA pla sec rts @@ -207,7 +207,7 @@ CS.RUN.BuildCat ldy #hDev >PUSHW ZPPtr2 >LDYA L.MSG.INIT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 >PUSHW SizeInBlocks diff --git a/BIN/IPCONFIG.S.txt b/BIN/IPCONFIG.S.txt index 504efe1b..6f7be914 100644 --- a/BIN/IPCONFIG.S.txt +++ b/BIN/IPCONFIG.S.txt @@ -67,7 +67,7 @@ CS.INIT >LDYA L.LIBTCPIP .9 rts *-------------------------------------- CS.RUN >LDYA L.MSG0 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA >LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG >STYA ZPIPCfgPtr @@ -77,7 +77,7 @@ CS.RUN >LDYA L.MSG0 bne CS.RUN.DUMPDEV >LDYA L.MSG0.NL - >SYSCALL PrintFYA + >SYSCALL PrintF.YA jmp CS.RUN.DONE CS.RUN.DUMPDEV sta DevID @@ -90,7 +90,7 @@ CS.RUN.DUMPDEV sta DevID >STYA ZPDevStatPtr >LDYA L.MSG0.L - >SYSCALL PrintFYA + >SYSCALL PrintF.YA ldy #S.DEVSTAT.NET.MAC+5 @@ -119,7 +119,7 @@ CS.RUN.DUMPDEV sta DevID >PUSHB DevID >LDYA L.MSG1.DEV - >SYSCALL PrintFYA + >SYSCALL PrintF.YA ldy #S.DEVSTAT.NET.FLAGS lda (ZPDevStatPtr),y @@ -128,7 +128,7 @@ CS.RUN.DUMPDEV sta DevID lda #1 .2 >PUSHA >LDYA L.MSG1.DEV.ARP - >SYSCALL PrintFYA + >SYSCALL PrintF.YA ldy #S.DEVSTAT.NET.FLAGS lda (ZPDevStatPtr),y @@ -137,7 +137,7 @@ CS.RUN.DUMPDEV sta DevID lda #1 .3 >PUSHA >LDYA L.MSG1.DEV.IP - >SYSCALL PrintFYA + >SYSCALL PrintF.YA ldy #S.DEVSTAT.NET.STATUS lda (ZPDevStatPtr),y @@ -145,15 +145,15 @@ CS.RUN.DUMPDEV sta DevID bne CS.RUN.LINK >PUSHW L.MSG1.LINK.KO >LDYA L.MSG1.LINK - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bra CS.RUN.DUMPIP CS.RUN.LINK >PUSHW L.MSG1.LINK.OK >LDYA L.MSG1.LINK - >SYSCALL PrintFYA + >SYSCALL PrintF.YA >LDYA L.MSG1.LINKSPEED - >SYSCALL PrintFYA + >SYSCALL PrintF.YA ldy #S.DEVSTAT.NET.STATUS lda (ZPDevStatPtr),y @@ -174,10 +174,10 @@ CS.RUN.LINK >PUSHW L.MSG1.LINK.OK >LDYA L.MSG1.DPLX.HD bra .6 .5 >LDYA L.MSG1.DPLX.FD -.6 >SYSCALL PrintFYA +.6 >SYSCALL PrintF.YA CS.RUN.DUMPIP >LDYA L.MSG2 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda (ZPIPCfgPtr) and #S.IPCFG.STATUS.OK beq .11 @@ -185,7 +185,7 @@ CS.RUN.DUMPIP >LDYA L.MSG2 bra .10 .11 >LDYA L.MSG2.U -.10 >SYSCALL PrintFYA +.10 >SYSCALL PrintF.YA ldy #S.IPCFG.DHCPSRVR+3 ldx #4 @@ -194,7 +194,7 @@ CS.RUN.DUMPIP >LDYA L.MSG2 dex bne .2 >LDYA L.MSG2.DHCPSRVR - >SYSCALL PrintFYA + >SYSCALL PrintF.YA ldy #S.IPCFG.IP+7 IP/MASK ldx #8 @@ -203,7 +203,7 @@ CS.RUN.DUMPIP >LDYA L.MSG2 dex bne .3 >LDYA L.MSG2.IP - >SYSCALL PrintFYA + >SYSCALL PrintF.YA ldy #S.IPCFG.GW+3 ldx #4 @@ -212,7 +212,7 @@ CS.RUN.DUMPIP >LDYA L.MSG2 dex bne .4 >LDYA L.MSG2.GW - >SYSCALL PrintFYA + >SYSCALL PrintF.YA ldy #S.IPCFG.DNS1+7 ldx #8 @@ -221,7 +221,7 @@ CS.RUN.DUMPIP >LDYA L.MSG2 dex bne .5 >LDYA L.MSG2.DNS - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda ZPIPCfgPtr clc @@ -240,7 +240,7 @@ CS.RUN.DUMPIP >LDYA L.MSG2 >PUSHYA >LDYA L.MSG2.HOSTNAME - >SYSCALL PrintFYA + >SYSCALL PrintF.YA CS.RUN.DONE lda #0 tell TSKMGR that all done ok, but sec we do not want to stay in memory diff --git a/BIN/LS.S.txt b/BIN/LS.S.txt index c6b8f421..0c5d5a28 100644 --- a/BIN/LS.S.txt +++ b/BIN/LS.S.txt @@ -200,7 +200,7 @@ CS.RUN.DEV ldy #bLong >PUSHW ZPFileName >LDYA L.MSG.DEVEXT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 ldy #bRecurse @@ -232,7 +232,7 @@ CS.RUN.DIR ldy #bAllmostAll >PUSHW ZPFileName >LDYA L.MSG.DIR - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 lda #80/MAX.COL-2 @@ -264,7 +264,7 @@ CS.RUN.DIR ldy #bAllmostAll >PUSHW ZPFileName >LDYA L.MSG.DIREXT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 .5 ldy #bRecurse @@ -295,7 +295,7 @@ CS.RUN.FILE ldy #bLong >PUSHW ZPFileName >LDYA L.MSG.FILE - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 jsr CS.RUN.UpdateColCnt @@ -334,7 +334,7 @@ CS.RUN.FILE ldy #bLong >PUSHW ZPFileName >LDYA L.MSG.FILEEXT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 jsr GetNextEntry @@ -415,7 +415,7 @@ CS.RUN.ENTER.MSG >SYSCALL GetMemPtr.A >PUSHYA >LDYA L.MSG.ENTER - >SYSCALL PrintFYA + >SYSCALL PrintF.YA rts *-------------------------------------- CS.DOEVENT sec diff --git a/BIN/LSDEV.S.txt b/BIN/LSDEV.S.txt index 3009d2c5..95606ff8 100644 --- a/BIN/LSDEV.S.txt +++ b/BIN/LSDEV.S.txt @@ -44,7 +44,7 @@ CS.INIT clc rts *-------------------------------------- CS.RUN >LDYA L.MSG0 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA stz DEV.ID @@ -112,7 +112,7 @@ DumpHeader ldy #S.DEV.DRV.JMP+1 >PUSHB DEV.ID >LDYA L.MSG1 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA rts *-------------------------------------- DumpStatus bit DEV.S @@ -155,7 +155,7 @@ DumpStatus bit DEV.S bra .3 .2 >LDYA L.MSG2.C -.3 >SYSCALL PrintFYA +.3 >SYSCALL PrintF.YA rts *-------------------------------------- CS.EVENT sec diff --git a/BIN/MEM.S.txt b/BIN/MEM.S.txt index 3e086dff..177a55ca 100644 --- a/BIN/MEM.S.txt +++ b/BIN/MEM.S.txt @@ -50,7 +50,7 @@ CS.RUN >LDYA L.MemStat >SYSCALL GetMemStat.YA >LDYA L.MSG.Main - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda MemStat+S.MEMSTAT.MF sec @@ -65,10 +65,10 @@ CS.RUN >LDYA L.MemStat >PUSHW MemStat+S.MEMSTAT.ML >LDYA L.MSG.Stat - >SYSCALL PrintFYA + >SYSCALL PrintF.YA *-------------------------------------- >LDYA L.MSG.Aux - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda MemStat+S.MEMSTAT.XF sec @@ -83,10 +83,10 @@ CS.RUN >LDYA L.MemStat >PUSHW MemStat+S.MEMSTAT.XL >LDYA L.MSG.Stat - >SYSCALL PrintFYA + >SYSCALL PrintF.YA *-------------------------------------- >LDYA L.MSG.Kernel - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda MemStat+S.MEMSTAT.DH sec @@ -101,10 +101,10 @@ CS.RUN >LDYA L.MemStat >PUSHW MemStat+S.MEMSTAT.DL >LDYA L.MSG.Stat - >SYSCALL PrintFYA + >SYSCALL PrintF.YA >LDYA L.MSG.End - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #0 sec rts diff --git a/BIN/MEMDUMP.S.txt b/BIN/MEMDUMP.S.txt index 4f8f9a1e..7b71e08b 100644 --- a/BIN/MEMDUMP.S.txt +++ b/BIN/MEMDUMP.S.txt @@ -91,7 +91,7 @@ CS.RUN >SYSCALL GetC bne .1 >LDYA L.MSG0 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA .1 ldy #MEM.COUNT lda (pData),y @@ -141,19 +141,19 @@ CS.RUN >SYSCALL GetC ldy #USED.COUNT >PUSHB (pData),y >LDYA L.MSG2 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA >PUSHW MemMgr.HiMem >LDYA L.MSG3 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA >PUSHW MemMgr.Free >LDYA L.MSG4 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA >PUSHW MemMgr.LoMem >LDYA L.MSG5 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda MemMgr.Free sec @@ -164,7 +164,7 @@ CS.RUN >SYSCALL GetC >PUSHYA >LDYA L.MSG6 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA sec rts *-------------------------------------- @@ -200,7 +200,7 @@ CS.RUN.PRINTMEM ldy #S.MEM.LEN >PUSHA >LDYA L.MSG1 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda (ZPPTR1) Free ? assume raw data... bpl .10 @@ -228,7 +228,7 @@ CS.RUN.PRINTMEM ldy #S.MEM.LEN >PUSHW ZPPTR2 String >PUSHB (ZPPTR2) Len >LDYA L.MSG1.STR - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bra .8 .2 ldy #15 @@ -238,14 +238,14 @@ CS.RUN.PRINTMEM ldy #S.MEM.LEN bpl .3 >LDYA L.MSG1.HEX - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bra .8 ****** BIN .7 >SYSCALL GetMemPtr.A >PUSHYA >LDYA L.MSG1.BIN - >SYSCALL PrintFYA + >SYSCALL PrintF.YA .8 ldy #LINE.COUNT lda (pData),y diff --git a/BIN/NETSTAT.S.txt b/BIN/NETSTAT.S.txt index 3ee34efd..f1864702 100644 --- a/BIN/NETSTAT.S.txt +++ b/BIN/NETSTAT.S.txt @@ -61,7 +61,7 @@ CS.INIT >LDYA L.LIBTCPIP .9 rts *-------------------------------------- CS.RUN >LDYA L.MSG0 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.GETTABLE >STYA ZPPTR1 @@ -100,7 +100,7 @@ CS.RUN >LDYA L.MSG0 >PUSHB L.MSG1+1,x >PUSHB L.MSG1,x >LDYA L.MSG1 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA .7 lda ZPPTR1 clc diff --git a/BIN/NFSMOUNT.S.txt b/BIN/NFSMOUNT.S.txt index 91191b1c..f4eef477 100644 --- a/BIN/NFSMOUNT.S.txt +++ b/BIN/NFSMOUNT.S.txt @@ -64,7 +64,7 @@ CS.INIT >SYSCALL GetArgC rts .99 >LDYA L.MSG.USAGE - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #SYSMGR.ERRSYN sec rts diff --git a/BIN/NSCUTIL.S.txt b/BIN/NSCUTIL.S.txt index 5cafde08..d7a8de5f 100644 --- a/BIN/NSCUTIL.S.txt +++ b/BIN/NSCUTIL.S.txt @@ -60,7 +60,7 @@ CS.RUN.READ jsr NSC.Init bpl .1 >LDYA L.MSG.READ.KO - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #MLI.ERR.NODEV sec @@ -69,7 +69,7 @@ CS.RUN.READ jsr NSC.Init .8 jsr NSC.Dump >LDYA L.MSG.USAGE - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #0 tell TSKMGR that all done ok, but sec we do not want to stay in memory @@ -278,16 +278,16 @@ NSC.Dump ldx #1 >PUSHA >LDYA L.MSG.READ.OK1 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA >LDYA L.MSG.READ.OK2.24 bit DS1216E.DATA+4 bpl .3 >LDYA L.MSG.READ.OK2.12 -.3 >SYSCALL PrintFYA +.3 >SYSCALL PrintF.YA >LDYA L.MSG.READ.OK3 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda DS1216E.DATA+2 jsr PrintBCD @@ -301,7 +301,7 @@ NSC.Dump ldx #1 jsr PrintBCD >LDYA L.MSG.READ.OK4 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda DS1216E.DATA+4 bpl .4 diff --git a/BIN/PING.S.txt b/BIN/PING.S.txt index efd0737c..c15a463d 100644 --- a/BIN/PING.S.txt +++ b/BIN/PING.S.txt @@ -67,7 +67,7 @@ CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG is TCPIP loaded ? bmi CS.RUN.IPOK >LDYA L.MSG.IPKO - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #SYSMGR.ERRSYN sec rts @@ -95,7 +95,7 @@ CS.RUN.IPOK >SYSCALL GetArgC bra .99 .9 >LDYA L.MSG.USAGE -.99 >SYSCALL PrintFYA +.99 >SYSCALL PrintF.YA lda #SYSMGR.ERRSYN sec rts @@ -115,7 +115,7 @@ CS.RUN.HOSTOK lda #1 bpl .1 >LDYA L.MSG.HOSTOK - >SYSCALL PrintFYA + >SYSCALL PrintF.YA CS.RUN.OPENSKT ldx #3 ldy #S.IPCFG.IP+3 @@ -140,7 +140,7 @@ CS.RUN.OPENSKT ldx #3 bcc .2 >LDYA L.MSG.SKTKO - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #SYSMGR.ERRSYN sec rts @@ -246,7 +246,7 @@ CS.Print.UNREACH dey >PUSHB (pData),y DST.IP >LDYA L.MSG.UNREACH - >SYSCALL PrintFYA + >SYSCALL PrintF.YA rts *-------------------------------------- CS.Print.REPLY lda #TIMEOUT.MAX @@ -288,7 +288,7 @@ CS.Print.REPLY lda #TIMEOUT.MAX >PUSHB (ZPFrameBase),y >LDYA L.MSG.REPLY - >SYSCALL PrintFYA + >SYSCALL PrintF.YA rts *-------------------------------------- CS.QUIT ldy #hFrame diff --git a/BIN/PS.S.txt b/BIN/PS.S.txt index 4bad9138..9559c551 100644 --- a/BIN/PS.S.txt +++ b/BIN/PS.S.txt @@ -45,7 +45,7 @@ CS.RUN >LDYAI TSKMGR.TABLE+S.PS stz PS.COUNT >LDYA L.MSG0 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA .1 lda (ZPPTR1) bpl .4 @@ -66,7 +66,7 @@ CS.RUN >LDYAI TSKMGR.TABLE+S.PS lda (ZPPTR1),y >PUSHA PID >LDYA L.MSG1 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA .4 lda ZPPTR1 clc diff --git a/BIN/RPCDUMP.S.txt b/BIN/RPCDUMP.S.txt index 249f1288..48278764 100644 --- a/BIN/RPCDUMP.S.txt +++ b/BIN/RPCDUMP.S.txt @@ -74,7 +74,7 @@ CS.INIT >SYSCALL GetArgC rts .99 >LDYA L.MSG.USAGE - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #SYSMGR.ERRSYN sec rts @@ -96,7 +96,7 @@ CS.RUN jsr Init.Timeout >SYSCALL GetArg.A >PUSHYA >LDYA L.MSG.UNKNOWN - >SYSCALL PrintFYA + >SYSCALL PrintF.YA sec rts @@ -158,7 +158,7 @@ CS.RUN jsr Init.Timeout >SYSCALL GetArg.A >PUSHYA >LDYA L.MSG.TIMEOUT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA sec rts *-------------------------------------- @@ -207,7 +207,7 @@ DumpRPCFrame lda #S.UDP+24 sta ZPFrameBase+1 >LDYA L.MSG.DUMP0 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA .1 ldy #3 lda (ZPFrameBase),y Value follows? @@ -231,7 +231,7 @@ DumpRPCFrame lda #S.UDP+24 bne .7 >LDYA L.MSG.DUMP1 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #20 clc diff --git a/BIN/X.CPMVRM.S.txt b/BIN/X.CPMVRM.S.txt index ef1a9e9e..5d981257 100644 --- a/BIN/X.CPMVRM.S.txt +++ b/BIN/X.CPMVRM.S.txt @@ -77,7 +77,7 @@ CS.INIT >SYSCALL GetArgC bne .2 .99 >LDYA L.MSG.USAGE - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #SYSMGR.ERRSYN sec rts @@ -321,7 +321,7 @@ CS.RUN.LEAVE jsr LeaveSubDir exit this sub dir.... dey >PUSHB (pData),y >LDYA L.MSG.DONE - >SYSCALL PrintFYA + >SYSCALL PrintF.YA .91 ldy #RC lda (pData),y get global RC in case of bContinue @@ -506,7 +506,7 @@ CS.RUN.FILE.MSG clc >LDYA L.MSG.DIR bcs .2 .1 >LDYA L.MSG.FILE -.2 >SYSCALL PrintFYA +.2 >SYSCALL PrintF.YA rts .8 clc @@ -524,7 +524,7 @@ CS.RUN.OVERWRITE.MSG jsr CS.RUN.GetPathY >PUSHYA >LDYA L.MSG.OVERWRITE - >SYSCALL PrintFYA + >SYSCALL PrintF.YA rts CS.RUN.OVERWRITE.KEY @@ -688,7 +688,7 @@ CS.RUN.CheckErr bcs .1 bmi .8 >LDYA L.MSG.OK - >SYSCALL PrintFYA + >SYSCALL PrintF.YA rts .1 ldy #RC @@ -703,7 +703,7 @@ CS.RUN.CheckErr bcs .1 >PUSHA >LDYA L.MSG.ERR - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 rts diff --git a/DRV/CONSOLE.DRV.S.txt b/DRV/CONSOLE.DRV.S.txt index e3dfb95b..16459b67 100644 --- a/DRV/CONSOLE.DRV.S.txt +++ b/DRV/CONSOLE.DRV.S.txt @@ -38,7 +38,7 @@ L.MSG.DETECT .DA MSG.DETECT .DA 0 End Of Reloc Table *-------------------------------------- Dev.Detect >LDYA L.MSG.DETECT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA clc rts diff --git a/DRV/DHGR.DRV.S.txt b/DRV/DHGR.DRV.S.txt index 99997682..99a882a4 100644 --- a/DRV/DHGR.DRV.S.txt +++ b/DRV/DHGR.DRV.S.txt @@ -37,7 +37,7 @@ L.MSG.DETECT .DA MSG.DETECT .DA 0 End Of Reloc Table *-------------------------------------- Dev.Detect >LDYA L.MSG.DETECT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA ldx #0 .1 txa diff --git a/DRV/LANCEGS.DRV.S.txt b/DRV/LANCEGS.DRV.S.txt index 8b801d35..f6b55e1c 100644 --- a/DRV/LANCEGS.DRV.S.txt +++ b/DRV/LANCEGS.DRV.S.txt @@ -41,7 +41,7 @@ L.DEV.HEADER.NAME .DA DEV.HEADER.NAME *-------------------------------------- Dev.Detect >STYA Args >LDYA L.MSG.DETECT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA ldx #$70 ldy #7 @@ -62,7 +62,7 @@ Dev.Detect >STYA Args bne .1 >LDYA L.MSG.DETECT.KO - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #MLI.ERR.NODEV sec @@ -89,7 +89,7 @@ Dev.Detect >STYA Args .4 >PUSHW L.DEV.HEADER.NAME >LDYA L.MSG.DETECT.OK - >SYSCALL PrintFYA + >SYSCALL PrintF.YA clc rts *-------------------------------------- diff --git a/DRV/MOUSE.DRV.S.txt b/DRV/MOUSE.DRV.S.txt index 0cdd6052..e6a1d6a5 100644 --- a/DRV/MOUSE.DRV.S.txt +++ b/DRV/MOUSE.DRV.S.txt @@ -74,7 +74,7 @@ L.DEV.HEADER.NAME .DA DEV.HEADER.NAME .DA 0 End Of Reloc Table *-------------------------------------- Dev.Detect >LDYA L.MSG.DETECT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA stz ZPTmpPtr1 lda #$C1 @@ -96,7 +96,7 @@ Dev.Detect >LDYA L.MSG.DETECT bne .1 >LDYA L.MSG.DETECT.KO - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #MLI.ERR.NODEV sec @@ -116,7 +116,7 @@ Dev.Detect >LDYA L.MSG.DETECT >PUSHW L.DEV.HEADER.NAME >LDYA L.MSG.DETECT.OK - >SYSCALL PrintFYA + >SYSCALL PrintF.YA clc rts *-------------------------------------- diff --git a/DRV/PIC.DRV.S.txt b/DRV/PIC.DRV.S.txt index c8e29b81..94614a62 100644 --- a/DRV/PIC.DRV.S.txt +++ b/DRV/PIC.DRV.S.txt @@ -36,7 +36,7 @@ L.DEV.HEADER.NAME .DA DEV.HEADER.NAME *-------------------------------------- Dev.Detect >STYA ARGS >LDYA L.MSG.DETECT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA stz ZPTmpPtr1 lda #$C1 @@ -63,7 +63,7 @@ Dev.Detect >STYA ARGS bne .1 >LDYA L.MSG.DETECT.KO - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #MLI.ERR.NODEV Not Found in any slot, exiting sec @@ -86,7 +86,7 @@ Dev.Detect >STYA ARGS >PUSHW L.DEV.HEADER.NAME >LDYA L.MSG.DETECT.OK - >SYSCALL PrintFYA + >SYSCALL PrintF.YA clc rts *-------------------------------------- diff --git a/DRV/SSC.DRV.S.txt b/DRV/SSC.DRV.S.txt index ee818509..5977112c 100644 --- a/DRV/SSC.DRV.S.txt +++ b/DRV/SSC.DRV.S.txt @@ -38,7 +38,7 @@ L.DEV.HEADER.NAME .DA DEV.HEADER.NAME Dev.Detect >STYA ARGS >LDYA L.MSG.DETECT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA stz ZPTmpPtr1 lda #$C1 @@ -65,7 +65,7 @@ Dev.Detect >STYA ARGS bne .1 >LDYA L.MSG.DETECT.KO - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #MLI.ERR.NODEV Not Found in any slot, exiting sec @@ -88,7 +88,7 @@ Dev.Detect >STYA ARGS >PUSHW L.DEV.HEADER.NAME >LDYA L.MSG.DETECT.OK - >SYSCALL PrintFYA + >SYSCALL PrintF.YA clc rts *-------------------------------------- diff --git a/DRV/SSC.I.DRV.S.txt b/DRV/SSC.I.DRV.S.txt index 477b62cc..3a9b1bc0 100644 --- a/DRV/SSC.I.DRV.S.txt +++ b/DRV/SSC.I.DRV.S.txt @@ -41,7 +41,7 @@ L.DEV.HEADER.NAME .DA DEV.HEADER.NAME Dev.Detect >STYA ARGS >LDYA L.MSG.DETECT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA stz ZPTmpPtr1 lda #$C1 @@ -68,7 +68,7 @@ Dev.Detect >STYA ARGS bne .1 >LDYA L.MSG.DETECT.KO - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #MLI.ERR.NODEV Not Found in any slot, exiting sec @@ -91,7 +91,7 @@ Dev.Detect >STYA ARGS >PUSHW L.DEV.HEADER.NAME >LDYA L.MSG.DETECT.OK - >SYSCALL PrintFYA + >SYSCALL PrintF.YA clc rts *-------------------------------------- diff --git a/DRV/UTHER2.AI.DRV.S.txt b/DRV/UTHER2.AI.DRV.S.txt index 65baaa47..a9d0fea3 100644 --- a/DRV/UTHER2.AI.DRV.S.txt +++ b/DRV/UTHER2.AI.DRV.S.txt @@ -43,7 +43,7 @@ L.DEV.HEADER.NAME .DA DEV.HEADER.NAME *-------------------------------------- Dev.Detect >STYA Args >LDYA L.MSG.DETECT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA ldx #$70+$88 ldy #7 @@ -87,7 +87,7 @@ Dev.Detect >STYA Args bne .1 >LDYA L.MSG.DETECT.KO - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #MLI.ERR.NODEV sec @@ -125,7 +125,7 @@ Dev.Detect >STYA Args .8 >PUSHW L.DEV.HEADER.NAME >LDYA L.MSG.DETECT.OK - >SYSCALL PrintFYA + >SYSCALL PrintF.YA clc rts *-------------------------------------- diff --git a/DRV/UTHERNET.DRV.S.txt b/DRV/UTHERNET.DRV.S.txt index 95ec03b7..5e62fb5b 100644 --- a/DRV/UTHERNET.DRV.S.txt +++ b/DRV/UTHERNET.DRV.S.txt @@ -41,7 +41,7 @@ L.DEV.HEADER.NAME .DA DEV.HEADER.NAME *-------------------------------------- Dev.Detect >STYA ARGS >LDYA L.MSG.DETECT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA ldx #$70 ldy #7 @@ -71,7 +71,7 @@ Dev.Detect >STYA ARGS bne .1 >LDYA L.MSG.DETECT.KO - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #MLI.ERR.NODEV sec @@ -119,7 +119,7 @@ Dev.Detect >STYA ARGS .8 >PUSHW L.DEV.HEADER.NAME >LDYA L.MSG.DETECT.OK - >SYSCALL PrintFYA + >SYSCALL PrintF.YA clc rts *-------------------------------------- diff --git a/DRV/UTHERNET2.DRV.S.txt b/DRV/UTHERNET2.DRV.S.txt index 11dcbd84..ebc67717 100644 --- a/DRV/UTHERNET2.DRV.S.txt +++ b/DRV/UTHERNET2.DRV.S.txt @@ -42,7 +42,7 @@ L.DEV.HEADER.NAME .DA DEV.HEADER.NAME *-------------------------------------- Dev.Detect >STYA Args >LDYA L.MSG.DETECT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA ldx #$70+$88 ldy #7 @@ -86,7 +86,7 @@ Dev.Detect >STYA Args bne .1 >LDYA L.MSG.DETECT.KO - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #MLI.ERR.NODEV sec @@ -124,7 +124,7 @@ Dev.Detect >STYA Args .8 >PUSHW L.DEV.HEADER.NAME >LDYA L.MSG.DETECT.OK - >SYSCALL PrintFYA + >SYSCALL PrintF.YA clc rts *-------------------------------------- diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index 841af1d5..4c4b14ef 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -160,121 +160,134 @@ H.BIN.DRV.REL.TABLE .EQ 0 *-------------------------------------- * A2osX.SYSCALL Functions Indexes *-------------------------------------- -SYS.FileSearch .EQ $00 -SYS.GetFullPath.YA .EQ $02 -SYS.LoadFile .EQ $04 -SYS.SaveFile .EQ $06 +* .EQ $00 +* .EQ $02 +SYS.Stat .EQ $04 +SYS.MKDir.YA .EQ $06 +SYS.MKNod.YA .EQ $08 +SYS.MKFIFO .EQ $0A +* .EQ $0C +* .EQ $0E -SYS.ChTyp .EQ $08 -SYS.ChMod .EQ $0A -SYS.ChOwn .EQ $0C -SYS.ChGrp .EQ $0E -*-------------------------------------- -SYS.LoadDrvYA .EQ $10 -SYS.LoadLibYA .EQ $12 -SYS.UnloadLibA .EQ $14 -SYS.LoadBin.YA .EQ $16 -SYS.TimeYA .EQ $18 -SYS.CTime2Time .EQ $1A -SYS.PTime2Time .EQ $1C -* .EQ $1E -*-------------------------------------- -SYS.FOpen .EQ $20 +SYS.OpenDir.YA .EQ $10 +SYS.ReadDir.A .EQ $12 +SYS.CloseDir.A .EQ $14 +* .EQ $16-$1E + +SYS.FPutC.AY .EQ $20 +SYS.PutChar.A .EQ $22 +SYS.GetC.A .EQ $24 +SYS.GetChar .EQ $26 +SYS.FPutS .EQ $28 +SYS.PutS.YA .EQ $2A +SYS.FGetS .EQ $2C +SYS.GetS.YA .EQ $2E + +SYS.FOpen .EQ $30 SYS.FOpen.R .EQ $01 Open For Read SYS.FOpen.W .EQ $02 Open For Write SYS.FOpen.A .EQ $04 Append SYS.FOpen.T .EQ $08 Open/Append in Text mode SYS.FOpen.X .EQ $80 Create if not exists -SYS.FClose.A .EQ $22 -SYS.FRead .EQ $24 -SYS.FWrite .EQ $26 -SYS.FFlush .EQ $28 -SYS.FSeek .EQ $2A +SYS.FClose.A .EQ $32 +SYS.FRead .EQ $34 +SYS.FWrite .EQ $36 +SYS.FFlush .EQ $38 +SYS.FSeek .EQ $3A SYS.FSeek.SET .EQ $00 SYS.FSeek.CUR .EQ $01 SYS.FSeek.END .EQ $02 -SYS.FTell .EQ $2C -SYS.FEOF .EQ $2E -SYS.Remove.YA .EQ $30 -SYS.Rename .EQ $32 -SYS.STAT .EQ $34 -* .EQ $36 -SYS.OpenDir.YA .EQ $38 -SYS.ReadDir.A .EQ $3A -SYS.CloseDir.A .EQ $3C -SYS.MKDir.YA .EQ $3E +SYS.FTell .EQ $3C +SYS.FEOF .EQ $3E +SYS.Remove.YA .EQ $40 +SYS.Rename .EQ $42 +* .EQ $44-$4E + +* .EQ $50 +SYS.SScanF .EQ $52 +* .EQ $54 +* .EQ $56 +SYS.PrintF.YA .EQ $58 +SYS.SPrintF.YA .EQ $5A +SYS.FPrintF.YA .EQ $5C +* .EQ $5E + +SYS.FileSearch .EQ $60 +SYS.GetFullPath.YA .EQ $62 +SYS.LoadFile .EQ $64 +SYS.SaveFile .EQ $66 + +SYS.ChTyp .EQ $68 +SYS.ChMod .EQ $6A +SYS.ChOwn .EQ $6C +SYS.ChGrp .EQ $6E *-------------------------------------- -* .EQ $40 -SYS.SScanF .EQ $42 -* .EQ $44 -SYS.PrintFYA .EQ $46 -SYS.SPrintFYA .EQ $48 -SYS.FPrintFYA .EQ $4A -SYS.AToI .EQ $4C -* .EQ $4E -*-------------------------------------- -SYS.NewPStrYA .EQ $50 -SYS.PStrCpy .EQ $52 -SYS.PStrCat .EQ $54 -SYS.PStrMatch .EQ $56 -SYS.PStrUprYA .EQ $58 -SYS.PStrLwrYA .EQ $5A -SYS.StrFTime .EQ $5C -*SYS.PStr2StrArrayYA .EQ $5E -*-------------------------------------- -SYS.ExecProcessNewEnvYA .EQ $60 -SYS.ExecProcessYA .EQ $62 -SYS.CreateProcessNewEnvYA .EQ $64 -SYS.CreateProcessYA .EQ $66 -SYS.GetPSByIDA .EQ $68 -* .EQ $6A -SYS.Sleep .EQ $6C -* .EQ $6E -*-------------------------------------- -SYS.GetArgC .EQ $70 -SYS.GetArg.A .EQ $72 -SYS.ExpandStr.YA .EQ $74 -* .EQ $76 -SYS.PutEnv.YA .EQ $78 -SYS.SetEnv .EQ $7A -SYS.GetEnv.YA .EQ $7C -SYS.UnsetEnv.YA .EQ $7E -*-------------------------------------- -SYS.GetDevByID.A .EQ $80 -SYS.GetDevByName.YA .EQ $82 -SYS.GetDevStatus.A .EQ $84 -* .EQ $86 -SYS.MKNod.YA .EQ $88 -SYS.MKNod.A .EQ $8A -SYS.MKFIFO .EQ $8C -* .EQ $8E -*-------------------------------------- -SYS.GetMem .EQ $90 -SYS.FreeMem.A .EQ $92 -SYS.GetMemPtr.A .EQ $94 -SYS.GetMemByID.A .EQ $96 -SYS.GetMem.YA .EQ $98 -SYS.GetMem0.YA .EQ $9A -* .EQ $9C +* .EQ $70 +SYS.PStrCpy .EQ $72 +SYS.PStrCat .EQ $74 +SYS.PStrMatch .EQ $76 +SYS.PStrUprYA .EQ $78 +SYS.PStrLwrYA .EQ $7A +SYS.StrFTime .EQ $7C +* .EQ $7E + +SYS.AToF .EQ $80 +SYS.AToI.YA .EQ $82 +SYS.AToL .EQ $84 +* .EQ $86-$8E + +SYS.TimeYA .EQ $90 +SYS.CTime2Time .EQ $92 +SYS.PTime2Time .EQ $94 +* .EQ $96 + +SYS.GetDevByID.A .EQ $98 +SYS.GetDevByName.YA .EQ $9A +SYS.GetDevStatus.A .EQ $9C * .EQ $9E -*-------------------------------------- -SYS.SetLoMem .EQ $A0 -SYS.GetMemStat.YA .EQ $A2 -* .EQ $A4 -* .EQ $A6 -SYS.LoadStkObj.YA .EQ $A8 -SYS.GetStkObj.A .EQ $AA -SYS.FreeStkObj.A .EQ $AC + +SYS.ExecProcessNewEnvYA .EQ $A0 +SYS.ExecProcessYA .EQ $A2 +SYS.CreateProcessNewEnvYA .EQ $A4 +SYS.CreateProcessYA .EQ $A6 +SYS.GetPSByIDA .EQ $A8 +* .EQ $AA +SYS.Sleep .EQ $AC * .EQ $AE + +SYS.GetArgC .EQ $B0 +SYS.GetArg.A .EQ $B2 +SYS.ExpandStr.YA .EQ $B4 +* .EQ $B6 + +SYS.PutEnv.YA .EQ $B8 +SYS.SetEnv .EQ $BA +SYS.GetEnv.YA .EQ $BC +SYS.UnsetEnv.YA .EQ $BE *-------------------------------------- -SYS.FPutC.AY .EQ $B0 -SYS.PutChar.A .EQ $B2 -SYS.GetC.A .EQ $B4 -SYS.GetChar .EQ $B6 -SYS.FPutS .EQ $B8 -SYS.PutS.YA .EQ $BA -SYS.FGetS .EQ $BC -SYS.GetS.YA .EQ $BE +SYS.GetMem .EQ $C0 +SYS.FreeMem.A .EQ $C2 +SYS.GetMemPtr.A .EQ $C4 +SYS.GetMemByID.A .EQ $C6 + +SYS.GetMem.YA .EQ $C8 +SYS.GetMem0.YA .EQ $CA +* .EQ $CC +* .EQ $CE + +SYS.SetLoMem .EQ $D0 +SYS.GetMemStat.YA .EQ $D2 +* .EQ $D4 +* .EQ $D6 + +SYS.LoadStkObj.YA .EQ $D8 +SYS.GetStkObj.A .EQ $DA +SYS.FreeStkObj.A .EQ $DC +* .EQ $DE +*-------------------------------------- +SYS.LoadLib.YA .EQ $E0 +SYS.UnloadLib.A .EQ $E2 +SYS.LoadDrv.YA .EQ $E4 *-------------------------------------- * ProDOS ERROR CODES : $00->$5F * Lib ERROR CODES : $80->$BF diff --git a/LIB/LIBTCPIP.S.SKT.txt b/LIB/LIBTCPIP.S.SKT.txt index 7a9e99dc..16fc60bd 100644 --- a/LIB/LIBTCPIP.S.SKT.txt +++ b/LIB/LIBTCPIP.S.SKT.txt @@ -310,7 +310,32 @@ SKT.AcceptA jsr SKT.GetA.I * A = hFile *\-------------------------------------- SKT.MkNodA sta NODE.SSOCK+S.NODE.SSOCK.HSKT + >SYSCALL MkNodA + + + +K.MkNod.A sta .1+1 + >LDYAI S.NODE.SSOCK + jsr K.GetMem0.YA + bcs .9 + + >STYA ZPPtr1 + + ldy #S.NODE.T + lda #S.NODE.T.SSOCK + sta (ZPPtr1),y + + ldy #S.NODE.SSOCK.HSKT +.1 lda #$ff + + sta (ZPPtr1),y + >LDYA ZPPtr1 +.9 rts + + + + bcs .9 >STYA ZPTmpPtr1 diff --git a/SBIN/DESKTOP.S.txt b/SBIN/DESKTOP.S.txt index 9c5f470d..1521b887 100644 --- a/SBIN/DESKTOP.S.txt +++ b/SBIN/DESKTOP.S.txt @@ -49,7 +49,7 @@ L.DrawLine6.CB .DA DrawLine6.CB .DA 0 *-------------------------------------- CS.INIT >LDYA L.MSG.INIT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA >LDYA L.LIBGFX >SYSCALL LoadLibYA diff --git a/SBIN/DHCPCLNT.S.txt b/SBIN/DHCPCLNT.S.txt index f335af2f..7e70390c 100644 --- a/SBIN/DHCPCLNT.S.txt +++ b/SBIN/DHCPCLNT.S.txt @@ -99,7 +99,7 @@ CS.INIT >LDYA L.LIBTCPIP .98 >LDYA L.MSG.CFG.ND bra .90 .99 >LDYA L.MSG.CFG.NA -.90 >SYSCALL PrintFYA +.90 >SYSCALL PrintF.YA lda #0 sec rts @@ -115,7 +115,7 @@ CS.RUN >PUSHW L.Socket sta (pData),y >LDYA L.MSG.CFG1 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA jsr Init.Timeout @@ -154,7 +154,7 @@ CS.RUN.SREQ ldx #3 bpl .1 >LDYA L.MSG.CFG2 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA ldy #hSocket >PUSHB (pData),y @@ -197,7 +197,7 @@ CS.RUN.OK lda #S.IPCFG.STATUS.OK bpl .2 >LDYA L.MSG.CFG.OK - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #0 Leave with NO ERROR sec rts @@ -205,7 +205,7 @@ CS.RUN.OK lda #S.IPCFG.STATUS.OK CS.RUN.KO pha >PUSHA >LDYA L.MSG.CFG.KO - >SYSCALL PrintFYA + >SYSCALL PrintF.YA pla sec rts diff --git a/SBIN/GETTY.S.txt b/SBIN/GETTY.S.txt index 09ea150e..51fa2ca4 100644 --- a/SBIN/GETTY.S.txt +++ b/SBIN/GETTY.S.txt @@ -45,7 +45,7 @@ CS.INIT >SYSCALL GetArgC bne .1 >LDYA L.MSG.USAGE - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #0 sec rts @@ -188,11 +188,11 @@ CS.RUN jsr Init.Timeout .5 >LDYA L.MSG.TELNET.OPT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs * >LDYA L.MSG.GREETINGS - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .8 unable to send greetings...loop.. diff --git a/SBIN/HTTPD.S.txt b/SBIN/HTTPD.S.txt index a81953c8..cbd65858 100644 --- a/SBIN/HTTPD.S.txt +++ b/SBIN/HTTPD.S.txt @@ -60,7 +60,7 @@ CS.INIT >LDYA L.LIBTCPIP CS.RUN jsr Init.Timeout >LDYA L.MSG.TCPWAIT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA .1 >LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG is TCPIP loaded ? bcs .99 @@ -79,7 +79,7 @@ CS.RUN jsr Init.Timeout jmp CS.RUN.ABORT .99 >LDYA L.MSG.TCPIPERR - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #SYSMGR.ERRSYN sec rts @@ -100,7 +100,7 @@ CS.RUN.INIT ldx #3 sta (pData),y >LDYA L.MSG.INITOK - >SYSCALL PrintFYA + >SYSCALL PrintF.YA .2 >SYSCALL Sleep jsr CS.RUN.SERVER @@ -127,13 +127,13 @@ CS.RUN.INIT ldx #3 bra .2 .9 >LDYA L.MSG.SKTERR - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #SYSMGR.ERRSYN sec rts CS.RUN.ABORT >LDYA L.MSG.ABORT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #0 CS.RUN.ERR sec @@ -178,7 +178,7 @@ CS.RUN.SERVER ldy #hSrvSocket >PUSHA >LDYA L.MSG.INCOMING - >SYSCALL PrintFYA + >SYSCALL PrintF.YA .8 clc .9 rts *-------------------------------------- @@ -190,7 +190,7 @@ CS.RUN.CLIENT sta hClntSocket bcs .1 >LDYAI UsrBuf256 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA >PUSHB hClntSocket >PUSHW L.HTTP.200OK diff --git a/SBIN/INSDRV.S.txt b/SBIN/INSDRV.S.txt index b704f80a..354c3d09 100644 --- a/SBIN/INSDRV.S.txt +++ b/SBIN/INSDRV.S.txt @@ -42,7 +42,7 @@ CS.INIT >SYSCALL GetArgC bne .1 >LDYA L.MSG.HELP - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #0 tell TSKMGR that all done ok, but sec we do not want to stay in memory rts @@ -52,12 +52,12 @@ CS.INIT >SYSCALL GetArgC >PUSHYA >LDYA L.MSG.LOAD - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #1 get PTR to ARG[1] (Driver name) >SYSCALL GetArg.A - >SYSCALL LoadDrvYA YA = PTR to ARG[1...n] + >SYSCALL LoadDrv.YA YA = PTR to ARG[1...n] bcs .99 lda #0 success, but.... diff --git a/SBIN/KCONFIG.S.txt b/SBIN/KCONFIG.S.txt index 91415af5..a83225b4 100644 --- a/SBIN/KCONFIG.S.txt +++ b/SBIN/KCONFIG.S.txt @@ -70,7 +70,7 @@ CS.RUN >LDYA L.FILENAME sta (pData),y >LDYA L.MSG.TOPBAR - >SYSCALL PrintFYA + >SYSCALL PrintF.YA jsr CS.RUN.Load bcs .1 @@ -78,19 +78,19 @@ CS.RUN >LDYA L.FILENAME bra .2 .1 >LDYA L.MSG.TOPBAR.KO -.2 >SYSCALL PrintFYA +.2 >SYSCALL PrintF.YA >LDYA L.MSG.KCONF - >SYSCALL PrintFYA + >SYSCALL PrintF.YA >LDYAI A2osX.HZ jsr CS.RUN.DumpConfYA >LDYA L.MSG.STATUSBAR - >SYSCALL PrintFYA + >SYSCALL PrintF.YA CS.RUN.REPaint >LDYA L.MSG.FCONF - >SYSCALL PrintFYA + >SYSCALL PrintF.YA ldy #hFileBuf lda (pData),y @@ -134,7 +134,7 @@ CS.RUN.Loop >SYSCALL Sleep bra CS.RUN.REPaint .8 >LDYA L.MSG.QUIT -.9 >SYSCALL PrintFYA +.9 >SYSCALL PrintF.YA lda #0 sec rts @@ -258,7 +258,7 @@ CS.RUN.DumpConfYA >PUSHB (ZPTmp1) >LDYA L.MSG.HZ - >SYSCALL PrintFYA + >SYSCALL PrintF.YA ldy #8 lda (ZPTmp1),y @@ -268,7 +268,7 @@ CS.RUN.DumpConfYA .10 >PUSHW L.MSG.ENABLED .12 >LDYA L.MSG.CHROOT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA ldy #9 Slot 1 @@ -297,7 +297,7 @@ CS.RUN.DumpConfYA >PUSHA Slot >LDYA L.MSG.SLOT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA ply iny @@ -305,7 +305,7 @@ CS.RUN.DumpConfYA bne .1 >LDYA L.MSG.PROMPT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA clc rts diff --git a/SBIN/LOGIN.S.txt b/SBIN/LOGIN.S.txt index 955f479a..66da7205 100644 --- a/SBIN/LOGIN.S.txt +++ b/SBIN/LOGIN.S.txt @@ -51,7 +51,7 @@ CS.RUN lda #0 sta (pData),y >LDYA L.MSG.LOGIN - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 lda #0 Echo all caracters @@ -65,7 +65,7 @@ CS.RUN lda #0 bcc .1 >LDYA L.MSG.PASSWORD - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 lda #'*' diff --git a/SBIN/NFSD.S.txt b/SBIN/NFSD.S.txt index 165c5176..6b516b32 100644 --- a/SBIN/NFSD.S.txt +++ b/SBIN/NFSD.S.txt @@ -59,7 +59,7 @@ CS.INIT >LDYA L.LIBTCPIP CS.RUN jsr Init.Timeout >LDYA L.MSG.TCPWAIT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA .1 >LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG is TCPIP loaded ? bcs .99 @@ -73,7 +73,7 @@ CS.RUN jsr Init.Timeout bcc .1 .99 >LDYA L.MSG.TCPIPERR - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #SYSMGR.ERRSYN sec rts @@ -94,7 +94,7 @@ CS.RUN.INIT ldx #3 sta (pData),y >LDYA L.MSG.INITOK - >SYSCALL PrintFYA + >SYSCALL PrintF.YA .11 >SYSCALL Sleep ldy #bCTRLC @@ -119,17 +119,17 @@ CS.RUN.INIT ldx #3 bpl .2 >LDYA L.MSG.INCOMING - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bra .11 .9 >LDYA L.MSG.SKTERR - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #SYSMGR.ERRSYN sec rts .99 >LDYA L.MSG.ABORT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #0 sec rts diff --git a/SBIN/SHELL.S.CMD.txt b/SBIN/SHELL.S.CMD.txt index 82df69d1..d27d6788 100644 --- a/SBIN/SHELL.S.CMD.txt +++ b/SBIN/SHELL.S.CMD.txt @@ -259,7 +259,7 @@ Cmd.Exec.PWD ldy #S.PS.hPREFIX >SYSCALL GetMemPtr.A >PUSHYA >LDYA L.MSG.PSTRCR - >SYSCALL PrintFYA + >SYSCALL PrintF.YA rts Cmd.Exec.CD1 stz UsrBuf256 @@ -407,7 +407,7 @@ Cmd.Exec.SET lda ARGS >PUSHW ZPPTR1 Push name >LDYA L.MSG.PRINTENV - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs .9 lda ZPPTR2 @@ -455,7 +455,7 @@ Cmd.Exec.SETVAR tax >PUSHYA push value >PUSHW L.ARGS push name >LDYA L.MSG.PRINTENV - >SYSCALL PrintFYA + >SYSCALL PrintF.YA .8 clc .9 rts @@ -481,7 +481,7 @@ Cmd.Exec.TIME clc >SYSCALL StrFTime >LDYAI UsrBuf256 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bcs Cmd.Exec.ECHO.RTS bra Cmd.Exec.ECHO.CR *-------------------------------------- @@ -490,7 +490,7 @@ Cmd.Exec.ECHO lda ARGS >PUSHW L.ARGS >LDYA L.MSG.PSTRCR - >SYSCALL PrintFYA + >SYSCALL PrintF.YA rts Cmd.Exec.ECHO.CR diff --git a/SBIN/SHELL.S.CSH.txt b/SBIN/SHELL.S.CSH.txt index b84b8200..aff4d544 100644 --- a/SBIN/SHELL.S.CSH.txt +++ b/SBIN/SHELL.S.CSH.txt @@ -151,7 +151,7 @@ CSH.Run jsr CSH.GetBuf >PUSHW pData >LDYA L.MSG.ECHO - >SYSCALL PrintFYA + >SYSCALL PrintF.YA .80 clc rts diff --git a/SBIN/SHELL.S.IO.txt b/SBIN/SHELL.S.IO.txt index 60b397ba..47faa424 100644 --- a/SBIN/SHELL.S.IO.txt +++ b/SBIN/SHELL.S.IO.txt @@ -38,7 +38,7 @@ IO.PrintErrMsg >PUSHA Save EC for PrintF .8 >PUSHW ZPPTR1 >LDYA L.MSG.ERROR - >SYSCALL PrintFYA + >SYSCALL PrintF.YA rts *-------------------------------------- MAN diff --git a/SBIN/SHELL.S.txt b/SBIN/SHELL.S.txt index 74e363f4..edec728b 100644 --- a/SBIN/SHELL.S.txt +++ b/SBIN/SHELL.S.txt @@ -139,7 +139,7 @@ CS.INIT jsr SetPWD bcs .9 >LDYA L.MSG.GREETINGS - >SYSCALL PrintFYA + >SYSCALL PrintF.YA * clc .9 rts @@ -283,7 +283,7 @@ CS.RUN.BATCH jsr CSH.Run >PUSHB (pData),y >LDYA L.MSG.CSHERR - >SYSCALL PrintFYA + >SYSCALL PrintF.YA jsr CSH.RestorePtr @@ -503,7 +503,7 @@ PrintPrompt >LDYA L.ENV.PS1 phx >PUSHYA >LDYA L.MSG.PROMPT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA plx php pha @@ -541,7 +541,7 @@ CmdLine.DEL lda (pData) *-------------------------------------- CmdLine.SET >PUSHW pData >LDYA L.MSG.PSTR - >SYSCALL PrintfYA + >SYSCALL PrintF.YA rts *-------------------------------------- .INB /A2OSX.SRC/SBIN/SHELL.S.CMD diff --git a/SBIN/TCPIP.S.CFG.txt b/SBIN/TCPIP.S.CFG.txt index a02b1141..3587defe 100644 --- a/SBIN/TCPIP.S.CFG.txt +++ b/SBIN/TCPIP.S.CFG.txt @@ -7,7 +7,7 @@ AUTO 6 *-------------------------------------- CFG.Read >PUSHW L.HOSTNAME >LDYA L.MSG.CFG - >SYSCALL PrintFYA + >SYSCALL PrintF.YA jsr CFG.Read.HOSTNAME bcc .1 @@ -15,11 +15,11 @@ CFG.Read >PUSHW L.HOSTNAME >LDYA L.MSG.CFG.KO bra .2 .1 >LDYA L.MSG.CFG.OK -.2 >SYSCALL PrintFYA +.2 >SYSCALL PrintF.YA >PUSHW L.TCPIP.CONF >LDYA L.MSG.CFG - >SYSCALL PrintFYA + >SYSCALL PrintF.YA jsr CFG.Read.TCPIP.CONF bcc .3 @@ -27,20 +27,20 @@ CFG.Read >PUSHW L.HOSTNAME >LDYA L.MSG.CFG.KO bra .4 .3 >LDYA L.MSG.CFG.OK -.4 >SYSCALL PrintFYA +.4 >SYSCALL PrintF.YA >PUSHW L.HOSTS >LDYA L.MSG.CFG - >SYSCALL PrintFYA + >SYSCALL PrintF.YA jsr CFG.Read.HOSTS bcc .5 >PUSHA >LDYA L.MSG.CFG.KO bra .6 -.5 >SYSCALL PrintFYA +.5 >SYSCALL PrintF.YA .6 >LDYA L.MSG.CFG.OK - >SYSCALL PrintFYA + >SYSCALL PrintF.YA rts *-------------------------------------- CFG.Read.HOSTNAME diff --git a/SBIN/TCPIP.S.txt b/SBIN/TCPIP.S.txt index 47594e95..889f51cf 100644 --- a/SBIN/TCPIP.S.txt +++ b/SBIN/TCPIP.S.txt @@ -95,7 +95,7 @@ CS.INIT.DEV >LDYA L.DEVNAME bne CS.INIT.DEV >LDYA L.MSG.DEV.KO - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #$28 MLI.ERR.NODEV sec rts @@ -107,7 +107,7 @@ CS.INIT.DEV >LDYA L.DEVNAME >PUSHW L.DEVNAME >LDYA L.MSG.DEV.OK - >SYSCALL PrintFYA + >SYSCALL PrintF.YA ldx #DEVMGR.OPEN jsr NetDevJmp diff --git a/SBIN/TELNETD.S.txt b/SBIN/TELNETD.S.txt index 53d954e8..6a1942cf 100644 --- a/SBIN/TELNETD.S.txt +++ b/SBIN/TELNETD.S.txt @@ -60,7 +60,7 @@ CS.INIT >LDYA L.LIBTCPIP CS.RUN jsr Init.Timeout >LDYA L.MSG.TCPWAIT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA .1 >LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG is TCPIP loaded ? bcs .99 @@ -79,7 +79,7 @@ CS.RUN jsr Init.Timeout jmp CS.RUN.ABORT .99 >LDYA L.MSG.TCPIPERR - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #SYSMGR.ERRSYN sec rts @@ -100,7 +100,7 @@ CS.RUN.INIT ldx #3 sta (pData),y >LDYA L.MSG.INITOK - >SYSCALL PrintFYA + >SYSCALL PrintF.YA .2 >SYSCALL Sleep jsr CS.RUN.SERVER @@ -110,13 +110,13 @@ CS.RUN.INIT ldx #3 bra .2 .9 >LDYA L.MSG.SKTERR - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #SYSMGR.ERRSYN sec rts CS.RUN.ABORT >LDYA L.MSG.ABORT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA lda #0 CS.RUN.ERR sec @@ -161,7 +161,7 @@ CS.RUN.SERVER ldy #hSrvSocket >PUSHA >LDYA L.MSG.INCOMING - >SYSCALL PrintFYA + >SYSCALL PrintF.YA .8 clc .9 rts *-------------------------------------- @@ -192,7 +192,7 @@ CS.RUN.CLIENT ldy #SktIndex .10 sta .2+1 >PUSHA >LDYA L.MSG.BYTE - >SYSCALL PrintFYA + >SYSCALL PrintF.YA .1 lda #$ff hSocket >PUSHA diff --git a/SYS/KERNEL.S.BIN.txt b/SYS/KERNEL.S.BIN.txt index 8f54e066..2f5debcd 100644 --- a/SYS/KERNEL.S.BIN.txt +++ b/SYS/KERNEL.S.BIN.txt @@ -4,43 +4,97 @@ LOMEM $A00 INC 1 AUTO 6 *-------------------------------------- +* K.LoadLib.YA +* in : +* Y,A = PTR To "LibName.o" C-String +* out : +* A = hMem To loaded LIB +*-------------------------------------- +K.LoadLib.YA jsr BIN.FindLIB + bcs .9 + + jsr BIN.Load.YA Y,A=filename full path + bcs .9 + + stx .8+1 + >STYA .1+1 + + txa Pass hLib to LibLoad + ldx #LIBMGR.LOAD +.1 jsr $ffff Self Modified, Call LIB.LOAD function + + bcs .99 + +.8 lda #$ff hLib + clc +.9 rts + +.99 pha + lda .8+1 + jsr K.FreeMem.A + pla + + sec + rts +*-------------------------------------- +* K.UnloadLib.A +* in : +* A = hMem To Lib +* out : +*-------------------------------------- +K.UnloadLib.A pha + jsr K.GetMemByID.A + >STYA ZPPtr1 + ldy #S.MEM.REFCNT + lda (ZPPtr1),y Get count of those referencing this lib + dec only one left ? + beq .1 + sta (ZPPtr1),y + pla + clc + rts + +.1 ldy #S.MEM.PTR + lda (ZPPtr1),y + sta .2+1 + + iny + lda (ZPPtr1),y + sta .2+2 + + ldx #LIBMGR.UNLOAD +.2 jsr $ffff Self Modified, Call LIB.UNLOAD function + pla + jmp K.FreeMem.A +*-------------------------------------- * K.LoadDrv.YA * in : -* Y,A = PTR To Full Cmd Line PStrArray +* Y,A = PTR to "NAME.DRV [PARAM]" C-String * out : * none *-------------------------------------- -K.LoadDrv.YA >STYA K.LoadDrv.CmdArray - - >LDYAI ENV.DRV push ENVNAME=DRV - >SYSCALL GetEnv.YA get value for ENV=DRV - bcs .9 - - >PUSHYA Push $DRV value - - >PUSHW K.LoadDrv.CmdArray (ARG[0] = DRVNAME) - - jsr K.FileSearch.I find Driver in $DRV +K.LoadDrv.YA jsr BIN.FindDRV bcs .9 - >LDYAI K.Buf256 - jsr K.LoadBin.YA Y,A =filename full path + jsr BIN.Load.YA Y,A =filename full path bcs .9 >STYA pDrv stx .97+1 - >LDYA K.LoadDrv.CmdArray + >LDYA BIN.CmdLine >STYA ZPPtr1 .1 lda (ZPPtr1) Advance to ARG[1] - beq .2 + pha inc ZPPtr1 - bne .1 + bne .2 inc ZPPtr1+1 - bra .1 -.2 >LDYA ZPPtr1 +.2 pla + bne .1 + + >LDYA ZPPtr1 jsr pDrvJmp call Dev.Detect bcs .96 @@ -60,95 +114,42 @@ K.LoadDrv.YA >STYA K.LoadDrv.CmdArray pla rts *-------------------------------------- -K.LoadDrv.CmdArray .BS 2 -*-------------------------------------- -* K.LoadLib.YA -* in : -* Y,A = PTR To Lib Name -* out : -* A = hMem To loaded LIB -*-------------------------------------- -K.LoadLib.YA >STYA K.LoadLib.Name SAVE LIBname for K.FileSearch - >LDYAI ENV.LIB push ENVNAME=LIB - >SYSCALL GetEnv.YA get value for ENV=LIB +BIN.FindLIB clc + .HS B0 bcs +BIN.FindDRV sec + >STYA BIN.CmdLine + + >LDYAI BIN.Find.ENV.LIB + bcc .1 + >LDYAI BIN.Find.ENV.DRV + +.1 >SYSCALL GetEnv.YA get value for Search Path bcs .9 - >PUSHYA Push $LIB value + >PUSHYA Push Search path - >PUSHW K.LoadLib.Name + >LDYA BIN.CmdLine - jsr K.FileSearch.I find libname in $LIB + jsr K.FileSearch.I find libname in Search bcs .9 - >LDYAI K.Buf256 - jsr K.LoadBin.YA Y,A=filename full path - bcs .9 - - stx .8+1 - >STYA LIB.Jump+1 - txa Pass hLib to LibLoad - ldx #LIBMGR.LOAD - jsr LIB.Jump Call LIB.LOAD function - - bcs .99 - -.8 lda #$ff hLib - clc .9 rts - -.99 pha - lda .8+1 - jsr K.FreeMem.A - pla - - sec - rts *-------------------------------------- -K.LoadLib.Name .BS 2 +BIN.Find.ENV.DRV >CSTR "DRV" +BIN.Find.ENV.LIB >CSTR "LIB" *-------------------------------------- -* K.UnloadLib.A -* in : -* A = hMem To Lib -* out : -*-------------------------------------- -K.UnloadLib.A pha - jsr K.GetMemByID.A - >STYA ZPPtr1 - ldy #S.MEM.REFCNT - lda (ZPPtr1),y Get count of those referencing this lib - dec only one left ? - beq .1 - sta (ZPPtr1),y - pla - clc - rts - -.1 ldy #S.MEM.PTR - lda (ZPPtr1),y - sta LIB.Jump+1 - - iny - lda (ZPPtr1),y - sta LIB.Jump+2 - - ldx #LIBMGR.UNLOAD - jsr LIB.Jump Call LIB.UNLOAD function - pla - jmp K.FreeMem.A -LIB.Jump jmp $ffff Self Modiied -*-------------------------------------- -* K.LoadBin.YA +* BIN.Load.YA * in : * A = hMem of FilePath (PSTR) * out : * Y,A = MEMPTR * X = hMem of Code Segment *-------------------------------------- -K.LoadBin.YA >STYA K.LoadBin.YA.Filename +BIN.Load.YA >STYA BIN.CmdLine jsr MEM.GetMemByNameYA - bcs K.LoadBin.YA.1 not already loaded + bcs BIN.Load.YA.1 not already loaded >STYA ZPPtr1 Save base address ldy #S.MEM.REFCNT @@ -159,8 +160,8 @@ K.LoadBin.YA >STYA K.LoadBin.YA.Filename txa jmp K.GetMemPtr.A X=hMem from K.GetMemByNameA *-------------------------------------- -K.LoadBin.YA.1 >PUSHWI K.S.STAT - >PUSHW K.LoadBin.YA.Filename +BIN.Load.YA.1 >PUSHWI K.S.STAT + >PUSHW BIN.CmdLine jsr K.STAT Look for AUXTYPE bcs .9 @@ -170,12 +171,12 @@ K.LoadBin.YA.1 >PUSHWI K.S.STAT >PUSHYA Push AUXTYPE >PUSHBI 6 S.FILEINFO.TYPE.BIN >PUSHBI SYS.FOpen.R - >PUSHW K.LoadBin.YA.Filename + >PUSHW BIN.CmdLine jsr K.LoadFile .9 bcs .99 Error Loading file - stx K.LoadBin.YA.hMem save hMem + stx BIN.hMem save hMem pha YA=CODE+DATA size tya @@ -212,11 +213,11 @@ K.LoadBin.YA.1 >PUSHWI K.S.STAT jsr BIN.RelocateEXE - >LDYA K.LoadBin.YA.Filename get back bin path - >SYSCALL NewPStrYA make a copy of this string + >LDYA BIN.CmdLine get back bin path + jsr K.NewPStr.YA make a copy of this string bcs .98 - lda K.LoadBin.YA.hMem Keep X=hMem + lda BIN.hMem Keep X=hMem jsr K.GetMemByID.A X unmodified >STYA ZPPtr1 @@ -228,28 +229,28 @@ K.LoadBin.YA.1 >PUSHWI K.S.STAT ldy #S.MEM.BIN sta (ZPPtr1),y - lda K.LoadBin.YA.hMem + lda BIN.hMem tax return hMEM to Caller... jsr K.GetMemPtr.A clc ...and Y,A=PTR to CS rts .98 pha - lda K.LoadBin.YA.hMem + lda BIN.hMem jsr K.FreeMem.A Discard Loaded Code pla sec .99 rts *-------------------------------------- -K.LoadBin.YA.Filename .BS 2 -K.LoadBin.YA.hMem .BS 1 +BIN.CmdLine .BS 2 +BIN.hMem .BS 1 *-------------------------------------- * BIN.InstallDRV * In: * pDrv = .DRV File Loaded Address * Note: -* K.LoadBin.YA called from K.LoadDrvYA +* BIN.Load.YA called from K.LoadDrvYA * Already setup correctly pDrv, * BIN.Relocate.Start,End *-------------------------------------- diff --git a/SYS/KERNEL.S.DAT.txt b/SYS/KERNEL.S.DAT.txt index b869cf4f..1ad3e41c 100644 --- a/SYS/KERNEL.S.DAT.txt +++ b/SYS/KERNEL.S.DAT.txt @@ -17,9 +17,6 @@ EvtMgr.Count .BS 1 TskMgr.Count .DA #1 One Slot Busy (Kernel PS=0) TskMgr.LastID .DA #0 *-------------------------------------- -ENV.DRV >PSTR "DRV" -ENV.LIB >PSTR "LIB" -*-------------------------------------- EmptyPSTR .DA #0 *-------------------------------------- MAN diff --git a/SYS/KERNEL.S.DIRENT.txt b/SYS/KERNEL.S.DIRENT.txt index 3e71efa5..e1343374 100644 --- a/SYS/KERNEL.S.DIRENT.txt +++ b/SYS/KERNEL.S.DIRENT.txt @@ -15,7 +15,7 @@ AUTO 6 *\-------------------------------------- K.OpenDir.YA jsr PFT.CheckPathYA >STYA ZPPtr2 - >STYA K.MLI.PARAMS+1 For GETFILEINFO,MLIOPEN + jsr STDIO.SetMLIPathYA For GETFILEINFO,MLIOPEN >LDYAI S.NODE.DIR jsr K.GetMem0.YA @@ -518,6 +518,11 @@ K.ReadDir.A.AddStat inc ZPPtr4+1 .8 rts *-------------------------------------- +ADDF.SRC .HS 1013141516171f20 +ADDF.DST .DA #S.STAT.P.TYPE,#S.STAT.BLOCKS,#S.STAT.BLOCKS+1 + .DA #S.STAT.SIZE,#S.STAT.SIZE+1,#S.STAT.SIZE+2 + .DA #S.STAT.P.AUXTYPE,#S.STAT.P.AUXTYPE+1 +*-------------------------------------- K.ReadDir.A.ClrStat ldx #S.STAT-1 @@ -594,11 +599,6 @@ K.ReadDir.A.ConvertTime adc #0 sta ZPPtr1+1 jmp TIME.PTime2TimePtr1Ptr2 -*-------------------------------------- -ADDF.SRC .HS 1013141516171f20 -ADDF.DST .DA #S.STAT.P.TYPE,#S.STAT.BLOCKS,#S.STAT.BLOCKS+1 - .DA #S.STAT.SIZE,#S.STAT.SIZE+1,#S.STAT.SIZE+2 - .DA #S.STAT.P.AUXTYPE,#S.STAT.P.AUXTYPE+1 */------------------------------------- * # CloseDir.A * ## In: @@ -606,7 +606,7 @@ ADDF.DST .DA #S.STAT.P.TYPE,#S.STAT.BLOCKS,#S.STAT.BLOCKS+1 * ## Out: * none, always succeed. *\------------------------------------- -K.CloseDir.A .EQ K.FClose.A +K.CloseDir.A .EQ K.FClose.A K.CloseDir.A.1 .EQ K.FClose.A.1 *-------------------------------------- MAN diff --git a/SYS/KERNEL.S.ENV.txt b/SYS/KERNEL.S.ENV.txt index 82288b5e..299b33df 100644 --- a/SYS/KERNEL.S.ENV.txt +++ b/SYS/KERNEL.S.ENV.txt @@ -4,42 +4,6 @@ LOMEM $A00 INC 1 AUTO 6 */-------------------------------------- -* # NewPStrYA -* Create a new copy of PSTR -* ## In: -* Y,A = PTR to buffer -* ## Out: -* CC : success -* Y,A = PTR to String -* X = hMem (PSTR) -* CS : error -* A = SYS error code -*\-------------------------------------- -K.NewPStr.YA >STYA ZPPtr2 - lda (ZPPtr2) - inc - tay - lda #0 Y,A = len of new string - jsr K.GetMem.YA - bcs .9 - - >STYA ZPPtr1 - - lda (ZPPtr2) - sta (ZPPtr1) - tay - beq .2 - -.1 lda (ZPPtr2),y - sta (ZPPtr1),y - dey - bne .1 - -.2 >LDYA ZPPtr1 - - clc -.9 rts -*/-------------------------------------- * # ExpandPStr.YA * ## In: * Y,A = PTR to String to Expand (PSTR) diff --git a/SYS/KERNEL.S.FIO.txt b/SYS/KERNEL.S.FIO.txt index 4c6e7182..06832911 100644 --- a/SYS/KERNEL.S.FIO.txt +++ b/SYS/KERNEL.S.FIO.txt @@ -126,7 +126,7 @@ K.GetFullPath.YA >SYSCALL PStrCat K.GetFullPath.YA.NewStr >LDYAI K.Buf256 - >SYSCALL NewPStrYA + jsr K.NewPStr.YA rts K.GetFullPath.YA.9 diff --git a/SYS/KERNEL.S.GP.txt b/SYS/KERNEL.S.GP.txt index ad49bf3f..d0ec0f77 100644 --- a/SYS/KERNEL.S.GP.txt +++ b/SYS/KERNEL.S.GP.txt @@ -48,12 +48,12 @@ GO.Reset jsr GO.A2osX *-------------------------------------- * *** MUST BE REINTRANT *** *-------------------------------------- -A2osX.SYSCALL1 bit K.SYSCALL.FLAGS,x +A2osX.SYSCALL1 bit K.SYSCALL.BANK,x bpl .8 in $E000, no BNK change sta .7+1 save A (Func Arg) - lda K.SYSCALL.FLAGS+1,x Get Target BNK + lda K.SYSCALL.BANK,x Get Target BNK cmp $D000 #RRAMWRAMBNK1 or #RRAMWRAMBNK2 beq .7 same as actual BNK...go restore A and JMP diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index e3bd6d3b..119d0292 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -105,30 +105,30 @@ Kernel.Init3 sta SETALTZP jsr PS0Init bcs * >LDYAI MSG.Init3 - >SYSCALL PrintFYA + >SYSCALL PrintF.YA >LDYAI MSG.DEV - >SYSCALL PrintFYA + >SYSCALL PrintF.YA jsr DevMgrInit bcs * >LDYAI MSG.IRQ - >SYSCALL PrintFYA + >SYSCALL PrintF.YA jsr IrqMgrInit bcs * >LDYAI MSG.EVT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA jsr EvtMgrInit bcs * >LDYAI MSG.FLT - >SYSCALL PrintFYA + >SYSCALL PrintF.YA jsr FltMgrInit bcs * >LDYAI MSG.TSK - >SYSCALL PrintFYA + >SYSCALL PrintF.YA jsr TskMgrInit bcs * @@ -138,11 +138,11 @@ Kernel.Init3 sta SETALTZP >PUSHYA >LDYAI MSG.Prefix - >SYSCALL PrintFYA + >SYSCALL PrintF.YA >PUSHWI STARTUP.CMDLINE >LDYAI MSG.Startup - >SYSCALL PrintFYA + >SYSCALL PrintF.YA >LDYAI STARTUP.CMDLINE >SYSCALL ExpandStr.YA @@ -153,7 +153,7 @@ Kernel.Init3 sta SETALTZP >SYSCALL FreeMem.A ...discard... >LDYAI MSG.Init3.OK - >SYSCALL PrintFYA + >SYSCALL PrintF.YA >LDYAI TskMgr.Table >STYA pPs @@ -166,7 +166,7 @@ Kernel.Init3 sta SETALTZP .9 >PUSHA >LDYAI MSG.StartupErr - >SYSCALL PrintFYA + >SYSCALL PrintF.YA bra * No need to discard Expanded CMDLINE *-------------------------------------- @@ -781,7 +781,7 @@ TskMgrInit >LDYAI TskMgr.Table+S.PS Clear whole process table except PS0 bcs .9 >LDYAI K.Buf256 - >SYSCALL NewPStrYA + jsr K.NewPStr.YA bcs .9 txa diff --git a/SYS/KERNEL.S.JMP.txt b/SYS/KERNEL.S.JMP.txt index 0be9b62f..bf3566bb 100644 --- a/SYS/KERNEL.S.JMP.txt +++ b/SYS/KERNEL.S.JMP.txt @@ -4,29 +4,38 @@ LOMEM $A00 INC 1 AUTO 6 *-------------------------------------- -* $D000-D0FF K.SYSCALL.JMP Jmp Table +* $E000-E0FF K.SYSCALL.JMP Jmp Table *-------------------------------------- * Bank 1 *-------------------------------------- -K.SYSCALL.JMP .DA K.FileSearch $00 - .DA K.GetFullPath.YA - .DA K.LoadFile - .DA K.SaveFile - .DA K.ChTyp - .DA K.ChMod - .DA K.ChOwn - .DA K.ChGrp -*-------------------------------------- - .DA K.LoadDrv.YA $10 - .DA K.LoadLib.YA - .DA K.UnloadLib.A - .DA K.LoadBin.YA - .DA K.Time.YA - .DA K.CTime2Time - .DA K.PTime2Time +K.SYSCALL.JMP .DA 0 $00 + .DA 0 + .DA K.Stat + .DA K.MKDir.YA + .DA K.MKNod.YA + .DA K.MKFIFO .DA 0 -*-------------------------------------- - .DA K.FOpen $20 + .DA 0 + + .DA K.OpenDir.YA $10 + .DA K.ReadDir.A + .DA K.CloseDir.A + .DA 0 + .DA 0 + .DA 0 + .DA 0 + .DA 0 + + .DA K.FPutC.AY $20 + .DA K.PutChar.A + .DA K.GetC.A + .DA K.GetChar + .DA K.FPutS + .DA K.PutS.YA + .DA K.FGetS + .DA K.GetS.YA + + .DA K.FOpen $30 .DA K.FClose.A .DA K.FRead .DA K.FWrite @@ -34,37 +43,64 @@ K.SYSCALL.JMP .DA K.FileSearch $00 .DA K.FSeek .DA K.FTell.A .DA K.FEOF.A -*-------------------------------------- - .DA K.Remove.YA $30 + + .DA K.Remove.YA $40 .DA K.Rename - .DA K.Stat .DA 0 - .DA K.OpenDir.YA - .DA K.ReadDir.A - .DA K.CloseDir.A - .DA K.MKDir.YA -*-------------------------------------- -* Bank 2 -*-------------------------------------- - .DA 0 $40 + .DA 0 + .DA 0 + .DA 0 + .DA 0 + .DA 0 + + .DA 0 $50 .DA K.SScanF .DA 0 + .DA 0 .DA K.PrintF.YA .DA K.SPrintF.YA .DA K.FPrintF.YA - .DA K.AToI .DA 0 + + .DA K.FileSearch $60 + .DA K.GetFullPath.YA + .DA K.LoadFile + .DA K.SaveFile + .DA K.ChTyp + .DA K.ChMod + .DA K.ChOwn + .DA K.ChGrp *-------------------------------------- - .DA 0 $50 +* Bank 2 +*-------------------------------------- + .DA 0 $70 .DA K.StrCpy .DA K.StrCat .DA K.StrMatch .DA K.StrUpr.YA .DA K.StrLwr.YA .DA K.StrFTime - .DA 0 K.PStr2StrArrayYA -*-------------------------------------- - .DA K.ExecProcessNewEnv.YA $60 + .DA 0 + + .DA K.AToF $80 + .DA K.AToI.YA + .DA K.AToL + .DA 0 + .DA 0 + .DA 0 + .DA 0 + .DA 0 + + .DA K.Time.YA $90 + .DA K.CTime2Time + .DA K.PTime2Time + .DA 0 + .DA K.GetDevByID.A + .DA K.GetDevByName.YA + .DA K.GetDevStatus.A + .DA 0 + + .DA K.ExecProcessNewEnv.YA $A0 .DA K.ExecProcess.YA .DA K.CreateProcessNewEnv.YA .DA K.CreateProcess.YA @@ -72,8 +108,8 @@ K.SYSCALL.JMP .DA K.FileSearch $00 .DA 0 .DA K.Sleep .DA 0 -*-------------------------------------- - .DA K.GetArgC $70 + + .DA K.GetArgC $B0 .DA K.GetArg.A .DA K.ExpandPStr.YA .DA 0 @@ -81,19 +117,10 @@ K.SYSCALL.JMP .DA K.FileSearch $00 .DA K.SetEnv .DA K.GetEnv.YA .DA K.UnsetEnv.YA -*-------------------------------------- - .DA K.GetDevByID.A $80 - .DA K.GetDevByName.YA - .DA K.GetDevStatus.A - .DA 0 - .DA K.MKNod.YA - .DA K.MKNod.A - .DA K.MKFIFO - .DA 0 *-------------------------------------- * $E000 *-------------------------------------- - .DA K.GetMem $90 + .DA K.GetMem $C0 .DA K.FreeMem.A .DA K.GetMemPtr.A .DA K.GetMemByID.A @@ -102,7 +129,7 @@ K.SYSCALL.JMP .DA K.FileSearch $00 .DA 0 .DA 0 *-------------------------------------- - .DA K.SetLoMem $A0 + .DA K.SetLoMem $D0 .DA K.GetMemStat.YA .DA 0 .DA 0 @@ -111,19 +138,23 @@ K.SYSCALL.JMP .DA K.FileSearch $00 .DA K.FreeStkObj.A .DA 0 *-------------------------------------- - .DA K.FPutC.AY $B0 - .DA K.PutChar.A - .DA K.GetC.A - .DA K.GetChar - .DA K.FPutS - .DA K.PutS.YA - .DA K.FGetS - .DA K.GetS.YA + .DA K.LoadLib.YA $E0 + .DA K.UnloadLib.A + .DA K.LoadDrv.YA *-------------------------------------- * LO Byte : -* #RRAMWRAMBNK1 or #RRAMWRAMBNK2 +* #RRAMWRAMBNK1,#RRAMWRAMBNK2 +* HI Byte : +* Flags (ROOT....) *-------------------------------------- -K.SYSCALL.FLAGS .DA #$80 $00 +K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 .DA #RRAMWRAMBNK1 .DA #$80 .DA #RRAMWRAMBNK1 @@ -131,7 +162,83 @@ K.SYSCALL.FLAGS .DA #$80 $00 .DA #RRAMWRAMBNK1 .DA #$80 .DA #RRAMWRAMBNK1 + .DA #$80 + + .DA #RRAMWRAMBNK1 $10 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + + .DA #RRAMWRAMBNK1 $20 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + + .DA #RRAMWRAMBNK1 $30 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + + .DA #RRAMWRAMBNK1 $40 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 $50 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 .DA #$80 .DA #RRAMWRAMBNK1 .DA #$80 @@ -140,154 +247,111 @@ K.SYSCALL.FLAGS .DA #$80 $00 .DA #RRAMWRAMBNK1 .DA #$80 .DA #RRAMWRAMBNK1 + .DA #$80 + + .DA #RRAMWRAMBNK1 $60 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 + .DA #RRAMWRAMBNK1 + .DA #$80 *-------------------------------------- - .DA #$80 $10 - .DA #RRAMWRAMBNK1 + .DA #RRAMWRAMBNK2 $70 .DA #$80 - .DA #RRAMWRAMBNK1 + .DA #RRAMWRAMBNK2 .DA #$80 - .DA #RRAMWRAMBNK1 + .DA #RRAMWRAMBNK2 + .DA #$80 + .DA #RRAMWRAMBNK2 + .DA #$80 + .DA #RRAMWRAMBNK2 + .DA #$80 + .DA #RRAMWRAMBNK2 + .DA #$80 + .DA #RRAMWRAMBNK2 + .DA #$80 + .DA #RRAMWRAMBNK2 + .DA #$80 + + .DA #RRAMWRAMBNK2 $80 + .DA #$80 + .DA #RRAMWRAMBNK2 + .DA #$80 + .DA #RRAMWRAMBNK2 + .DA #$80 + .DA #RRAMWRAMBNK2 + .DA #$80 + .DA #RRAMWRAMBNK2 + .DA #$80 + .DA #RRAMWRAMBNK2 + .DA #$80 + .DA #RRAMWRAMBNK2 + .DA #$80 + .DA #RRAMWRAMBNK2 .DA #$80 - .DA #RRAMWRAMBNK1 + .DA #RRAMWRAMBNK2 $90 .DA #$80 - .DA #RRAMWRAMBNK1 + .DA #RRAMWRAMBNK2 .DA #$80 - .DA #RRAMWRAMBNK1 + .DA #RRAMWRAMBNK2 .DA #$80 - .DA #RRAMWRAMBNK1 + .DA #RRAMWRAMBNK2 .DA #$80 - .DA #RRAMWRAMBNK1 -*-------------------------------------- - .DA #$80 $20 - .DA #RRAMWRAMBNK1 + .DA #RRAMWRAMBNK2 .DA #$80 - .DA #RRAMWRAMBNK1 + .DA #RRAMWRAMBNK2 .DA #$80 - .DA #RRAMWRAMBNK1 + .DA #RRAMWRAMBNK2 + .DA #$80 + .DA #RRAMWRAMBNK2 .DA #$80 - .DA #RRAMWRAMBNK1 + .DA #RRAMWRAMBNK2 $A0 .DA #$80 - .DA #RRAMWRAMBNK1 + .DA #RRAMWRAMBNK2 .DA #$80 - .DA #RRAMWRAMBNK1 + .DA #RRAMWRAMBNK2 .DA #$80 - .DA #RRAMWRAMBNK1 + .DA #RRAMWRAMBNK2 + .DA #$80 + .DA #RRAMWRAMBNK2 + .DA #$80 + .DA #RRAMWRAMBNK2 + .DA #$80 + .DA #RRAMWRAMBNK2 + .DA #$80 + .DA #RRAMWRAMBNK2 + .DA #$80 + + .DA #RRAMWRAMBNK2 $B0 + .DA #$80 + .DA #RRAMWRAMBNK2 + .DA #$80 + .DA #RRAMWRAMBNK2 + .DA #$80 + .DA #RRAMWRAMBNK2 + .DA #$80 + .DA #RRAMWRAMBNK2 + .DA #$80 + .DA #RRAMWRAMBNK2 + .DA #$80 + .DA #RRAMWRAMBNK2 + .DA #$80 + .DA #RRAMWRAMBNK2 .DA #$80 - .DA #RRAMWRAMBNK1 *-------------------------------------- - .DA #$80 $30 - .DA #RRAMWRAMBNK1 - .DA #$80 - .DA #RRAMWRAMBNK1 - .DA #$80 - .DA #RRAMWRAMBNK1 - .DA #$80 - .DA #RRAMWRAMBNK1 - - .DA #$80 - .DA #RRAMWRAMBNK1 - .DA #$80 - .DA #RRAMWRAMBNK1 - .DA #$80 - .DA #RRAMWRAMBNK1 - .DA #$80 - .DA #RRAMWRAMBNK1 -*-------------------------------------- -* $40 -> $8E -*-------------------------------------- - .DA #$80 $40 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 - - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 -*-------------------------------------- - .DA #$80 $50 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 - - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 -*-------------------------------------- - .DA #$80 $60 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 - - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 -*-------------------------------------- - .DA #$80 $70 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 - - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 -*-------------------------------------- - .DA #$80 $80 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 - - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 -*-------------------------------------- - .DA 0 $90 : MemMgr at $E000 + .DA 0 $C0 : MemMgr at $E000 .DA 0 .DA 0 .DA 0 @@ -305,7 +369,7 @@ K.SYSCALL.FLAGS .DA #$80 $00 .DA 0 .DA 0 *-------------------------------------- - .DA 0 $A0 + .DA 0 $D0 .DA 0 .DA 0 .DA 0 @@ -323,7 +387,7 @@ K.SYSCALL.FLAGS .DA #$80 $00 .DA 0 .DA 0 *-------------------------------------- - .DA 0 $B0 + .DA 0 $E0 .DA 0 .DA 0 .DA 0 @@ -350,6 +414,42 @@ PullPtr1Ptr2 clc bcc .9 >PULLW ZPPtr3 .9 rts +*/-------------------------------------- +* # NewPStrYA +* Create a new copy of PSTR +* ## In: +* Y,A = PTR to buffer +* ## Out: +* CC : success +* Y,A = PTR to String +* X = hMem (PSTR) +* CS : error +* A = SYS error code +*\-------------------------------------- +K.NewPStr.YA >STYA ZPPtr2 + lda (ZPPtr2) + inc + tay + lda #0 Y,A = len of new string + jsr K.GetMem.YA + bcs .9 + + >STYA ZPPtr1 + + lda (ZPPtr2) + sta (ZPPtr1) + tay + beq .2 + +.1 lda (ZPPtr2),y + sta (ZPPtr1),y + dey + bne .1 + +.2 >LDYA ZPPtr1 + + clc +.9 rts *-------------------------------------- MAN SAVE /A2OSX.SRC/SYS/KERNEL.S.JMP diff --git a/SYS/KERNEL.S.PS.txt b/SYS/KERNEL.S.PS.txt index 655709c5..da04cfc1 100644 --- a/SYS/KERNEL.S.PS.txt +++ b/SYS/KERNEL.S.PS.txt @@ -245,7 +245,7 @@ PS.Init >LDYA K.CreateProcess.CmdLine pla Restore PTR... ply - >SYSCALL LoadBin.YA Y,A=filename full path + jsr BIN.Load.YA Y,A=filename full path bcs .9 >STYA ZPPtr4 save PTR to Code Segment diff --git a/SYS/KERNEL.S.STAT.txt b/SYS/KERNEL.S.STAT.txt index 5f1e3dc1..d3b6b22e 100644 --- a/SYS/KERNEL.S.STAT.txt +++ b/SYS/KERNEL.S.STAT.txt @@ -8,11 +8,11 @@ AUTO 6 * Return information about a file * ## In : * PUSHW = PTR to S.STAT buffer -* PUSHW = PTR to Filename (PSTR) +* PUSHW = PTR to Filename (C-String) * ## Out : *\-------------------------------------- K.Stat jsr PFT.CheckPathSTK - >PULLW K.MLI.PARAMS+1 + jsr STDIO.PullMLIPath >PULLW K.Stat.StoreY+1 >MLICALL MLIGETFILEINFO bcs .9 @@ -157,33 +157,6 @@ K.MkNod.YA jsr K.GetDevByName.YA Ptr1=NAME sec rts */-------------------------------------- -* # MkNod.A -* return a hFile for a given Socket -* ## IN: -* A=hSocket -* ## OUT: -* CC = OK, CS = ERROR -* X = hFILE -* Y,A = pFILE -*\-------------------------------------- -K.MkNod.A sta .1+1 - >LDYAI S.NODE.SSOCK - jsr K.GetMem0.YA - bcs .9 - - >STYA ZPPtr1 - - ldy #S.NODE.T - lda #S.NODE.T.SSOCK - sta (ZPPtr1),y - - ldy #S.NODE.SSOCK.HSKT -.1 lda #$ff - - sta (ZPPtr1),y - >LDYA ZPPtr1 -.9 rts -*/-------------------------------------- * # MKFIFO * return a S.FILE to a new FIFO * ## IN: diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index 00ba283d..359f1a9a 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -4,6 +4,231 @@ LOMEM $A00 INC 1 AUTO 6 */-------------------------------------- +* # FPutC.AY +* Print A (char) to File +* ## In: +* A : char to print +* Y = hFILE +* ## Out: +* CC = success +*\-------------------------------------- +K.FPutC.AY sta K.PutC.Char + sty K.PutC.Node + tya + phy + bne K.PutChar.A.1 +K.PutChar.A.8 ply + clc + rts +*/-------------------------------------- +* # PutChar.A +* Print A (char) to StdOut +* ## In: +* A : char to print +* ## Out: +* CC = success +*\-------------------------------------- +K.PutChar.A sta K.PutC.Char + phy + ldy #S.PS.hStdOut + lda (pPs),y + beq K.PutChar.A.8 NUL + + phx + +K.PutChar.A.1 sta K.PutC.Node + jsr K.GetMemPtr.A + >STYA pDev + + ldy #S.NODE.T + lda (pDev),y + asl + tax + jsr K.PutChar.A.Jmp + + plx + ply + rts +*-------------------------------------- +K.PutChar.A.Jmp jmp (.1,x) +.1 .DA K.PutChar.A.REG + .DA STDIO.IOERR DIR + .DA K.PutChar.A.CDEV + .DA STDIO.IOERR BDEV + .DA STDIO.IOERR LNK + .DA STDIO.IOERR DSOCK + .DA K.PutChar.A.SSOCK + .DA K.PutChar.A.FIFO +*-------------------------------------- +K.PutChar.A.REG lda K.PutC.Node + ldy K.PutC.Char + jmp K.FWrite.AY +*-------------------------------------- +K.PutChar.A.CDEV ldy #S.NODE.DEV.JMP + lda (pDev),y + sta .1+1 + iny + lda (pDev),y + sta .1+2 + lda K.PutC.Char + ldx #DEVMGR.WRITE +.1 jmp $ffff +*-------------------------------------- +K.PutChar.A.SSOCK + lda (pDev) #S.NODE.HANDLER + jsr K.GetMemPtr.A + >STYA .1 + + ldy #S.NODE.SSOCK.HSKT + >PUSHB (pDev),y + >PUSHB K.PutC.Char + + ldy #S.NODE.SSOCK.WRITE + lda (pDev),y + tax Function Offset for write +.1 jmp $ffff +*-------------------------------------- +K.PutChar.A.FIFO + ldy #S.NODE.FIFO.S + lda (pDev),y + beq .9 Remote PS did not opened yet the pipe + cmp #S.NODE.FIFO.S.Closed + beq .99 Remote PS closed the Pipe + + ldy #S.NODE.FIFO.hMem + lda (pDev),y + jsr K.GetMemPtr.A + >STYA .1+2 + + ldy #S.NODE.FIFO.Head + lda (pDev),y + inc + dey #S.NODE.FIFO.Tail + cmp (pDev),y + beq .9 FIFO is full + iny + sta (pDev),y + tay + lda K.PutC.Char +.1 sta $ffff,y + clc + rts + +.9 lda #MLI.ERR.VOLFULL + sec + rts + +.99 lda #MLI.ERR.EOF + sec + rts +*-------------------------------------- +K.PutC.Char .BS 1 +K.PutC.Node .BS 1 +*/-------------------------------------- +* # GetChar +* Get char from StdIn +* ## In: +* none. +* ## Out: +* CC = success +* A = char +*\-------------------------------------- +K.GetChar ldy #S.PS.hStdIn + lda (pPs),y +*/-------------------------------------- +* # GetC.A +* Get char from File +* ## In: +* A = hFILE +* ## Out: +* CC = success +* A = char +*\-------------------------------------- +K.GetC.A sta K.PutC.Node + jsr K.GetMemPtr.A + >STYA pDev + + ldy #S.NODE.T + lda (pDev),y + asl + tax + jmp (.1,x) + +.1 .DA K.GetC.REG + .DA STDIO.IOERR DIR + .DA K.GetC.CDEV + .DA STDIO.IOERR BDEV + .DA STDIO.IOERR LNK + .DA STDIO.IOERR DSOCK + .DA K.GetC.SSOCK + .DA K.GetC.FIFO +*-------------------------------------- +K.GetC.REG lda K.PutC.Node + jmp K.FRead.A +*-------------------------------------- +K.GetC.CDEV ldx #DEVMGR.READ + ldy #S.NODE.DEV.JMP + lda (pDev),y + sta .1+1 + iny + lda (pDev),y + sta .1+2 +.1 jmp $ffff +*-------------------------------------- +K.GetC.SSOCK lda (pDev) #S.NODE.HANDLER + jsr K.GetMemPtr.A + >STYA .1 + + ldy #S.NODE.SSOCK.READ + lda (pDev),y + tax Function Offset for READ + + ldy #S.NODE.SSOCK.HSKT + lda (pDev),y + +.1 jmp $ffff +*-------------------------------------- +K.GetC.FIFO +*/-------------------------------------- +* # FPutS +* Write String to FILE +* ## In: +* PUSHW : CPtr +* PUSHB : hFILE +* ## Out: +* CC = success +*\-------------------------------------- +K.FPutS +*/-------------------------------------- +* # PutS.YA +* Write String to StdOut +* ## In: +* Y,A : CPtr +* ## Out: +* CC = success +*\-------------------------------------- +K.PutS.YA +*/-------------------------------------- +* # FGetS +* Read String From FILE +* ## In: +* PUSHW : CPtr +* PUSHB : hFILE +* ## Out: +* CC = success +*\-------------------------------------- +K.FGetS +*/-------------------------------------- +* # GetS.YA +* Read String From StdIn +* ## In: +* Y,A : CPtr +* ## Out: +* CC = success +*\-------------------------------------- +K.GetS.YA + bra * +*/-------------------------------------- * # FOpen * Open a file * ## In : @@ -334,7 +559,7 @@ K.FEOF.A.MARK .BS 3 * # Remove.YA *\-------------------------------------- K.Remove.YA jsr PFT.CheckPathYA - jsr STDIO.PullMLIPath + jsr STDIO.SetMLIPathYA >MLICALL MLIDESTROY rts */-------------------------------------- @@ -364,272 +589,6 @@ K.Rename jsr PFT.CheckPathSTK >MLICALL MLIRename rts -*-------------------------------------- -STDIO.PullMLIPath - >PULLYA -STDIO.SetMLIPathYA - >STYA .1+1 - - ldy #0 - -.1 lda $ffff,y Self Modified - beq .8 - iny - sta K.MLI.PATH,y - cpy #MLI.MAXPATH - bne .1 - -.8 sty K.MLI.PATH - >LDYAI K.MLI.PATH - >STYA K.MLI.PARAMS+1 - rts -*-------------------------------------- -STDIO.SetIOBUF >PUSHWI 1024 get a ProDOS IOBUF - >PUSHBI S.MEM.F.ALIGN+S.MEM.F.NOMOVE - jsr K.GetMem - bcs .9 - - >STYA K.MLI.PARAMS+3 Save Ptr to IOBUF for MLIOPEN call - txa - ldy #S.NODE.REG.IOBUF - sta (ZPPtr1),y -.9 rts -*-------------------------------------- -STDIO.GetRefNum jsr K.GetMemPtr.A - >STYA ZPPtr1 - ldy #S.NODE.REG.REF - lda (ZPPtr1),y - sta K.MLI.PARAMS+1 - rts -*/-------------------------------------- -* # FPutC.AY -* Print A (char) to File -* ## In: -* A : char to print -* Y = hFILE -* ## Out: -* CC = success -*\-------------------------------------- -K.FPutC.AY sta K.PutC.Char - sty K.PutC.Node - tya - phy - bne K.PutChar.A.1 -K.PutChar.A.8 ply - clc - rts -*/-------------------------------------- -* # PutChar.A -* Print A (char) to StdOut -* ## In: -* A : char to print -* ## Out: -* CC = success -*\-------------------------------------- -K.PutChar.A sta K.PutC.Char - phy - ldy #S.PS.hStdOut - lda (pPs),y - beq K.PutChar.A.8 NUL - - phx - -K.PutChar.A.1 sta K.PutC.Node - jsr K.GetMemPtr.A - >STYA pDev - - ldy #S.NODE.T - lda (pDev),y - asl - tax - jsr K.PutChar.A.Jmp - - plx - ply - rts -*-------------------------------------- -K.PutChar.A.Jmp jmp (.1,x) -.1 .DA K.PutChar.A.REG - .DA STDIO.IOERR DIR - .DA K.PutChar.A.CDEV - .DA STDIO.IOERR BDEV - .DA STDIO.IOERR LNK - .DA STDIO.IOERR DSOCK - .DA K.PutChar.A.SSOCK - .DA K.PutChar.A.FIFO -*-------------------------------------- -K.PutChar.A.REG lda K.PutC.Node - ldy K.PutC.Char - jmp K.FWrite.AY -*-------------------------------------- -K.PutChar.A.CDEV ldy #S.NODE.DEV.JMP - lda (pDev),y - sta .1+1 - iny - lda (pDev),y - sta .1+2 - lda K.PutC.Char - ldx #DEVMGR.WRITE -.1 jmp $ffff -*-------------------------------------- -K.PutChar.A.SSOCK - lda (pDev) #S.NODE.HANDLER - jsr K.GetMemPtr.A - >STYA .1 - - ldy #S.NODE.SSOCK.HSKT - >PUSHB (pDev),y - >PUSHB K.PutC.Char - - ldy #S.NODE.SSOCK.WRITE - lda (pDev),y - tax Function Offset for write -.1 jmp $ffff -*-------------------------------------- -K.PutChar.A.FIFO ldy #S.NODE.FIFO.S - lda (pDev),y - beq .9 Remote PS did not opened yet the pipe - cmp #S.NODE.FIFO.S.Closed - beq .99 Remote PS closed the Pipe - - ldy #S.NODE.FIFO.hMem - lda (pDev),y - jsr K.GetMemPtr.A - >STYA .1+2 - - ldy #S.NODE.FIFO.Head - lda (pDev),y - inc - dey #S.NODE.FIFO.Tail - cmp (pDev),y - beq .9 FIFO is full - iny - sta (pDev),y - tay - lda K.PutC.Char -.1 sta $ffff,y - clc - rts - -.9 lda #MLI.ERR.VOLFULL - sec - rts - -.99 lda #MLI.ERR.EOF - sec - rts -*-------------------------------------- -K.PutC.Char .BS 1 -K.PutC.Node .BS 1 -*/-------------------------------------- -* # GetChar -* Get char from StdIn -* ## In: -* none. -* ## Out: -* CC = success -* A = char -*\-------------------------------------- -K.GetChar ldy #S.PS.hStdIn - lda (pPs),y -*/-------------------------------------- -* # GetC.A -* Get char from File -* ## In: -* A = hFILE -* ## Out: -* CC = success -* A = char -*\-------------------------------------- -K.GetC.A sta K.PutC.Node - - jsr K.GetMemPtr.A - >STYA pDev - - ldy #S.NODE.T - lda (pDev),y - asl - tax - jmp (.1,x) - -.1 .DA K.GetC.REG - .DA STDIO.IOERR DIR - .DA K.GetC.CDEV - .DA STDIO.IOERR BDEV - .DA STDIO.IOERR LNK - .DA STDIO.IOERR DSOCK - .DA K.GetC.SSOCK - .DA K.GetC.FIFO -*-------------------------------------- -K.GetC.REG lda K.PutC.Node - jmp K.FRead.A -*-------------------------------------- -K.GetC.CDEV ldx #DEVMGR.READ - ldy #S.NODE.DEV.JMP - lda (pDev),y - sta .1+1 - iny - lda (pDev),y - sta .1+2 -.1 jmp $ffff -*-------------------------------------- -K.GetC.SSOCK lda (pDev) #S.NODE.HANDLER - jsr K.GetMemPtr.A - >STYA .1 - - ldy #S.NODE.SSOCK.READ - lda (pDev),y - tax Function Offset for READ - - ldy #S.NODE.SSOCK.HSKT - lda (pDev),y - -.1 jmp $ffff -*-------------------------------------- -K.GetC.FIFO -*/-------------------------------------- -* # FPutS -* Write String to FILE -* ## In: -* PUSHW : CPtr -* PUSHB : hFILE -* ## Out: -* CC = success -*\-------------------------------------- -K.FPutS -*/-------------------------------------- -* # PutS.YA -* Write String to StdOut -* ## In: -* Y,A : CPtr -* ## Out: -* CC = success -*\-------------------------------------- -K.PutS.YA -*/-------------------------------------- -* # FGetS -* Read String From FILE -* ## In: -* PUSHW : CPtr -* PUSHB : hFILE -* ## Out: -* CC = success -*\-------------------------------------- -K.FGetS -*/-------------------------------------- -* # GetS.YA -* Read String From StdIn -* ## In: -* Y,A : CPtr -* ## Out: -* CC = success -*\-------------------------------------- -K.GetS.YA - bra * -*-------------------------------------- -STDIO.IOERR lda #MLI.ERR.IO - sec - rts */-------------------------------------- * # SScanF * Scan a PStr (in progress) @@ -1128,6 +1087,47 @@ Printf.Cout jmp K.PutChar.A Printf.Cout.Ptr sta $ffff Self modified *-------------------------------------- +STDIO.PullMLIPath + >PULLYA +STDIO.SetMLIPathYA + >STYA .1+1 + + ldy #0 + +.1 lda $ffff,y Self Modified + beq .8 + iny + sta K.MLI.PATH,y + cpy #MLI.MAXPATH + bne .1 + +.8 sty K.MLI.PATH + >LDYAI K.MLI.PATH + >STYA K.MLI.PARAMS+1 + rts +*-------------------------------------- +STDIO.SetIOBUF >PUSHWI 1024 get a ProDOS IOBUF + >PUSHBI S.MEM.F.ALIGN+S.MEM.F.NOMOVE + jsr K.GetMem + bcs .9 + + >STYA K.MLI.PARAMS+3 Save Ptr to IOBUF for MLIOPEN call + txa + ldy #S.NODE.REG.IOBUF + sta (ZPPtr1),y +.9 rts +*-------------------------------------- +STDIO.GetRefNum jsr K.GetMemPtr.A + >STYA ZPPtr1 + ldy #S.NODE.REG.REF + lda (ZPPtr1),y + sta K.MLI.PARAMS+1 + rts +*-------------------------------------- +STDIO.IOERR lda #MLI.ERR.IO + sec + rts +*-------------------------------------- MAN SAVE /A2OSX.SRC/SYS/KERNEL.S.STDIO LOAD /A2OSX.SRC/SYS/KERNEL.S diff --git a/SYS/KERNEL.S.STDLIB.txt b/SYS/KERNEL.S.STDLIB.txt index 81bca8ec..38dad09c 100644 --- a/SYS/KERNEL.S.STDLIB.txt +++ b/SYS/KERNEL.S.STDLIB.txt @@ -4,14 +4,32 @@ LOMEM $A00 INC 1 AUTO 6 */-------------------------------------- -* # AToI -* Convert String to 32 bit int +* # AToF +* Convert String to 40 bits Float +* ## In: +* PUSHW PTR to target buffer (5 Bytes) +* PUSHW Source String (PSTR) +* ## Out: +*\-------------------------------------- +K.AToF +*/-------------------------------------- +* # AToI.YA +* Convert String to 16 bits int +* ## In: +* Y,A = Source String (C-String) +* ## Out: +* Y,A = Int +*\-------------------------------------- +K.AToI.YA +*/-------------------------------------- +* # AToL +* Convert String to 32 bits int * ## In: * PUSHW PTR to target buffer DWORD * PUSHW Source String (PSTR) * ## Out: *\-------------------------------------- -K.AToI jsr PullPtr1Ptr2 PSTR in Ptr1,buffer in Ptr2 +K.AToL jsr PullPtr1Ptr2 PSTR in Ptr1,buffer in Ptr2 stz ASCBUF diff --git a/SYS/KERNEL.S.txt b/SYS/KERNEL.S.txt index b548c275..0c5c5d4f 100644 --- a/SYS/KERNEL.S.txt +++ b/SYS/KERNEL.S.txt @@ -31,7 +31,8 @@ A2osX.D1 .PH $D000 .INB /A2OSX.SRC/SYS/KERNEL.S.STDIO .INB /A2OSX.SRC/SYS/KERNEL.S.STAT .INB /A2OSX.SRC/SYS/KERNEL.S.DIRENT - .INB /A2OSX.SRC/SYS/KERNEL.S.BIN + .INB /A2OSX.SRC/SYS/KERNEL.S.FIO + .INB /A2OSX.SRC/SYS/KERNEL.S.PFT .EP A2osX.D2 .PH $D000 .DA #RRAMWRAMBNK2 @@ -51,8 +52,7 @@ A2osX.E0 .PH $E000 .INB /A2OSX.SRC/SYS/KERNEL.S.DAT .INB /A2OSX.SRC/SYS/KERNEL.S.IRQ .INB /A2OSX.SRC/SYS/KERNEL.S.MEM - .INB /A2OSX.SRC/SYS/KERNEL.S.FIO - .INB /A2OSX.SRC/SYS/KERNEL.S.PFT + .INB /A2OSX.SRC/SYS/KERNEL.S.BIN .INB /A2OSX.SRC/SYS/KERNEL.S.D01 .EP A2osX.E0.E .EQ *