From 082f899a56b73f655287740b483ac85968fbd606 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Mon, 23 Jul 2018 17:28:42 +0200 Subject: [PATCH] Kernel 0.9.2 --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes A2osX.S.txt | 14 +++--- BIN/ARP.S.txt | 9 ++-- BIN/ASM.S.txt | 18 +++---- BIN/ASM.T.6502.S.txt | 6 +-- BIN/ASM.T.65816.S.txt | 6 +-- BIN/ASM.T.65C02.S.txt | 6 +-- BIN/ASM.T.65R02.S.txt | 6 +-- BIN/ASM.T.SW16.S.txt | 6 +-- BIN/ASM.T.Z80.S.txt | 6 +-- BIN/ATBROWSE.S.txt | 12 ++--- BIN/ATLOGON.S.txt | 12 ++--- BIN/CAT.S.txt | 8 ++-- BIN/CHTYP.S.txt | 8 ++-- BIN/CP.S.txt | 8 ++-- BIN/DNSINFO.S.txt | 8 ++-- BIN/EDIT.S.txt | 6 +-- BIN/FORMAT.S.txt | 8 ++-- BIN/IPCONFIG.S.txt | 99 ++++++++++++++++++++++----------------- BIN/LSDEV.S.txt | 8 ++-- BIN/MD.S.txt | 6 +-- BIN/MD5.S.txt | 10 ++-- BIN/MEM.S.txt | 6 +-- BIN/MEMDUMP.S.txt | 6 +-- BIN/MV.S.txt | 8 ++-- BIN/NETSTAT.S.txt | 9 ++-- BIN/NFSMOUNT.S.txt | 8 ++-- BIN/NSCUTIL.S.txt | 8 ++-- BIN/PING.S.txt | 13 ++--- BIN/PS.S.txt | 8 ++-- BIN/RM.S.txt | 8 ++-- BIN/RPCDUMP.S.txt | 13 ++--- BMP2PIX.S.txt | 12 ++--- DRV/DHGR.DRV.S.txt | 18 +++---- DRV/LANCEGS.DRV.S.txt | 14 +++--- DRV/MOUSE.DRV.S.txt | 12 ++--- DRV/PIC.DRV.S.txt | 8 ++-- DRV/SSC.DRV.S.txt | 8 ++-- DRV/SSC.I.DRV.S.txt | 8 ++-- DRV/UTHER2.AI.DRV.S.txt | 14 +++--- DRV/UTHERNET2.DRV.S.txt | 14 +++--- DRV/X.SSC.DRV.S.txt | 4 +- FNT2FON.S.txt | 14 +++--- INC/LIBTCPIP.I.txt | 22 ++++----- LIB/LIBCRYPT.S.txt | 8 ++-- LIB/LIBGUI.S.txt | 12 ++--- LIB/LIBPAK.S.txt | 8 ++-- LIB/LIBTCPIP.S.ARP.txt | 11 ++++- LIB/LIBTCPIP.S.CFG.txt | 29 ++++++------ LIB/LIBTCPIP.S.DNS.txt | 4 +- LIB/LIBTCPIP.S.FRM.txt | 22 +++++++-- LIB/LIBTCPIP.S.SKT.txt | 28 +++++------ LIB/LIBTCPIP.S.txt | 22 ++++----- README.md | 14 +++--- SBIN/DHCPCLNT.S.txt | 13 ++--- SBIN/GETTY.S.txt | 8 ++-- SBIN/GUI.S.txt | 12 ++--- SBIN/HTTPD.S.txt | 8 ++-- SBIN/KCONFIG.S.txt | 6 +-- SBIN/NFSD.S.txt | 8 ++-- SBIN/SHELL.S.txt | 8 ++-- SBIN/TCPIPD.S.CFG.txt | 46 ++++++++++++++++-- SBIN/TCPIPD.S.txt | 74 ++++------------------------- SBIN/TELNETD.S.txt | 8 ++-- SYS/KERNEL.S.INIT.txt | 2 +- SYS/KM.APPLETALK.S.txt | 10 ++-- SYS/KM.NSC.S.txt | 10 ++-- SYS/KM.RAMWORKS.S.txt | 12 ++--- SYS/KM.VSDRIVE.S.txt | 14 +++--- TEST.S.txt | 8 ++-- 71 files changed, 461 insertions(+), 449 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index a5e398b426be7258161fe5eb3c64b1f2ebb47325..1cf6c22bcd938588ced894950c1f4414aa91a946 100644 GIT binary patch delta 14095 zcmahw30PBC*7v=T7y%&&fj|HsSyWKNj=?;Yu%jVh5>~e$#)^B9w%RSwinZ2IsI6C8 z(3pa4T4JGgw03HXZBHNRnXWqN#oO|xMXTQm% zu`#8wF{M}SM@8i2}-&#JJH-6#ESg_j9IyXOd%@DdWTyM}v-3fa9wNKn$i-MTCHfShpH;~LyYCRiQ)u@A5d$J(2j0Mhn`C!s z*Isymg|2iF{{E8Pq1|)BKBfd{H;vj<(h$Ot;Ye$`$$9~j!yj}H2_>#*STIB4LxX@H zJo`0a2_pB{BsC(Gr;G{rVUs8Ap5s{nScU)Y9iBJfB`V}_>7l11D17+WlRunh@$JwyXwevLcW~mT z!nS9OP9~_FbsIO^xNWC`XfqLZJVwRX<+H|9febtYEs9MXkJ8uH+BP+8C$go1%9F-p zi`N=AuH@LK!P+U~krnlI4gA_^X(&2%6lo`tnQS#HIgd#LourK-hjID!!#YXRA~E<3 zasP-6lxH$&2u(?e`C%fJDmx#^W{-fg%gj{{9-fCHw4-o+u8%wy3FLDSj>c4Ek&eR? z3j*5`6X#i~Y%L0%%OSw4cJsVuBl-Mckfs#8xyV?slSiea$Sj2K#Z-hnn`f6-?wgg0 z#5q2}b5U7tsfLRMSdNo0Jrzafje<*y^`*RPCnqCuK0i-ZfXoneIr#+|NEwzgGZ&;u zD5dZwxCW924%rQpxl}g!k^HG_(QX0Rk^Z_}9JEe7kXkLt$=S zIVVvvl9r4>i}g92#!^sJ=?E~lFsIaPDmQW7tVPmABbcI6jv7KQ!ZZRb)|(gdoHLNr zJOVDLcvv%$ghLXFupr#uPDvxnMzElt6mC+A7A2G;e65|DPFEl-dz_l8s6+`Uv}%}^ z({nP=iK}^i$rmGReVmGOLNAl-z(gT^TW8p=- zAu>>8%~&vKgi}A{9^nd*Ls~lq%kMq|iC6k0u_0Xg1Qj`96%fIeaO2}tG<^%gEl+?r zs}b&ff>K4-@klI6Tz2jMR}sc4;jbO!8F14Y|Xavu>L@>|m=4$6@)Ai4URf>ie*oVAZq(D!rC zFuY|S6-00I4LbHw!E`e}2r*X~O*!Sc+{9F*-tMFMoX|YL4Z`uH{Zt^m!-q-S510pG zupjvEY&A!#;t>9++ zAzs=L4scSD_D4pkbD=sBgK%{Rv>Cm7JdPwY9+!rMkAfdYJT^*Dm}?pi{D?g$p~+CU zxxu!fsbT9TTNBjc+iWNd1K3n^N0Vg~7AfBgz}%XKnp+_KkENEkBm4>onELpbH5O?s z`XU1#F|$$l6Jt@lFKW?@4ut&=Q1OwSz}ehTZ@Y=_K7#eRZfgK6uVIM610*N8Mo8L-yFe`#Kgma6co(27IoX;bBN3NVOA-q29)T8u z-|P5{hr$nzfb&gxc^otig+Da{g(%78pczQ`G*P-6;VCXEoH#C71OkApV$7@b87FBQ zl07?$B#ZH7CI!iQM&V>N9-fAxJfm<+i5bcrSL>iXk{uew5J~tMpo8b2K}A`;&>p!U zY4ss|-9_o?=MkR!B-EV42yb|jN}cio5J~>Rvv`zK6C}(dyqe;ULW+KpnnJ&b@W=3E zjsYF%>k6T_~a_sJfF-TTf7#^eKd$CqU%W2%k6sS!4j=&)^v~2($TKnR5o7ffmJ_0b9KWBAi8- zeT|CBJjc^^;qZ){lH4&fposhf6#P1vH&<&mhdB298o`juVft{WN zt6oL;&Xb_#YY2Cc=Qogo2z&_P{~`3>B7EZ{6+?fAaO^4A%J&G*IYmX=fAB3?W-2JP z@M)0SN;1UBk3<(g@dTrLfJR9CGrtMhFMx!8K~t3LGbU&S>=E&+51zl9w^E5WD(llvzmY5K)UNckIt(kbxEeOr&tn02OWVrywc=_!&OM5e-1UDGsFg z!@;EC#fUF!^n7kYvY>HbBi}+pR})O(=s`FtOUB{NC3-H|!AUuU!li?hEPe7g0x&6` z4O38L=r~MqCEp&Vqo^AmC-VEk8@?4QP0uQaB9z1x4 zYOx0m(nBepRjlh11|64Kol{(bzN}6|=8iLxpPh1-5C&5-JM+o-hn{@KQ@}6>6pe4W zD;?kK+_d8doo~j^x-m0;;|A_V#uaA}Dwr1(y_27>lq5U-`zqVN)eZDZyg$jTF2V7i zb@oms6ISZUWjuL=bFakh51c!G(77p??f#3_>e$ZiYG$1YZsgd(?s|YVPzgN-##78R zS8b~V>Xq#Cl|vyefpa48d%Myr0zrP1S-UG`b&}@FR{Ha*w^p*=kF?e?vu-%7tfPi? z`7ibJdDseWWVJhzHw?LC!@r;6ca>ZY3g zT!^VuIZ%M&P|J!?!M`BWdPijH_vd-KF#TxnI;;ne)?J$QgLNOV_?4bI9-V zfcJ+1H-h&8H^qI9dEe`>W`a3uGJCGQ;`!zkM{VY=6`799x?NxBz@T61I=<3%e68!a zLY&}Pb*~we!pXFd7jpsssL2Fi`UQ`bJTEX0Xo$k5!pDE39VNx<7t@N>S9LoizjTaU z?movQ9rLleHI&&jwae07=DGqZ=#ALvq}nPymvoO*I_YDVbZwOb{ei@VdyI^y1a!kc z$NHn%N%d8_K7-jH%#kIuIH>ev0fi)f2qiIRnfIAbnU9rMl;0}DRT-*1CLpIL|D8+cUXG&)c|Z4IMq@8>QzP<)GI4WluEY ziD6uoFwH$(Yu)KYZRZ{D;+NOZ>7iC|{GwzYJW-@jlE zehy|+1^Db*@P`UTuhJ#;l&QVKLl*T=1jNS0!AV0C27ucc@AtdDQ!(8NnH4@jsOgL+ zo?&3hOy*@puZ58)dw=qjtG$Yz8uhUi>Op1i7Y*$$wliE?H-epnmp_YLmJQlTA4C)yQ zdaF$RmPP&i#m_H#>CZp5cG$~->3JtQ{+#L`HEM6*xf=D540im@b*=SUx%&D}?LE(_ zo&l`)yw-YMX6;y_K2)Oy`dU!)U{Y)F;GEuoe!-AtpuIwUx$*L##;e>_q4q3M5Bd#7 zG7l^h$MnuwyZ}?l~Aw8vx><#p>P| z@*!IfAEExe62Kp;06G}MYwP<~?DQ8zAEh_Ye+b}9^SC4R^t8Z?sOHbQKdqyhFFpU+ zV7j*)((7k~wAbj&gX;20=S4MFE9P>8<5N2qs7Q5j#^9y*(hpKm_=|h#I4b$*L_3|O zl!fo<9v<#YH8FMwdUNcXbk%-rxK} z=Z%8={^n(!ce1+?LfP-wC0zUxEw_)*bJfJ{D-MnotfQ9HmfQygUbWNDCD0zXvfow? zK>BT!l5t;UCzK2rc2#y)H80*)O=?cyXw7+@WLF{w6E^M7l7#F*+8gHd!(Y5aORQnj zZkqibRAWdYKJRm*M=GtPI7pd<#9j%LHH~CDF&PM8AhSB4hLe2LtlyU9oYj{V-#B!S zGodfb@r7;xJ}={nztUAvU+Rdw0|PDuh5f2-;POR3?~lxksh(B%%wOqPsvCd#S2`xX z8#3c3EnPa|9W75zZ!XzpyeNV^pV1h2F$A6ojec%LBXX4E#FuGl-7Rc$(Y8V-a@}yF zw!(ok-s^j9h0O*xvK2KKlR`&(6PG2jS+Gsv9>pP`=H*h9CoQC`2xEw{6d+t{|k z9XkOY?#_bG2=|S)LTD14F;E}@17dp|*z+p0oW%&i$T}eW$iL_ z7xN6ejNK(%zjWjk`WCU|Q$P6CC~^2FsElBI$0?fp%9J8Gdh!&VGs)gbXCjFRp*`<6+`I7Ri@>At+%21U;m9Da=?5cgL!J8_UpW_o1 zs3(f?$oXQ_^NGqOg2F@6Dfsh6Z_t=ZWq3&8ggWIaoJ~CU(`}!~y3g17Ki&ON9U^hf z1veCs^DYD62~Nr39DZn*0Fm|!w{G-{oXe4rZlx!d@l4^@bqbG782bptaB=) zp9BceEJr-++3)lGif!eYF7$l)P~4!v8{_orEB}X_^@a`fi@o%~K!1?;8Zcu1NbC)< zc9+ZQnC5cm?--HVDZujChZLIekBpKQIt!&Yary|sbDxWy6Z@)ngj9PcGX8OG)jJ2;sz>y_blVar zY%5vN`H~^&JJsGe(0TRSOYnyZLEzeztR$doN%zv`<=d9EtYo{F5RET^9WNysKkZq` zCh48QebsHtc1V7Gz8Y%zREXtj$m_98T59if_l+cJ*Rt;A&0tnH&Agb=D|OOtx~&{$ zPHcRJpk!9}t8hxVfJ>Bu1u3gCpar}ztJklqyt~30Zy(I+O(`4^7Pzb)itZ3;7Hk;# ze^4b*P#SzrDUe0`oQP+U0FsnL$WC#F^p!g$d-4Ub)OtK6UywlEg%{)t)YJvMDPJI) zAxU%}*IJ<$DSxIbzq^2uPw$<`e4onrr-9pAT_MB3c;cXY20Rh&KJZ7FK1oU_WYFvhb+wY+(TtJu|S|mg3V0;JqZl_vK^}lk#S`S zAu=2)W40GF??UbNEN89SR@sKtxTydHzkrlB`5lvItqs5p%FmKvPNhT!BE9 zHlO`0-;>2&DrjBfj3+*}w1o982M79*Xn-#)q#3D}t)I&_FX>*qejbZoT_~7po6CAX zyEc#Y%wq?|-t!&vz_kg!d1>RD(3s9=wU_c8^I49!Ba8LuS(z>0p=UkWtgXP2&B{C` z762yJvxoo|u@EDrBt}YDFvTOOFkwPcmsR+?nT3{hb*GsmrEfg7 z?4cE)o2Q2|Wb1QSM-IDleJ&e6!I8_tHe~B-SqHa|_0S1(8_`|`5Vw=Gs{k{yR;S91 zTwg&|=`}farS5ttb*EF(whYep^T}Md7)%6HA(LHsrLzLhED=nbt7AKF+<=@0Qb~N9 z?)}5@RO+sSsV?R58#g+2|IyV97Ab4NtMcQ-)Js}{}m)6LDO}pvxMzjOw{}x*q1pG=bp^Gh(EFj z~5}XRa-3gi+3LSNO+*l?Er_NzqCSa&l_{B0oG(6rf z6J#Vp+RxWsUCB1*_tK{dy0c_;io$Mv9eQT9Z2d~MmAc%VyB*XGVQyf17P5Fwxgcs? z(Cpp>W*oyO+n^xw73mNE ztpPd;J&mebFk>lq?x_p;zxT&{sU1>}+Y&(F2!|T!(LJ4qJ$>MuK6W=pd#VLa8jkb~ zHY^n^Ke9~lc%T3d3`aZH2ui77*JPBSni>Sx(3aH@=)czrWGbL8I~vw1z|@gP1cxV3 z*+*Y!7Z|3~K?`Y*99-x|r)sa-1%1L)@{ryH(p& zcd7rOj!o!DI6d>eSu)K#vlJSW<^j#&#Dv5bGJnykGD|a8WTwq|Z;qU;W0$k{v%6Sz z#)&jV`l9rv^#1hM(*KtJOS&{eoq^DyeL8Q1<8Bt%Gk3%Hv~DqEt87SD6I%A`uI+G}fT9P=CAa8?j!=e`z)NGomUuufs0sU3Q9$uI8v9N+5TTlQ7~ z^OeFGeC%8Jh7!PV4CB5hheSKBwf}G3yulU6_Y?nwgMkF1@kghWbk##b^r$~VM@8oZ z*H7SlL+@&OeOHk z1CsiWf$CFA%#{EP4HyH2A6@|@3mgL)xq?=N#FO~nuBHd!vtrS-++g2NSrSwY*Bx_K z-BQ|6&;7blU7B5FMDh@TbN9QlYc|_j$d6VW0)EaCgX5BmUeTfW+1vc&)5G|oM2d3Y z_6oU1xvO^FN)#N9+Sjb#)HGd_JabDtQbgcM3BowIIVjoUHzgnvq|DVfC84A!d~%{F zk&-{Q-!B3O28yHy{YA9B!G?mPc^YMMMzh(Bf?|BbwC3tktK$(S$& zF^Y^u78D%E)4wuW7VFaL_-r{Z&gqUqE${9~Yqp{8RaRbfmKB#KwG2~nBNQ`p3^I8fG8y^L8ridk-*Z$VJ~2rYS(Sv^*R8B+ zn!c%YbNtM$C@>j*DzM$!q{+-g(p1zw&yZWCZ{jw_-O)tSGys~b%sG04p~alh>_HO0W`lX%2oLhFf-7_)3sSR;1@;;8m?L*VmGJ zoAoodAaOQoUuoM)ZtKBw3kt~fEs>0bd9XrI{umvg=>@nrSTxOE$g|@VgTzIsy>?wK z5-&jQ^$nYma3Rc#G$2sZo?#Vn1~cmm@=#du7#(e@uiMbD3WXT?MU)FQaAUX1h{PqZ zfDKrd@+`%Rc*Dp|Bp6Kir(ls(WQJv?Sa66$6g#ub#~>Mnm5<>Mw>$Oqx1hiZfR&b+ z3#;@wM0v3~L2DoU2q)YGti73pz)Q1F3EF-#JKDvhWPu8dz zT|>44-hIw7)>Xr5$ISEX9WKrBTebPLw+hw@zXfT+QZOfT1$dY*M5eDMvMcb$5RuSc zN5mtJ1M;nbIpVdbyoyn>Bg;u(inTBI3xx4P-wX2_5Gc$^f{JAC@dhIkqlByx)nNH#f!Ihwu|nF;yU7mj zA?oC9b}whMC3YW0Dhh4{2Tb0xqP~U?mnN7HaUas8;WeAunovYe1pf zkS2Y+w3C~8V~>ie*-k{6s^pS43V6V`5ZpA`K}30QRFs{ZDEfzd6zM2%7rYM3;Xsd~ z$t_5e;aiaBH~Hb4Z4}XphZ2Qhb`;)5So2w7q;eqPBe1G;H`D^yP3~>$H-YweR+7ht z?eAl~=jN?QG2!S-Q~C8a8{FtZ!o6f0?L4g#E@eE<`Q5+%gi zzA=o3V{Jdce6c2TVrQ5r+#Ysd4BfEbyEy*jsu-6w#9h7+? z+9ou)=Vs-rJ$S8DqzXCYlkGWPHd!xrN<|UMzMC}~@Vt*J`2S&0Q^E_J->%^9pd;a5 z02FqF)KRjZ(LxY#)Hh9wB3>M$qOuL^e8od}45s?Ogfv>rrP#mv1bUelDCRh>2^U4% zU-6lZr~_`nk-thnlV81gSK@x(>=XR#u-8yUjV}&BT{}p|4SD@$9lr4&n>{(ALh&gs z^-GceY48h7vcGtMXC6C6=W7F1U~AIA_0cbJNTeu?4*QDJoBeB8BJc`X z0>YeJ(7Ng~;Q@{c1%DTH9p^`hW>UZ5%~7IR)W7k8DA82v zcRUa!QmFrchA!LO1nm!8=;9j9k(Q^KAmD;E+~x|Fi>AP3u0**=M$x!XE>fin`0G@W ze$<#^)WS_^t}Mz$p+c%%Q)q628)o+>%_VIfl8W#FxhRa9fRD&UOr6+AFd-@B{_;GN z8ObM(K+^6ff9OE|7-~83QxxJq$}Pu~my0F^i~yQYNZ`nTaLPx4lSTk2G6>I)7Rl_v z)JQgYh=>V)J|W@v5D)^?uuO3k@}CT^B_=o(1cp+%zQY6x38Q=+!Xx}liIiH+1t+)R zWE2uk`4Xv*z(0b_CMFTffFlSj5Jyr+lSOnbwLMm}J$AzOSn>AQiQ8lSx5ow?j164z EzawTJrT_o{ delta 13721 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 delta 31760 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 YRi(cwafA-Lyo^}bz!|8}-=66Ce=^+t#sB~S diff --git a/A2osX.S.txt b/A2osX.S.txt index b572000d..925a7733 100644 --- a/A2osX.S.txt +++ b/A2osX.S.txt @@ -6,14 +6,14 @@ AUTO 8 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/A2OSX.SYSTEM,TSYS + .TF A2OSX.SYSTEM,TSYS *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/IO.I - .INB /A2OSX.BUILD/INC/MONITOR.I - .INB /A2OSX.BUILD/INC/PRODOS.I - .INB /A2OSX.BUILD/INC/MLI.ERR.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/IO.I + .INB INC/MONITOR.I + .INB INC/PRODOS.I + .INB INC/MLI.ERR.I *-------------------------------------- TmpPtr1 .EQ $0 main & aux ZP TmpPtr2 .EQ $2 main & aux ZP diff --git a/BIN/ARP.S.txt b/BIN/ARP.S.txt index 475e536c..d47281a7 100644 --- a/BIN/ARP.S.txt +++ b/BIN/ARP.S.txt @@ -4,11 +4,12 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/BIN/ARP + .TF BIN/ARP *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/LIBTCPIP.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/ETH.I + .INB INC/LIBTCPIP.I *-------------------------------------- TIMEOUT.MAX .EQ 40 40*100ms = 4 sec. *-------------------------------------- diff --git a/BIN/ASM.S.txt b/BIN/ASM.S.txt index 93b84625..915ae9ec 100644 --- a/BIN/ASM.S.txt +++ b/BIN/ASM.S.txt @@ -6,8 +6,8 @@ AUTO 4,1 .OR $2000 .TF /A2OSX.BUILD/BIN/DEV/ASM *--------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I + .INB INC/MACROS.I + .INB INC/A2OSX.I *--------------------------------------- ZPPtr1 .EQ ZPBIN ZPPtr2 .EQ ZPBIN+2 @@ -364,13 +364,13 @@ CS.QUIT jsr FIO.FileClose .8 clc rts *--------------------------------------- - .INB /A2OSX.BUILD/BIN/DEV/ASM.S.DIR - .INB /A2OSX.BUILD/BIN/DEV/ASM.S.EXP - .INB /A2OSX.BUILD/BIN/DEV/ASM.S.FIO - .INB /A2OSX.BUILD/BIN/DEV/ASM.S.MAC - .INB /A2OSX.BUILD/BIN/DEV/ASM.S.OUT - .INB /A2OSX.BUILD/BIN/DEV/ASM.S.SRC - .INB /A2OSX.BUILD/BIN/DEV/ASM.S.SYM + .INB BIN/DEV/ASM.S.DIR + .INB BIN/DEV/ASM.S.EXP + .INB BIN/DEV/ASM.S.FIO + .INB BIN/DEV/ASM.S.MAC + .INB BIN/DEV/ASM.S.OUT + .INB BIN/DEV/ASM.S.SRC + .INB BIN/DEV/ASM.S.SYM *--------------------------------------- CS.END T.DIRECTIVES >PSTR "AC" diff --git a/BIN/ASM.T.6502.S.txt b/BIN/ASM.T.6502.S.txt index 64d64d93..fda15c9b 100644 --- a/BIN/ASM.T.6502.S.txt +++ b/BIN/ASM.T.6502.S.txt @@ -3,14 +3,14 @@ PREFIX /A2OSX.BUILD AUTO 4,1 .LIST OFF .OR $0 - .TF /A2OSX.BUILD/BIN/DEV/ASM.T.6502 + .TF BIN/DEV/ASM.T.6502 *--------------------------------------- .DA T.ADDR.MODES .DA T.REGISTERS .DA T.OPCODES *--------------------------------------- - .INB /A2OSX.BUILD/BIN/DEV/ASM.T.6502.O - .INB /A2OSX.BUILD/BIN/DEV/ASM.T.6502.A + .INB BIN/DEV/ASM.T.6502.O + .INB BIN/DEV/ASM.T.6502.A *--------------------------------------- MAN SAVE /A2OSX.BUILD/BIN/DEV/ASM.T.6502.S diff --git a/BIN/ASM.T.65816.S.txt b/BIN/ASM.T.65816.S.txt index c9b8d080..f6ffa555 100644 --- a/BIN/ASM.T.65816.S.txt +++ b/BIN/ASM.T.65816.S.txt @@ -3,14 +3,14 @@ PREFIX /A2OSX.BUILD AUTO 4,1 .LIST OFF .OR $0 - .TF /A2OSX.BUILD/BIN/DEV/ASM.T.65816 + .TF BIN/DEV/ASM.T.65816 *--------------------------------------- .DA T.ADDR.MODES .DA T.REGISTERS .DA T.OPCODES *--------------------------------------- - .INB /A2OSX.BUILD/BIN/DEV/ASM.T.65816.O - .INB /A2OSX.BUILD/BIN/DEV/ASM.T.65816.A + .INB BIN/DEV/ASM.T.65816.O + .INB BIN/DEV/ASM.T.65816.A *--------------------------------------- MAN SAVE /A2OSX.BUILD/BIN/DEV/ASM.T.65816.S diff --git a/BIN/ASM.T.65C02.S.txt b/BIN/ASM.T.65C02.S.txt index 2f61a681..f6f80755 100644 --- a/BIN/ASM.T.65C02.S.txt +++ b/BIN/ASM.T.65C02.S.txt @@ -3,14 +3,14 @@ PREFIX /A2OSX.BUILD AUTO 4,1 .LIST OFF .OR $0 - .TF /A2OSX.BUILD/BIN/DEV/ASM.T.65C02 + .TF BIN/DEV/ASM.T.65C02 *--------------------------------------- .DA T.ADDR.MODES .DA T.REGISTERS .DA T.OPCODES *--------------------------------------- - .INB /A2OSX.BUILD/BIN/DEV/ASM.T.65C02.O - .INB /A2OSX.BUILD/BIN/DEV/ASM.T.65C02.A + .INB BIN/DEV/ASM.T.65C02.O + .INB BIN/DEV/ASM.T.65C02.A *--------------------------------------- MAN SAVE /A2OSX.BUILD/BIN/DEV/ASM.T.65C02.S diff --git a/BIN/ASM.T.65R02.S.txt b/BIN/ASM.T.65R02.S.txt index 7e84a291..ed26ea40 100644 --- a/BIN/ASM.T.65R02.S.txt +++ b/BIN/ASM.T.65R02.S.txt @@ -3,14 +3,14 @@ PREFIX /A2OSX.BUILD AUTO 4,1 .LIST OFF .OR $0 - .TF /A2OSX.BUILD/BIN/DEV/ASM.T.65R02 + .TF BIN/DEV/ASM.T.65R02 *--------------------------------------- .DA T.ADDR.MODES .DA T.REGISTERS .DA T.OPCODES *--------------------------------------- - .INB /A2OSX.BUILD/BIN/DEV/ASM.T.65R02.O - .INB /A2OSX.BUILD/BIN/DEV/ASM.T.65R02.A + .INB BIN/DEV/ASM.T.65R02.O + .INB BIN/DEV/ASM.T.65R02.A *--------------------------------------- MAN SAVE /A2OSX.BUILD/BIN/DEV/ASM.T.65R02.S diff --git a/BIN/ASM.T.SW16.S.txt b/BIN/ASM.T.SW16.S.txt index 9f1786fc..9bf81445 100644 --- a/BIN/ASM.T.SW16.S.txt +++ b/BIN/ASM.T.SW16.S.txt @@ -3,14 +3,14 @@ PREFIX /A2OSX.BUILD AUTO 4,1 .LIST OFF .OR $0 - .TF /A2OSX.BUILD/BIN/DEV/ASM.T.SW16 + .TF BIN/DEV/ASM.T.SW16 *--------------------------------------- .DA T.ADDR.MODES .DA T.REGISTERS .DA T.OPCODES *--------------------------------------- - .INB /A2OSX.BUILD/BIN/DEV/ASM.T.SW16.O - .INB /A2OSX.BUILD/BIN/DEV/ASM.T.SW16.A + .INB BIN/DEV/ASM.T.SW16.O + .INB BIN/DEV/ASM.T.SW16.A *--------------------------------------- MAN SAVE /A2OSX.BUILD/BIN/DEV/ASM.T.SW16.S diff --git a/BIN/ASM.T.Z80.S.txt b/BIN/ASM.T.Z80.S.txt index 356d9474..08772d71 100644 --- a/BIN/ASM.T.Z80.S.txt +++ b/BIN/ASM.T.Z80.S.txt @@ -3,14 +3,14 @@ PREFIX /A2OSX.BUILD AUTO 4,1 .LIST OFF .OR $0 - .TF /A2OSX.BUILD/BIN/DEV/ASM.T.Z80 + .TF BIN/DEV/ASM.T.Z80 *--------------------------------------- .DA T.ADDR.MODES .DA T.REGISTERS .DA T.OPCODES *--------------------------------------- - .INB /A2OSX.BUILD/BIN/DEV/ASM.T.Z80.O - .INB /A2OSX.BUILD/BIN/DEV/ASM.T.Z80.A + .INB BIN/DEV/ASM.T.Z80.O + .INB BIN/DEV/ASM.T.Z80.A *--------------------------------------- MAN SAVE /A2OSX.BUILD/BIN/DEV/ASM.T.Z80.S diff --git a/BIN/ATBROWSE.S.txt b/BIN/ATBROWSE.S.txt index 81d92b05..575f6f7b 100644 --- a/BIN/ATBROWSE.S.txt +++ b/BIN/ATBROWSE.S.txt @@ -4,13 +4,13 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/BIN/ATK/ATBROWSE + .TF BIN/ATK/ATBROWSE *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/PRODOS.I - .INB /A2OSX.BUILD/INC/MLI.ERR.I - .INB /A2OSX.BUILD/INC/APPLETALK.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/PRODOS.I + .INB INC/MLI.ERR.I + .INB INC/APPLETALK.I *-------------------------------------- ZPPTR1 .EQ ZPBIN ZPPTR2 .EQ ZPBIN+2 diff --git a/BIN/ATLOGON.S.txt b/BIN/ATLOGON.S.txt index 5311a460..26b56e6b 100644 --- a/BIN/ATLOGON.S.txt +++ b/BIN/ATLOGON.S.txt @@ -4,13 +4,13 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/BIN/ATK/ATLOGON + .TF BIN/ATK/ATLOGON *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/PRODOS.I - .INB /A2OSX.BUILD/INC/MLI.ERR.I - .INB /A2OSX.BUILD/INC/APPLETALK.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/PRODOS.I + .INB INC/MLI.ERR.I + .INB INC/APPLETALK.I *-------------------------------------- ZPPTR1 .EQ ZPBIN ZPPTR2 .EQ ZPBIN+2 diff --git a/BIN/CAT.S.txt b/BIN/CAT.S.txt index 1a25d369..ef6bb975 100644 --- a/BIN/CAT.S.txt +++ b/BIN/CAT.S.txt @@ -4,11 +4,11 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/BIN/CAT + .TF BIN/CAT *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/MLI.ERR.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/MLI.ERR.I *-------------------------------------- ZPPTR1 .EQ ZPBIN ZPBufPtr .EQ ZPBIN+2 diff --git a/BIN/CHTYP.S.txt b/BIN/CHTYP.S.txt index 89b9b285..49faa758 100644 --- a/BIN/CHTYP.S.txt +++ b/BIN/CHTYP.S.txt @@ -4,11 +4,11 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/BIN/CHTYP + .TF BIN/CHTYP *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/MLI.ERR.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/MLI.ERR.I *-------------------------------------- X.COPY.TO.DEST .EQ 0 X.DELETE.SOURCE .EQ 0 diff --git a/BIN/CP.S.txt b/BIN/CP.S.txt index f1f86225..a38c0ac1 100644 --- a/BIN/CP.S.txt +++ b/BIN/CP.S.txt @@ -4,11 +4,11 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/BIN/CP + .TF BIN/CP *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/MLI.ERR.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/MLI.ERR.I *-------------------------------------- X.COPY.TO.DEST .EQ 1 X.DELETE.SOURCE .EQ 0 diff --git a/BIN/DNSINFO.S.txt b/BIN/DNSINFO.S.txt index 40b85a13..0dbc4ca7 100644 --- a/BIN/DNSINFO.S.txt +++ b/BIN/DNSINFO.S.txt @@ -4,11 +4,11 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/BIN/DNSINFO + .TF BIN/DNSINFO *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/LIBTCPIP.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/LIBTCPIP.I *-------------------------------------- ZPPTR1 .EQ ZPBIN ZPPTR2 .EQ ZPBIN+2 diff --git a/BIN/EDIT.S.txt b/BIN/EDIT.S.txt index 69bd0b36..bc0cc03b 100644 --- a/BIN/EDIT.S.txt +++ b/BIN/EDIT.S.txt @@ -4,10 +4,10 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/BIN/EDIT + .TF BIN/EDIT *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I + .INB INC/MACROS.I + .INB INC/A2OSX.I *-------------------------------------- ZPPTR1 .EQ ZPBIN ZPPTR2 .EQ ZPBIN+2 diff --git a/BIN/FORMAT.S.txt b/BIN/FORMAT.S.txt index 0f92c4a3..2a08baf8 100644 --- a/BIN/FORMAT.S.txt +++ b/BIN/FORMAT.S.txt @@ -4,11 +4,11 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/BIN/FORMAT + .TF BIN/FORMAT *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/LIBBLKDEV.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/LIBBLKDEV.I *-------------------------------------- ZPPtr1 .EQ ZPBIN ZPPtr2 .EQ ZPBIN+2 diff --git a/BIN/IPCONFIG.S.txt b/BIN/IPCONFIG.S.txt index e954d7de..a19389e3 100644 --- a/BIN/IPCONFIG.S.txt +++ b/BIN/IPCONFIG.S.txt @@ -4,16 +4,16 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/BIN/IPCONFIG + .TF BIN/IPCONFIG *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/NIC.I - .INB /A2OSX.BUILD/INC/LIBTCPIP.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/NIC.I + .INB INC/ETH.I + .INB INC/LIBTCPIP.I *-------------------------------------- ZPIPCfgPtr .EQ ZPBIN ZPDevPtr .EQ ZPBIN+2 -ZPDevStatPtr .EQ ZPBIN+4 *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -72,74 +72,80 @@ CS.RUN >LDYA L.MSG0 ldy #S.IPCFG.HDEV lda (ZPIPCfgPtr),y - bne CS.RUN.DUMPDEV + bne .1 >LDYA L.MSG0.NL >SYSCALL printf jmp CS.RUN.DONE -CS.RUN.DUMPDEV >STA.G DevID +.1 >STA.G DevID >SYSCALL GetDevByID - >STYA ZPDevPtr + >STYA ZPDevPtr S.FD + >PUSHEA.G DIB >LDA.G DevID >SYSCALL GetDevStatus - >STYA ZPDevStatPtr - >LDYA L.MSG0.L + >LEA.G DCB.NIC + >STYA IOCTL+S.IOCTL.BUFPTR + lda S.IOCTL.STATCODE.GETDCB + sta S.IOCTL.STATCODE + + >PUSHEA.G IOCTL + >PUSHBI IOCTL.STATUS + >LDA.G DevID + >SYSCALL IOCTL + +CS.RUN.DUMP >LDYA L.MSG0.L >SYSCALL printf - ldy #S.DIB.NIC.MAC+5 + ldy #5 -.1 >PUSHB (ZPDevStatPtr),y +.1 >PUSHB DCB.NIC+S.DCB.NIC.MAC,y dey - cpy #S.DIB.NIC.MAC-1 - bne .1 + bpl .1 - lda #S.DEV.NAME + >PUSHEA.G DIB+S.DIB.IDS + + lda #S.FD.DEV.NAME clc adc ZPDevPtr tay - lda /S.DEV.NAME + lda /S.FD.DEV.NAME adc ZPDevPtr+1 >PUSHYA - lda ZPDevStatPtr - clc - adc #S.DIB.IDS - tay - lda ZPDevStatPtr+1 - adc /S.DIB.IDS - >PUSHYA - >PUSHB.G DevID >LDYA L.MSG1.DEV >SYSCALL printf - ldy #S.DIB.NIC.FLAGS - lda (ZPDevStatPtr),y - and #S.DIB.NIC.FLAGS.ARPOFFLOAD + lda DCB.NIC+S.DCB.NIC.FLAGS + and #S.DCB.NIC.FLAGS.ARPOFFLOAD beq .2 + lda #1 + .2 >PUSHA >LDYA L.MSG1.DEV.ARP >SYSCALL printf - ldy #S.DIB.NIC.FLAGS - lda (ZPDevStatPtr),y - and #S.DIB.NIC.FLAGS.IPOFFLOAD + lda DCB.NIC+S.DCB.NIC.FLAGS + and #S.DCB.NIC.FLAGS.IPOFFLOAD + beq .3 + lda #1 -.3 >PUSHA +.3 + >PUSHA >LDYA L.MSG1.DEV.IP >SYSCALL printf - ldy #S.DIB.NIC.STATUS - lda (ZPDevStatPtr),y - and #S.DIB.NIC.STATUS.OK + lda DCB.NIC+S.DCB.NIC.LINK + and #S.DCB.NIC.LINK.OK bne CS.RUN.LINK + >PUSHW L.MSG1.LINK.KO >LDYA L.MSG1.LINK >SYSCALL printf @@ -152,8 +158,7 @@ CS.RUN.LINK >PUSHW L.MSG1.LINK.OK >LDYA L.MSG1.LINKSPEED >SYSCALL printf - ldy #S.DIB.NIC.STATUS - lda (ZPDevStatPtr),y + lda DCB.NIC+S.DCB.NIC.SPEED and #$0F tax @@ -164,12 +169,13 @@ CS.RUN.LINK >PUSHW L.MSG1.LINK.OK dex bne .4 - ldy #S.DIB.NIC.STATUS - lda (ZPDevStatPtr),y - and #S.DIB.NIC.STATUS.FD + lda DCB.NIC+S.DCB.NIC.LINK + and #S.DCB.NIC.LINK.FD bne .5 + >LDYA L.MSG1.DPLX.HD bra .6 + .5 >LDYA L.MSG1.DPLX.FD .6 >SYSCALL printf @@ -178,8 +184,10 @@ CS.RUN.DUMPIP >LDYA L.MSG2 lda (ZPIPCfgPtr) and #S.IPCFG.STATUS.OK beq .11 + >LDYA L.MSG2.C bra .10 + .11 >LDYA L.MSG2.U .10 >SYSCALL printf @@ -260,7 +268,11 @@ MSG0 .AZ "TCP/IP Status : " MSG0.L .AZ "Loaded\r\n" MSG0.NL .AZ "Not Loaded\r\n" *-------------------------------------- -MSG1.DEV .AZ "\r\nDevice Configuration :\r\n DevID : $%h\r\n Device Type : %S\r\n Device Name : %s\r\n HW Address : %02h:%02h:%02h:%02h:%02h:%02h\r\n" +MSG1.DEV .AS "\r\nDevice Configuration :\r\n" + .AS " DevID : $%h\r\n" + .AS " Device Name : %s\r\n" + .AS " Device Type : %S\r\n" + .AZ " HW Address : %02h:%02h:%02h:%02h:%02h:%02h\r\n" MSG1.DEV.ARP .AZ " ARP Offload : %d\r\n" MSG1.DEV.IP .AZ " IP Offload : %d\r\n" MSG1.LINK .AZ " Link Status : %s\r\n" @@ -277,13 +289,16 @@ MSG2.DHCPSRVR .AZ " DHCP Server : %d.%d.%d.%d\r\n" MSG2.IP .AZ " IP/Mask : %d.%d.%d.%d/%d.%d.%d.%d\r\n" MSG2.GW .AZ " Gateway : %d.%d.%d.%d\r\n" MSG2.DNS .AZ " DNS : %d.%d.%d.%d,%d.%d.%d.%d\r\n" -MSG2.HOSTNAME .AZ " Hostname : %S.%S\r\n" +MSG2.HOSTNAME .AZ " Hostname : %s.%s\r\n" hLIBTCPIP .BS 1 *-------------------------------------- .DUMMY .OR 0 DS.START DevID .BS 1 +IOCTL .BS S.IOCTL +DIB .BS S.DIB +DCB.NIC .BS S.DCB.NIC DS.END .ED *-------------------------------------- MAN diff --git a/BIN/LSDEV.S.txt b/BIN/LSDEV.S.txt index 52c9531c..634da5ec 100644 --- a/BIN/LSDEV.S.txt +++ b/BIN/LSDEV.S.txt @@ -4,11 +4,11 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/BIN/LSDEV + .TF BIN/LSDEV *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/PRODOS.I - .INB /A2OSX.BUILD/INC/A2OSX.I + .INB INC/MACROS.I + .INB INC/PRODOS.I + .INB INC/A2OSX.I *-------------------------------------- ZPPTR1 .EQ ZPBIN ZPPTR2 .EQ ZPBIN+2 diff --git a/BIN/MD.S.txt b/BIN/MD.S.txt index 6c401df2..269114d5 100644 --- a/BIN/MD.S.txt +++ b/BIN/MD.S.txt @@ -4,10 +4,10 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/BIN/MD + .TF BIN/MD *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I + .INB INC/MACROS.I + .INB INC/A2OSX.I *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- diff --git a/BIN/MD5.S.txt b/BIN/MD5.S.txt index 491b6afe..8d7d13e4 100644 --- a/BIN/MD5.S.txt +++ b/BIN/MD5.S.txt @@ -4,12 +4,12 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/BIN/MD5 + .TF BIN/MD5 *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/MLI.ERR.I - .INB /A2OSX.BUILD/INC/LIBCRYPT.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/MLI.ERR.I + .INB INC/LIBCRYPT.I *-------------------------------------- FILEBUF.SIZE .EQ 4096 *-------------------------------------- diff --git a/BIN/MEM.S.txt b/BIN/MEM.S.txt index 4133f001..c8e6139a 100644 --- a/BIN/MEM.S.txt +++ b/BIN/MEM.S.txt @@ -4,10 +4,10 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/BIN/MEM + .TF BIN/MEM *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I + .INB INC/MACROS.I + .INB INC/A2OSX.I *-------------------------------------- PAGELEN .EQ 22 FOOTERLEN .EQ 8 diff --git a/BIN/MEMDUMP.S.txt b/BIN/MEMDUMP.S.txt index 47855e71..5bd13f56 100644 --- a/BIN/MEMDUMP.S.txt +++ b/BIN/MEMDUMP.S.txt @@ -4,10 +4,10 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/BIN/DEV/MEMDUMP + .TF BIN/DEV/MEMDUMP *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I + .INB INC/MACROS.I + .INB INC/A2OSX.I *-------------------------------------- PAGELEN .EQ 22 FOOTERLEN .EQ 8 diff --git a/BIN/MV.S.txt b/BIN/MV.S.txt index 3983f341..319823b5 100644 --- a/BIN/MV.S.txt +++ b/BIN/MV.S.txt @@ -4,11 +4,11 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/BIN/MV + .TF BIN/MV *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/MLI.ERR.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/MLI.ERR.I *-------------------------------------- X.COPY.TO.DEST .EQ 1 X.DELETE.SOURCE .EQ 1 diff --git a/BIN/NETSTAT.S.txt b/BIN/NETSTAT.S.txt index 5e4f4db8..89c5a1d5 100644 --- a/BIN/NETSTAT.S.txt +++ b/BIN/NETSTAT.S.txt @@ -4,11 +4,12 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/BIN/NETSTAT + .TF BIN/NETSTAT *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/LIBTCPIP.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/ETH.I + .INB INC/LIBTCPIP.I *-------------------------------------- ZPPTR1 .EQ ZPBIN *-------------------------------------- diff --git a/BIN/NFSMOUNT.S.txt b/BIN/NFSMOUNT.S.txt index 11f9d2dd..9b8a31de 100644 --- a/BIN/NFSMOUNT.S.txt +++ b/BIN/NFSMOUNT.S.txt @@ -6,11 +6,11 @@ AUTO 6 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/BIN/NFSMOUNT + .TF BIN/NFSMOUNT *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/LIBTCPIP.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/LIBTCPIP.I *-------------------------------------- TIMEOUT.MAX .EQ 40 40*100ms = 4 sec. *-------------------------------------- diff --git a/BIN/NSCUTIL.S.txt b/BIN/NSCUTIL.S.txt index bfb55253..cd552036 100644 --- a/BIN/NSCUTIL.S.txt +++ b/BIN/NSCUTIL.S.txt @@ -4,11 +4,11 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/BIN/NSCUTIL + .TF BIN/NSCUTIL *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/MLI.ERR.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/MLI.ERR.I *-------------------------------------- ZPPtr1 .EQ ZPBIN *-------------------------------------- diff --git a/BIN/PING.S.txt b/BIN/PING.S.txt index f9ef5ff1..07f7c37a 100644 --- a/BIN/PING.S.txt +++ b/BIN/PING.S.txt @@ -4,11 +4,12 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/BIN/PING + .TF BIN/PING *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/LIBTCPIP.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/ETH.I + .INB INC/LIBTCPIP.I *-------------------------------------- TIMEOUT.MAX .EQ 20 2 sec. *-------------------------------------- @@ -191,7 +192,7 @@ CS.RUN.WAIT.REPLY .1 ldy #hSocket lda (pData),y - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.ReadA + >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.ReadFrame bcs .2 ldy #hFrame @@ -300,7 +301,7 @@ CS.QUIT ldy #hFrame .1 ldy #hSocket lda (pData),y >DEBUG - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.CLOSEA + >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Close lda hLIBTCPIP >SYSCALL UnloadLib diff --git a/BIN/PS.S.txt b/BIN/PS.S.txt index 39ccdfec..579edae1 100644 --- a/BIN/PS.S.txt +++ b/BIN/PS.S.txt @@ -4,11 +4,11 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/BIN/PS + .TF BIN/PS *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/KERNEL.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/KERNEL.I *-------------------------------------- ZPPtr .EQ ZPBIN *-------------------------------------- diff --git a/BIN/RM.S.txt b/BIN/RM.S.txt index 3a95117d..7573aad7 100644 --- a/BIN/RM.S.txt +++ b/BIN/RM.S.txt @@ -4,11 +4,11 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/BIN/RM + .TF BIN/RM *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/MLI.ERR.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/MLI.ERR.I *-------------------------------------- X.COPY.TO.DEST .EQ 0 X.DELETE.SOURCE .EQ 1 diff --git a/BIN/RPCDUMP.S.txt b/BIN/RPCDUMP.S.txt index 8a4513d3..12472bdb 100644 --- a/BIN/RPCDUMP.S.txt +++ b/BIN/RPCDUMP.S.txt @@ -4,11 +4,12 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/BIN/DEV/RPCDUMP + .TF BIN/DEV/RPCDUMP *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/LIBTCPIP.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/ETH.I + .INB INC/LIBTCPIP.I *-------------------------------------- TIMEOUT.MAX .EQ 40 40*100ms = 4 sec. *-------------------------------------- @@ -130,7 +131,7 @@ CS.RUN jsr Init.Timeout .5 ldy #hSocket lda (pData),y - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.ReadA + >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.ReadFrame bcc .6 >SLEEP @@ -176,7 +177,7 @@ CS.QUIT ldy #hSocket lda (pData),y beq .1 - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.CLOSEA + >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Close .1 lda hLIBTCPIP beq .8 diff --git a/BMP2PIX.S.txt b/BMP2PIX.S.txt index 7e9e395f..8089ffb2 100644 --- a/BMP2PIX.S.txt +++ b/BMP2PIX.S.txt @@ -4,12 +4,12 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/ROOT/BMP2PIX + .TF ROOT/BMP2PIX *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/GUI.I - .INB /A2OSX.BUILD/INC/LIBGUI.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/GUI.I + .INB INC/LIBGUI.I *-------------------------------------- ZPPTR1 .EQ ZPBIN ZPInputBufPtr .EQ ZPBIN+2 @@ -323,7 +323,7 @@ CS.QUIT >LDA.G hBuf *-------------------------------------- CS.END *-------------------------------------- - .INB /A2OSX.BUILD/ROOT/X.TWIST.G + .INB ROOT/X.TWIST.G *-------------------------------------- OptionList >PSTR "Vv" OptionVars .DA #bVerbose,#bVerbose diff --git a/DRV/DHGR.DRV.S.txt b/DRV/DHGR.DRV.S.txt index fc4913bc..24d8ea94 100644 --- a/DRV/DHGR.DRV.S.txt +++ b/DRV/DHGR.DRV.S.txt @@ -4,16 +4,16 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/DRV/DHGR.DRV + .TF DRV/DHGR.DRV *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/PRODOS.I - .INB /A2OSX.BUILD/INC/IO.I - .INB /A2OSX.BUILD/INC/GFX.I - .INB /A2OSX.BUILD/INC/GFX.EVE.I - .INB /A2OSX.BUILD/INC/GUI.I - .INB /A2OSX.BUILD/INC/LIBGUI.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/PRODOS.I + .INB INC/IO.I + .INB INC/GFX.I + .INB INC/GFX.EVE.I + .INB INC/GUI.I + .INB INC/LIBGUI.I *-------------------------------------- ZPCmdPtr .EQ ZPDRV ZPBasePtr .EQ ZPDRV+2 diff --git a/DRV/LANCEGS.DRV.S.txt b/DRV/LANCEGS.DRV.S.txt index 1755898b..103e7e6a 100644 --- a/DRV/LANCEGS.DRV.S.txt +++ b/DRV/LANCEGS.DRV.S.txt @@ -4,14 +4,14 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/DRV/LANCEGS.DRV + .TF DRV/LANCEGS.DRV *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/MLI.ERR.I - .INB /A2OSX.BUILD/INC/NIC.I - .INB /A2OSX.BUILD/INC/NIC.91C96.I - .INB /A2OSX.BUILD/INC/LIBTCPIP.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/MLI.ERR.I + .INB INC/NIC.I + .INB INC/NIC.91C96.I + .INB INC/LIBTCPIP.I *-------------------------------------- ZPTmpPTR .EQ ZPDRV Size .EQ ZPDRV+2 diff --git a/DRV/MOUSE.DRV.S.txt b/DRV/MOUSE.DRV.S.txt index 088c210c..95adf151 100644 --- a/DRV/MOUSE.DRV.S.txt +++ b/DRV/MOUSE.DRV.S.txt @@ -4,13 +4,13 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/DRV/MOUSE.DRV + .TF DRV/MOUSE.DRV *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/MLI.ERR.I - .INB /A2OSX.BUILD/INC/XY.MOUSE.I - .INB /A2OSX.BUILD/INC/LIBGUI.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/MLI.ERR.I + .INB INC/XY.MOUSE.I + .INB INC/LIBGUI.I *-------------------------------------- ZPTmpPtr1 .EQ ZPDRV *-------------------------------------- diff --git a/DRV/PIC.DRV.S.txt b/DRV/PIC.DRV.S.txt index 3b861203..9a9adff4 100644 --- a/DRV/PIC.DRV.S.txt +++ b/DRV/PIC.DRV.S.txt @@ -6,11 +6,11 @@ AUTO 6 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/DRV/PIC.DRV + .TF DRV/PIC.DRV *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/MLI.ERR.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/MLI.ERR.I *-------------------------------------- ZPTmpPtr1 .EQ ZPDRV *-------------------------------------- diff --git a/DRV/SSC.DRV.S.txt b/DRV/SSC.DRV.S.txt index d43c85e6..9374323a 100644 --- a/DRV/SSC.DRV.S.txt +++ b/DRV/SSC.DRV.S.txt @@ -5,10 +5,10 @@ AUTO 4,1 *-------------------------------------- SSCIRQ .EQ 0 *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/MLI.ERR.I - .INB /A2OSX.BUILD/INC/COM.6551.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/MLI.ERR.I + .INB INC/COM.6551.I .INB /A2OSX.SRC/DRV/X.SSC.DRV.S *-------------------------------------- MAN diff --git a/DRV/SSC.I.DRV.S.txt b/DRV/SSC.I.DRV.S.txt index 5740003b..132d88a7 100644 --- a/DRV/SSC.I.DRV.S.txt +++ b/DRV/SSC.I.DRV.S.txt @@ -5,10 +5,10 @@ AUTO 4,1 *-------------------------------------- SSCIRQ .EQ 1 *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/MLI.ERR.I - .INB /A2OSX.BUILD/INC/COM.6551.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/MLI.ERR.I + .INB INC/COM.6551.I .INB /A2OSX.SRC/DRV/X.SSC.DRV.S *-------------------------------------- MAN diff --git a/DRV/UTHER2.AI.DRV.S.txt b/DRV/UTHER2.AI.DRV.S.txt index 7ef2f213..15e65d5d 100644 --- a/DRV/UTHER2.AI.DRV.S.txt +++ b/DRV/UTHER2.AI.DRV.S.txt @@ -4,14 +4,14 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/DRV/UTHER2.AI.DRV + .TF DRV/UTHER2.AI.DRV *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/MLI.ERR.I - .INB /A2OSX.BUILD/INC/NIC.I - .INB /A2OSX.BUILD/INC/NIC.W5100.I - .INB /A2OSX.BUILD/INC/LIBTCPIP.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/MLI.ERR.I + .INB INC/NIC.I + .INB INC/NIC.W5100.I + .INB INC/LIBTCPIP.I *-------------------------------------- ZPTmpPTR .EQ ZPDRV RXTX.Size .EQ ZPDRV+2 diff --git a/DRV/UTHERNET2.DRV.S.txt b/DRV/UTHERNET2.DRV.S.txt index f334d68c..e94b389f 100644 --- a/DRV/UTHERNET2.DRV.S.txt +++ b/DRV/UTHERNET2.DRV.S.txt @@ -4,14 +4,14 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/DRV/UTHERNET2.DRV + .TF DRV/UTHERNET2.DRV *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/MLI.ERR.I - .INB /A2OSX.BUILD/INC/NIC.I - .INB /A2OSX.BUILD/INC/NIC.W5100.I - .INB /A2OSX.BUILD/INC/LIBTCPIP.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/MLI.ERR.I + .INB INC/NIC.I + .INB INC/NIC.W5100.I + .INB INC/LIBTCPIP.I *-------------------------------------- ZPTmpPTR .EQ ZPDRV RXTX.Size .EQ ZPDRV+2 diff --git a/DRV/X.SSC.DRV.S.txt b/DRV/X.SSC.DRV.S.txt index 54635f7e..b44fe2c6 100644 --- a/DRV/X.SSC.DRV.S.txt +++ b/DRV/X.SSC.DRV.S.txt @@ -5,9 +5,9 @@ AUTO 4,1 .OR $2000 *-------------------------------------- .DO SSCIRQ=1 - .TF /A2OSX.BUILD/DRV/SSC.I.DRV + .TF DRV/SSC.I.DRV .ELSE - .TF /A2OSX.BUILD/DRV/SSC.DRV + .TF DRV/SSC.DRV .FIN *-------------------------------------- .DO SSCIRQ=1 diff --git a/FNT2FON.S.txt b/FNT2FON.S.txt index abffb5b5..2c7013cc 100644 --- a/FNT2FON.S.txt +++ b/FNT2FON.S.txt @@ -4,13 +4,13 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/ROOT/FNT2FON + .TF ROOT/FNT2FON *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/GUI.I - .INB /A2OSX.BUILD/INC/LIBGUI.I - .INB /A2OSX.BUILD/ROOT/X.FNT.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/GUI.I + .INB INC/LIBGUI.I + .INB ROOT/X.FNT.I *-------------------------------------- ZPPTR1 .EQ ZPBIN ZPInputBufPtr .EQ ZPBIN+2 @@ -808,7 +808,7 @@ CS.QUIT >LDA.G hOutPutBuf *-------------------------------------- CS.END *-------------------------------------- - .INB /A2OSX.BUILD/ROOT/X.TWIST.G + .INB ROOT/X.TWIST.G *-------------------------------------- OptionList >PSTR "NnVv" OptionVars .DA #bNoShrink,#bNoShrink,#bVerbose,#bVerbose diff --git a/INC/LIBTCPIP.I.txt b/INC/LIBTCPIP.I.txt index 65ed7c37..047956ac 100644 --- a/INC/LIBTCPIP.I.txt +++ b/INC/LIBTCPIP.I.txt @@ -1,8 +1,6 @@ -PR#3 -PREFIX /A2OSX.BUILD NEW -INC 1 -AUTO 6 +PREFIX /A2OSX.BUILD +AUTO 4,1 .LIST OFF .OP 65C02 *-------------------------------------- @@ -26,7 +24,7 @@ LIBTCPIP.SET.IPCFG .EQ 4 LIBTCPIP.GET.IPCFG .EQ 6 LIBTCPIP.POLL .EQ 8 -LIBTCPIP.PULSEA .EQ 10 +LIBTCPIP.PULSE .EQ 10 LIBTCPIP.ARP.Clear .EQ 12 LIBTCPIP.ARP.Query .EQ 14 @@ -42,20 +40,16 @@ LIBTCPIP.HST.GetByName .EQ 28 LIBTCPIP.HST.GetByAddr .EQ 30 LIBTCPIP.SKT.New .EQ 32 -LIBTCPIP.SKT.CloseA .EQ 34 +LIBTCPIP.SKT.Close .EQ 34 LIBTCPIP.SKT.GetTable .EQ 36 -LIBTCPIP.SKT.GetA .EQ 38 +LIBTCPIP.SKT.Get .EQ 38 -LIBTCPIP.SKT.AcceptA .EQ 40 -LIBTCPIP.SKT.MkNodA .EQ 42 +LIBTCPIP.SKT.Accept .EQ 40 +LIBTCPIP.SKT.MkNod .EQ 42 LIBTCPIP.SKT.Write .EQ 44 LIBTCPIP.SKT.Read .EQ 46 -LIBTCPIP.SKT.ReadA .EQ 48 -LIBTCPIP.SKT.PutC .EQ 50 -LIBTCPIP.SKT.PutS .EQ 52 -LIBTCPIP.SKT.GetC.A .EQ 54 -LIBTCPIP.SKT.GetS .EQ 56 +LIBTCPIP.SKT.ReadFrame .EQ 48 *-------------------------------------- ERR.SKT.OOS .EQ $BF ERR.SKT.BUSY .EQ $BE diff --git a/LIB/LIBCRYPT.S.txt b/LIB/LIBCRYPT.S.txt index 99a096c4..525bdd37 100644 --- a/LIB/LIBCRYPT.S.txt +++ b/LIB/LIBCRYPT.S.txt @@ -4,11 +4,11 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/LIB/LIBCRYPT.O + .TF LIB/LIBCRYPT.O *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/LIBCRYPT.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/LIBCRYPT.I *-------------------------------------- ZPCtxPtr .EQ ZPLIB ZPDataPtr .EQ ZPLIB+2 diff --git a/LIB/LIBGUI.S.txt b/LIB/LIBGUI.S.txt index 3b1cf14f..766bce02 100644 --- a/LIB/LIBGUI.S.txt +++ b/LIB/LIBGUI.S.txt @@ -4,13 +4,13 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/LIB/LIBGUI.O + .TF LIB/LIBGUI.O *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/GUI.I - .INB /A2OSX.BUILD/INC/LIBGUI.I - .INB /A2OSX.BUILD/INC/GFX.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/GUI.I + .INB INC/LIBGUI.I + .INB INC/GFX.I *-------------------------------------- WND.MAX .EQ 64 *-------------------------------------- diff --git a/LIB/LIBPAK.S.txt b/LIB/LIBPAK.S.txt index 45b1d419..a7f6090d 100644 --- a/LIB/LIBPAK.S.txt +++ b/LIB/LIBPAK.S.txt @@ -4,11 +4,11 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/LIB/LIBPAK.O + .TF LIB/LIBPAK.O *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/LIBPAK.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/LIBPAK.I *-------------------------------------- ZPSrcPtr .EQ ZPLIB ZPSrcWPtr .EQ ZPLIB+2 diff --git a/LIB/LIBTCPIP.S.ARP.txt b/LIB/LIBTCPIP.S.ARP.txt index ed23b74c..f090c0f0 100644 --- a/LIB/LIBTCPIP.S.ARP.txt +++ b/LIB/LIBTCPIP.S.ARP.txt @@ -166,7 +166,8 @@ ARP.IN.REQ ldy #S.ARP.SPA+3 bpl .2 >LDYA L.ARP.REP - jsr FRM.Send.YA + jsr ARP.Send.YA + bra ARP.IN.EXIT ARP.IN.REP lda #K.ARP.TTL @@ -221,7 +222,7 @@ ARP.QUERY.I jsr ARP.FIND.BY.IP bpl .4 >LDYA L.ARP.REQ - jsr FRM.Send.YA + jsr ARP.Send.YA bcs .99 lda #K.ARP.PENDING.TTL @@ -235,6 +236,12 @@ ARP.QUERY.I jsr ARP.FIND.BY.IP sec .99 rts *-------------------------------------- +ARP.Send.YA >STYA IOCTL+S.IOCTL.BUFPTR + >LDYAI S.ARP + >STYA IOCTL+S.IOCTL.BYTECNT + + jmp FRM.Send.IOCTL +*-------------------------------------- ARP.FIND.BY.IP >LDYA L.ARP.CACHE >STYA ZPCachePtr diff --git a/LIB/LIBTCPIP.S.CFG.txt b/LIB/LIBTCPIP.S.CFG.txt index 85fd2395..558c017f 100644 --- a/LIB/LIBTCPIP.S.CFG.txt +++ b/LIB/LIBTCPIP.S.CFG.txt @@ -5,7 +5,16 @@ AUTO 4,1 *-------------------------------------- * PULLW = PTR to S.IPCFG *-------------------------------------- -SET.IPCFG >PULLW ZPTmpPtr1 +SET.IPCFG >PULLW ZPTmpPtr1 IPCFG + + >LDYA L.DCB.NIC + >STYA IOCTL+S.IOCTL.BUFPTR + lda S.IOCTL.STATCODE.GETDCB + sta S.IOCTL.STATCODE + + ldx #IOCTL.STATUS + jsr SET.IPCFG.IOCTL + ldy #0 .1 lda (ZPTmpPtr1),y @@ -16,7 +25,8 @@ SET.IPCFG >PULLW ZPTmpPtr1 ldx #5 -.2 lda IPCFG+S.IPCFG.MAC,x +.2 lda DCB.NIC+S.DCB.NIC.MAC,x + sta IPCFG+S.IPCFG.MAC,x sta ARP.REQ.SRCMAC,x sta ARP.REQ.SHA,x sta ARP.REP.SRCMAC,x @@ -33,15 +43,6 @@ SET.IPCFG >PULLW ZPTmpPtr1 dex bpl .3 - >LDYA L.DCB.NIC - >STYA IOCTL+S.IOCTL.BUFPTR - lda S.IOCTL.STATCODE.GETDCB - sta S.IOCTL.STATCODE - - ldx IOCTL.STATUS - jsr SET.IPCFG.IOCTL - - >STYA ZPTmpPtr2 lda DCB.NIC+S.DCB.NIC.FLAGS and #S.DCB.NIC.FLAGS.ARPOFFLOAD beq .4 @@ -56,17 +57,17 @@ SET.IPCFG >PULLW ZPTmpPtr1 * lda S.IOCTL.CTRLCODE.SETDCB same as lda S.IOCTL.STATCODE.GETDCB * sta S.IOCTL.CTRLCODE same as sta S.IOCTL.STATCODE - lda IPCFG+S.IPCFG.HDEV + ldx #IOCTL.CONTROL jsr SET.IPCFG.IOCTL .4 lda hDNSSocket1 beq .41 - jsr SKT.CLOSEA + jsr SKT.Close stz hDNSSocket1 .41 lda hDNSSocket2 beq .42 - jsr SKT.CLOSEA + jsr SKT.Close stz hDNSSocket2 .42 lda IPCFG+S.IPCFG.DNS1 diff --git a/LIB/LIBTCPIP.S.DNS.txt b/LIB/LIBTCPIP.S.DNS.txt index 05deaa93..41cc5fb4 100644 --- a/LIB/LIBTCPIP.S.DNS.txt +++ b/LIB/LIBTCPIP.S.DNS.txt @@ -360,13 +360,13 @@ DNS.FREE ldy #S.DNSCACHE.hNAME DNS.POLL lda hDNSSocket1 beq .8 - jsr SKT.ReadA + jsr SKT.ReadFrame bcs .8 jsr DNS.DecodeMsg lda hDNSSocket2 beq .8 - jsr SKT.ReadA + jsr SKT.ReadFrame bcs .8 jsr DNS.DecodeMsg diff --git a/LIB/LIBTCPIP.S.FRM.txt b/LIB/LIBTCPIP.S.FRM.txt index 81a9039f..907d7bda 100644 --- a/LIB/LIBTCPIP.S.FRM.txt +++ b/LIB/LIBTCPIP.S.FRM.txt @@ -211,7 +211,7 @@ FRM.SendIP ldx #3 Copy SRC.IP even if IP offload bcs FRM.Queue .6 >LDYA ZPFrameOutPtr - jsr FRM.Send.YA + jsr FRM.Send.Out bcs FRM.Queue @@ -240,6 +240,10 @@ FRM.Queue ldy hFrameOut no hFrame, cannot queue for retry sta FRM.QUEUE.Retry,y lda hFrameOut sta FRM.QUEUE.hMem,y + lda ZPFrameOutLen + sta FRM.QUEUE.LenL,x + lda ZPFrameOutLen+1 + sta FRM.QUEUE.LenH,x clc rts @@ -253,6 +257,7 @@ FRM.Retry ldx FRM.QUEUE.Tail lda FRM.QUEUE.hMem,x >SYSCALL GetMemPtr >STYA ZPFrameOutPtr + >STYA IOCTL+S.IOCTL.BUFPTR ldx FRM.QUEUE.Tail lda FRM.QUEUE.State,x @@ -261,8 +266,12 @@ FRM.Retry ldx FRM.QUEUE.Tail jsr IP.SetDestMAC Err is ARP or higher, retry getting MAC bcs .2 still error getting dest MAC -.1 >LDYA ZPFrameOutPtr - jsr FRM.Send.YA try sending again to DRV +.1 lda FRM.QUEUE.LenL,x + sta IOCTL+S.IOCTL.BYTECNT + lda FRM.QUEUE.LenH,x + sta IOCTL+S.IOCTL.BYTECNT+1 + + jsr FRM.Send.IOCTL try sending again to DRV bcc .3 .2 ldx FRM.QUEUE.Tail save error... @@ -284,9 +293,12 @@ FRM.Retry ldx FRM.QUEUE.Tail .8 rts *-------------------------------------- -FRM.Send.YA *****>PUSHYA +FRM.Send.Out >LDYA ZPDataOutPtr + >STYA IOCTL+S.IOCTL.BUFPTR + >LDYA ZPDataOutLen + >STYA IOCTL+S.IOCTL.BYTECNT - >PUSHW L.IOCTL +FRM.Send.IOCTL >PUSHW L.IOCTL >PUSHBI IOCTL.WRITE lda IPCFG+S.IPCFG.HDEV diff --git a/LIB/LIBTCPIP.S.SKT.txt b/LIB/LIBTCPIP.S.SKT.txt index dbb532f4..3979f07b 100644 --- a/LIB/LIBTCPIP.S.SKT.txt +++ b/LIB/LIBTCPIP.S.SKT.txt @@ -120,13 +120,13 @@ SKT.New.Listen sec sec .99 rts */-------------------------------------- -* # SKT.CloseA +* # SKT.Close * Close socket * **In:** * A = hSocket * **Out:** *\-------------------------------------- -SKT.CloseA jsr SKT.GetA.I get SKT in ZPPtrSKT, S.SOCKET.SOCK in A +SKT.Close jsr SKT.Get.I get SKT in ZPPtrSKT, S.SOCKET.SOCK in A bcs .99 cmp #S.SOCKET.SOCK.STREAM @@ -184,14 +184,14 @@ SKT.CloseA jsr SKT.GetA.I get SKT in ZPPtrSKT, S.SOCKET.SOCK in A clc rts */-------------------------------------- -* # SKT.GetA +* # SKT.Get * Get Ptr to socket * **In:** * A = hSocket * **Out:** * Y,A = pS.SOCKET *\-------------------------------------- -SKT.GetA jsr SKT.GetA.I +SKT.Get jsr SKT.Get.I bcs .9 @@ -199,7 +199,7 @@ SKT.GetA jsr SKT.GetA.I .9 rts -SKT.GetA.I and #$7f +SKT.Get.I and #$7f cmp #K.SKTTABLE.SIZE bcs .9 @@ -252,14 +252,14 @@ SKT.GetTable lda hSocketTable clc rts */-------------------------------------- -* # SKT.AcceptA +* # SKT.Accept * Check for an incoming connection * **In:** * A = hListeningSocket * **Out:** * A = hSocket *\-------------------------------------- -SKT.AcceptA jsr SKT.GetA.I +SKT.Accept jsr SKT.Get.I bcs .9 ldy #S.SOCKET.SO lda (ZPPtrSKT),y @@ -293,14 +293,14 @@ SKT.AcceptA jsr SKT.GetA.I sec .9 rts */-------------------------------------- -* # SKT.MkNodA +* # SKT.MkNod * Create a new file from TCP socket * **In:** * A = hSocket * **Out:** * A = hFile *\-------------------------------------- -SKT.MkNodA sta .1+1 +SKT.MkNod sta .1+1 >LDYAI S.FD.SSOCK >SYSCALL getmem0 bcs .9 @@ -348,7 +348,7 @@ SKT.Write >PULLW ZPDataInLen >PULLW ZPDataInPtr >PULLA - jsr SKT.GetA.I + jsr SKT.Get.I bcs .9 cmp #S.SOCKET.SOCK.DGRAM @@ -441,13 +441,13 @@ SKT.Write.TCP ldy #S.SOCKET.TCP.STATUS sec .99 rts */-------------------------------------- -* # SKT.ReadA (DGRAM,RAW) +* # SKT.ReadFrame (DGRAM,RAW) * **In:** * A = hSocket * **Out:** * A = hFrame *\-------------------------------------- -SKT.ReadA jsr SKT.GetA.I +SKT.ReadFrame jsr SKT.Get.I bcs .9 ldy #S.SOCKET.HQ.TAIL @@ -515,7 +515,7 @@ SKT.PutS >PULLW ZPDataOutPtr inc ZPDataInPtr+1 SKT.PutS.1 >PULLA - jsr SKT.GetA.I + jsr SKT.Get.I bcs .9 cmp #S.SOCKET.SOCK.STREAM @@ -578,7 +578,7 @@ SKT.Read clc >PULLW ZPDataOutPtr >PULLA -SKT.Read.I jsr SKT.GetA.I +SKT.Read.I jsr SKT.Get.I bcs .99 cmp #S.SOCKET.SOCK.STREAM bne .90 bad skt diff --git a/LIB/LIBTCPIP.S.txt b/LIB/LIBTCPIP.S.txt index 0714507a..391e46c8 100644 --- a/LIB/LIBTCPIP.S.txt +++ b/LIB/LIBTCPIP.S.txt @@ -56,7 +56,7 @@ CS.START cld .DA GET.IPCFG .DA POLL - .DA PULSEA + .DA PULSE .DA ARP.CLEAR .DA ARP.QUERY @@ -72,20 +72,16 @@ CS.START cld .DA HST.GETBYADDR .DA SKT.New - .DA SKT.CLOSEA - .DA SKT.GETTABLE - .DA SKT.GETA + .DA SKT.Close + .DA SKT.GetTable + .DA SKT.Get - .DA SKT.AcceptA - .DA SKT.MkNodA + .DA SKT.Accept + .DA SKT.MkNod .DA SKT.Write .DA SKT.Read - .DA SKT.ReadA - .DA SKT.PutC - .DA SKT.PutS - .DA SKT.GetC.A - .DA SKT.GetS + .DA SKT.ReadFrame *-------------------------------------- L.IPCFG .DA IPCFG L.ARP.REQ .DA ARP.REQ @@ -185,7 +181,7 @@ POLL >PUSHW L.IOCTL * Expire = every sec * Retry = every 100 msec *-------------------------------------- -PULSEA and #S.EVT.F.T1SEC +PULSE and #S.EVT.F.T1SEC beq .1 jsr ARP.EXPIRE jsr DNS.EXPIRE @@ -278,6 +274,8 @@ FRM.QUEUE.Head .BS 1 FRM.QUEUE.hMem .BS K.FRMQUEUE.SIZE FRM.QUEUE.State .BS K.FRMQUEUE.SIZE FRM.QUEUE.Retry .BS K.FRMQUEUE.SIZE +FRM.QUEUE.LenL .BS K.FRMQUEUE.SIZE +FRM.QUEUE.LenH .BS K.FRMQUEUE.SIZE *-------------------------------------- RefCount .DA #0 hSocketTable .BS 1 diff --git a/README.md b/README.md index 1e87c1cb..235ceff3 100644 --- a/README.md +++ b/README.md @@ -245,9 +245,9 @@ OApple+1,OApple+2,OApple+3 to switch between screens : Kernel Log, text, DHGR. | GETTY | Working | | 0.92 | | LOGIN | In Progress | no auth using /etc/passd yet | 0.92 | | SHELL | Working | (See Internal Shell commands) | 0.92 | -| KCONFIG | Working | Kernel Configuration Utility | 0.9.1 | +| KCONFIG | Working | Kernel Configuration Utility | 0.92 | | ---- | ------ | ------- | ----- | -| TCPIPD | Working | Socket API.ARP,IP,ICMP,UDP & TCP ok | 0.9.1 | +| TCPIPD | Working | Socket API.ARP,IP,ICMP,UDP & TCP ok | 0.92 | | DHCPCLNT| Working | rewritten to use new Socket API | 0.9.1 | | TELNETD | In Progress | | 0.9 | | HTTPD | In Progress | | 0.9 | @@ -297,7 +297,7 @@ note : '$VAR' does NOT expand Variable | DHGR.DRV | Working | 560x192 Mono/16 colors Mixed-Mode support | 0.9.1 | | ---- | ------ | ------- | ----- | | LanCeGS.DRV | Working | | 0.9.1 | -| Uthernet.DRV | Working | | 0.9.1 | +| Uthernet.DRV | Working | | 0.92 | | Uthernet2.DRV | Working | | 0.9.1 | | Uther2.AI.DRV | In Progress | With ARP/IP Offloading | 0.9 | @@ -336,17 +336,17 @@ note : '$VAR' does NOT expand Variable | | | -R : Recurse subdirectories | | | CHGRP | In Progress | -C : Continue On Error | 0.9 | | | | -R : Recurse subdirectories | | -| MD5 | In Progress | -D : String Input | 0.9.1 | +| MD5 | In Progress | -D : String Input | 0.92 | | NSCUTIL | Working | Tool for setting time in NSC/DL1216E | 0.9 | ## Network (TCPIP) tools: | Name | Status | Comment | K.Ver | | ---- | ------ | ------- | ----- | +| IPCONFIG | Working | renamed from NETINFO | 0.92 | +| NETSTAT | Working | | 0.92 | | ARP | Working | dump ARP cache, setup a static ARP entry | 0.9.1 | -| PING | Working | | 0.9.1 | | DNSINFO | Working | dump DNS cache, setup a static DNS entry | 0.9.1 | -| IPCONFIG | Working | renamed from NETINFO | 0.9.1 | -| NETSTAT | Working | | 0.9.1 | +| PING | Working | | 0.9.1 | ## DEV tools: | Name | Status | Comment | K.Ver | diff --git a/SBIN/DHCPCLNT.S.txt b/SBIN/DHCPCLNT.S.txt index 13cf1ea0..76ee4a8c 100644 --- a/SBIN/DHCPCLNT.S.txt +++ b/SBIN/DHCPCLNT.S.txt @@ -4,12 +4,13 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/SBIN/DHCPCLNT + .TF SBIN/DHCPCLNT *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/LIBTCPIP.I - .INB /A2OSX.BUILD/INC/NET.DHCP.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/ETH.I + .INB INC/LIBTCPIP.I + .INB INC/NET.DHCP.I *-------------------------------------- TIMEOUT.MAX .EQ 200 20 sec. *-------------------------------------- @@ -241,7 +242,7 @@ CS.QUIT ldy #hSocket lda (pData),y beq .1 - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.CloseA + >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Close .1 lda hLIBTCPIP >SYSCALL UnloadLib diff --git a/SBIN/GETTY.S.txt b/SBIN/GETTY.S.txt index ff61e1e0..6e225c50 100644 --- a/SBIN/GETTY.S.txt +++ b/SBIN/GETTY.S.txt @@ -4,11 +4,11 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/SBIN/GETTY + .TF SBIN/GETTY *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/NET.TELNET.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/NET.TELNET.I *-------------------------------------- TIMEOUT.MAX .EQ 100 1 sec. *-------------------------------------- diff --git a/SBIN/GUI.S.txt b/SBIN/GUI.S.txt index 2fe29b22..24555502 100644 --- a/SBIN/GUI.S.txt +++ b/SBIN/GUI.S.txt @@ -4,13 +4,13 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/SBIN/GUI/GUI + .TF SBIN/GUI/GUI *-------------------------------------- - .INB /A2OSX.BUILD/INC/IO.I - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/GUI.I - .INB /A2OSX.BUILD/INC/LIBGUI.I + .INB INC/IO.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/GUI.I + .INB INC/LIBGUI.I *-------------------------------------- ZPPtr1 .EQ ZPBIN *-------------------------------------- diff --git a/SBIN/HTTPD.S.txt b/SBIN/HTTPD.S.txt index 5a166477..501a5f4a 100644 --- a/SBIN/HTTPD.S.txt +++ b/SBIN/HTTPD.S.txt @@ -4,11 +4,11 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/SBIN/HTTPD + .TF SBIN/HTTPD *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/LIBTCPIP.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/LIBTCPIP.I *-------------------------------------- TIMEOUT.MAX .EQ 30 30 sec. CONN.MAX .EQ 16 diff --git a/SBIN/KCONFIG.S.txt b/SBIN/KCONFIG.S.txt index c8bcb6f5..0b99685a 100644 --- a/SBIN/KCONFIG.S.txt +++ b/SBIN/KCONFIG.S.txt @@ -6,10 +6,10 @@ AUTO 6 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/SBIN/KCONFIG + .TF SBIN/KCONFIG *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I + .INB INC/MACROS.I + .INB INC/A2OSX.I *-------------------------------------- ZPCfgPtr .EQ ZPBIN ZPTmp1 .EQ ZPBIN+2 diff --git a/SBIN/NFSD.S.txt b/SBIN/NFSD.S.txt index c5bae6e3..f7656365 100644 --- a/SBIN/NFSD.S.txt +++ b/SBIN/NFSD.S.txt @@ -6,11 +6,11 @@ AUTO 6 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/SBIN/NFSD + .TF SBIN/NFSD *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/LIBTCPIP.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/LIBTCPIP.I *-------------------------------------- TIMEOUT.MAX .EQ 30 30 sec. *-------------------------------------- diff --git a/SBIN/SHELL.S.txt b/SBIN/SHELL.S.txt index 24979282..80da4c8a 100644 --- a/SBIN/SHELL.S.txt +++ b/SBIN/SHELL.S.txt @@ -4,11 +4,11 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/SBIN/SHELL + .TF SBIN/SHELL *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/MLI.ERR.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/MLI.ERR.I *-------------------------------------- ZPPtr1 .EQ ZPBIN ZPPtr2 .EQ ZPBIN+2 diff --git a/SBIN/TCPIPD.S.CFG.txt b/SBIN/TCPIPD.S.CFG.txt index a50b470c..abbd3780 100644 --- a/SBIN/TCPIPD.S.CFG.txt +++ b/SBIN/TCPIPD.S.CFG.txt @@ -1,8 +1,6 @@ -PR#3 -PREFIX /A2OSX.BUILD NEW -INC 1 -AUTO 6 +PREFIX /A2OSX.BUILD +AUTO 4,1 .LIST OFF *-------------------------------------- CFG.Read >PUSHW L.HOSTNAME @@ -12,7 +10,27 @@ CFG.Read >PUSHW L.HOSTNAME jsr CFG.Read.HOSTNAME jsr CFG.Read.Result - >PUSHW L.TCPIP.CONF + lda IPCFG+S.IPCFG.HOSTNAME + bne .4 + + ldy DefaultHostName + +.2 lda DefaultHostName,y + sta IPCFG+S.IPCFG.HOSTNAME,y + dey + bpl .2 + +.3 lda A2osX.TIMER16 + jsr CFG.A2CharAX + sta IPCFG+S.IPCFG.HOSTNAME+7 + stx IPCFG+S.IPCFG.HOSTNAME+8 + + lda A2osX.TIMER16+1 + jsr CFG.A2CharAX + sta IPCFG+S.IPCFG.HOSTNAME+9 + stx IPCFG+S.IPCFG.HOSTNAME+10 + +.4 >PUSHW L.TCPIP.CONF >LDYA L.MSG.CFG >SYSCALL printf @@ -336,6 +354,24 @@ CFG.Dec2Hex sec .8 clc rts *-------------------------------------- +CFG.A2CharAX pha + lsr + lsr + lsr + lsr + ora #$30 + cmp #'9'+1 + bcc .1 + adc #6 +.1 tax + pla + and #$0F + ora #$30 + cmp #'9'+1 + bcc .8 + adc #6 +.8 rts +*-------------------------------------- MAN SAVE /A2OSX.SRC/SBIN/TCPIPD.S.CFG LOAD /A2OSX.SRC/SBIN/TCPIPD.S diff --git a/SBIN/TCPIPD.S.txt b/SBIN/TCPIPD.S.txt index c9c2fa92..97b7baf5 100644 --- a/SBIN/TCPIPD.S.txt +++ b/SBIN/TCPIPD.S.txt @@ -4,13 +4,13 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/SBIN/TCPIPD + .TF SBIN/TCPIPD *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/ETH.I - .INB /A2OSX.BUILD/INC/LIBTCPIP.I - .INB /A2OSX.BUILD/INC/MLI.ERR.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/ETH.I + .INB INC/LIBTCPIP.I + .INB INC/MLI.ERR.I *-------------------------------------- ZPIPCfgPtr .EQ ZPBIN ZPDevStatusPtr .EQ ZPBIN+2 @@ -57,27 +57,7 @@ CS.INIT >LDYA L.LIBTCPIP jsr CFG.Read continue even if error opening CFG file - lda IPCFG+S.IPCFG.HOSTNAME - bne .4 - - ldy DefaultHostName - -.2 lda DefaultHostName,y - sta IPCFG+S.IPCFG.HOSTNAME,y - dey - bpl .2 - -.3 lda A2osX.TIMER16 - jsr A2CharAX - sta IPCFG+S.IPCFG.HOSTNAME+7 - stx IPCFG+S.IPCFG.HOSTNAME+8 - - lda A2osX.TIMER16+1 - jsr A2CharAX - sta IPCFG+S.IPCFG.HOSTNAME+9 - stx IPCFG+S.IPCFG.HOSTNAME+10 - -.4 >PUSHW L.IPCFG + >PUSHW L.IPCFG >LIBCALL hLIBTCPIP,LIBTCPIP.SET.IPCFG lda (pPs) @@ -97,6 +77,7 @@ CS.INIT.DEV >LDYA L.DEVNAME >LDYA L.MSG.DEV.KO >SYSCALL printf + lda #MLI.E.NODEV sec rts @@ -113,25 +94,6 @@ CS.INIT.DEV >LDYA L.DEVNAME >PUSHBI IOCTL.OPEN >LDA.G hDev >SYSCALL IOCTL - bcs .9 - - >LDA.G hDev - sdfsdfsdfsf >SYSCALL GetDevStatus - - bcs .9 - >STYA ZPDevStatusPtr - - ldy #S.DIB+2 MAC - ldx #S.IPCFG.MAC - -.2 lda (ZPDevStatusPtr),y - sta IPCFG,x - iny - inx - cpx #S.IPCFG.MAC+6 - bne .2 - - clc rts .9 sec @@ -143,7 +105,7 @@ CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.POLL *-------------------------------------- CS.DOEVENT lda (pEvent) bpl .9 - >LIBCALL hLIBTCPIP,LIBTCPIP.PULSEA + >LIBCALL hLIBTCPIP,LIBTCPIP.PULSE .9 sec never discard TIME event rts @@ -160,24 +122,6 @@ CS.QUIT >LDA.G hDev >SYSCALL UnloadLib clc rts -*-------------------------------------- -A2CharAX pha - lsr - lsr - lsr - lsr - ora #$30 - cmp #'9'+1 - bcc .1 - adc #6 -.1 tax - pla - and #$0F - ora #$30 - cmp #'9'+1 - bcc .8 - adc #6 -.8 rts *-------------------------------------- .INB /A2OSX.SRC/SBIN/TCPIPD.S.CFG *-------------------------------------- diff --git a/SBIN/TELNETD.S.txt b/SBIN/TELNETD.S.txt index cf05ea48..94627b00 100644 --- a/SBIN/TELNETD.S.txt +++ b/SBIN/TELNETD.S.txt @@ -6,11 +6,11 @@ AUTO 6 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/SBIN/TELNETD + .TF SBIN/TELNETD *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/LIBTCPIP.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/LIBTCPIP.I *-------------------------------------- TIMEOUT.MAX .EQ 30 30 sec. CONN.MAX .EQ 16 diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index 661736b4..e1e25325 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -805,7 +805,7 @@ DevMgrInit >LDYAI MSG.DEV .6 jsr DevMgrInit.BLK lda #A2osX.S.BLK -.7 ldx FD.BDEV+S.FD.DEV.DEVID +.7 ldx FD.BDEV+S.FD.DEV.BUSID sta A2osX.S,x .8 dec DevMgrInit.DEVCNT diff --git a/SYS/KM.APPLETALK.S.txt b/SYS/KM.APPLETALK.S.txt index 99269e67..2da3102f 100644 --- a/SYS/KM.APPLETALK.S.txt +++ b/SYS/KM.APPLETALK.S.txt @@ -6,12 +6,12 @@ AUTO 6 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/SYS/KM.APPLETALK + .TF SYS/KM.APPLETALK *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/IO.I - .INB /A2OSX.BUILD/INC/MONITOR.I - .INB /A2OSX.BUILD/INC/PRODOS.I + .INB INC/MACROS.I + .INB INC/IO.I + .INB INC/MONITOR.I + .INB INC/PRODOS.I *-------------------------------------- TmpPtr1 .EQ $0 *-------------------------------------- diff --git a/SYS/KM.NSC.S.txt b/SYS/KM.NSC.S.txt index 952fc7df..d53b3f49 100644 --- a/SYS/KM.NSC.S.txt +++ b/SYS/KM.NSC.S.txt @@ -6,12 +6,12 @@ AUTO 6 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/SYS/KM.NSC + .TF SYS/KM.NSC *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/IO.I - .INB /A2OSX.BUILD/INC/MONITOR.I - .INB /A2OSX.BUILD/INC/PRODOS.I + .INB INC/MACROS.I + .INB INC/IO.I + .INB INC/MONITOR.I + .INB INC/PRODOS.I *-------------------------------------- TmpPtr1 .EQ $0 TmpPtr2 .EQ $2 diff --git a/SYS/KM.RAMWORKS.S.txt b/SYS/KM.RAMWORKS.S.txt index 171f327d..64a17bba 100644 --- a/SYS/KM.RAMWORKS.S.txt +++ b/SYS/KM.RAMWORKS.S.txt @@ -6,13 +6,13 @@ AUTO 6 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/SYS/KM.RAMWORKS + .TF SYS/KM.RAMWORKS *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/IO.I - .INB /A2OSX.BUILD/INC/MONITOR.I - .INB /A2OSX.BUILD/INC/PRODOS.I - .INB /A2OSX.BUILD/INC/MLI.ERR.I + .INB INC/MACROS.I + .INB INC/IO.I + .INB INC/MONITOR.I + .INB INC/PRODOS.I + .INB INC/MLI.ERR.I *-------------------------------------- TmpPtr1 .EQ $0 TmpPtr2 .EQ $2 diff --git a/SYS/KM.VSDRIVE.S.txt b/SYS/KM.VSDRIVE.S.txt index 03d3694b..a6dcece6 100644 --- a/SYS/KM.VSDRIVE.S.txt +++ b/SYS/KM.VSDRIVE.S.txt @@ -4,14 +4,14 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/SYS/KM.VSDRIVE + .TF SYS/KM.VSDRIVE *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/IO.I - .INB /A2OSX.BUILD/INC/MONITOR.I - .INB /A2OSX.BUILD/INC/PRODOS.I - .INB /A2OSX.BUILD/INC/MLI.ERR.I - .INB /A2OSX.BUILD/INC/COM.6551.I + .INB INC/MACROS.I + .INB INC/IO.I + .INB INC/MONITOR.I + .INB INC/PRODOS.I + .INB INC/MLI.ERR.I + .INB INC/COM.6551.I *-------------------------------------- TmpPtr1 .EQ $0 ADT.CMD.VSD .EQ $C5 "E": Virtual Drive Command Envelope diff --git a/TEST.S.txt b/TEST.S.txt index 73635f2c..2bd609c4 100644 --- a/TEST.S.txt +++ b/TEST.S.txt @@ -4,11 +4,11 @@ AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/ROOT/TEST + .TF ROOT/TEST *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/LIBPAK.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/LIBPAK.I *-------------------------------------- ZPPakHdrPtr .EQ ZPBIN ZPPakDataPtr .EQ ZPBIN+2