From 67a73ae57105795faeecefcaf69a763746b38dd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 25 Nov 2016 17:20:28 +0100 Subject: [PATCH] Kernel version 0.8 : added Room in GP for SmartPort/ProDOS BlkDev interface --- A2OSX.BOOT.po | Bin 143360 -> 143360 bytes A2OSX.DEV.po | Bin 143360 -> 143360 bytes A2OSX.SRC.po | Bin 819200 -> 819200 bytes A2osX.S.QC.txt | 8 +---- A2osX.S.txt | 8 ++--- BIN/DEVDUMP.S.txt | 19 ++++++----- BIN/DNSINFO.S.txt | 6 ++-- BIN/LSDEV.S.txt | 69 ++++++++++++++++++++-------------------- DRV/DHGR.DRV.S.txt | 8 ++--- DRV/SSC.I.DRV.S.txt | 4 +-- DRV/UTHERNET2.DRV.S.txt | 7 ---- INC/A2osX.I.txt | 30 ++++++++--------- INC/PRODOS.I.txt | 26 +++++++-------- SYS/KERNEL.S.GP.txt | 40 +++++++++++++++++++++-- SYS/KERNEL.S.INIT2.txt | 10 +++--- SYS/KERNEL.S.txt | 10 +++--- _MAKESYS.txt | 2 +- 17 files changed, 133 insertions(+), 114 deletions(-) diff --git a/A2OSX.BOOT.po b/A2OSX.BOOT.po index ae9735b4bb9dc00051b0ebedb2be50ed433cb7d6..7dac558f1e77c6fed5af5d2a0185a89ecabe9c2d 100644 GIT binary patch delta 6646 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 bk+Q`M`$SIKME=MHZhxPOd#q2Db~)oeEWa`U delta 7358 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 diff --git a/A2OSX.SRC.po b/A2OSX.SRC.po index f05671dc2ce23f76bd1c4fe05f6af8ce339e519a..e6d57f561bed860c4590db53f62dc38e74971eba 100644 GIT binary patch delta 28181 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 delta 31156 zcmeHwd30OF_5Zx5_v9zZi)3wC; zLu0+Ucjn#M?%es@JM%8N#B<3do}+6-{Xeo1`Ck$Gv#BS&u*w|k6<6qcb@9Yow?9&_ z%zW%2@d5QAtyZ&%rlV8e#5mp_yCT)Wp=0-_UeD<+)Wmb_jkTob=$;ef&r4$?>Auv- z%=q&;y|Jg$>vTs|@r2G;dPYuaqZyrBV7GuAkDnE*$*9vkV~;Z|kL}6u>7Jbze?BAj zT1JlUfC)0>k_=<9FEg5S9a(Yu!?6~9j_3M{`13#m`6Z#U`liN!vp%ra8Kk5Wt9T3A zSQ2NuGj>>?qw6-upYM$whhnbM$Dem?Cch-Ks4LXu548J39#+-~%x9pngtP}@>4qH7 z&$3Z8KZ{7WtcPW*X!W-H{Efl504H7-3`moY$_f^z1KWRN8w}giGtuG#w6`FGWPCn& z>~+JUlynK5OhXg-Ml+=GTVolvZ2g}Ea3S*4^o{#oCZCZf$9nhUE9c#C9^3CI4CW8w}KEWRU;Keo8wV=2>kKRUd5$8faXzqT_J2)gRsu~nsoCi6pc zlgr)5E-Jl|t2MrY4i9YURb)WMSJC0ou|!g3y$6|pIhX5LWBK!vuVR2}3pRq_%^}xS zD}2FFpt-#<>hOAoMtjZ-j`eN}yEZOu9_%06Fz7&)J1BE-U9ipHc4eG9)>f5ks~A*} zoE&l6Sv8s< zwR9v&_f^?r8>;n|>Rpr^@V3DaPm&|m`CN7E)@pMBtz~f6=FQ>J(XG1%1}38Q{iD5o z1K}-BQqzjqYt{hk33e5D~fZrbh!7&1&tYM?5oPor{ubhj!+MGv5j?Ug=v;jba(}n>GQU>Mvske zHgRc|<;tX+ww!{bUS-nVTh|$neLJDbJ0{%t4JVjYeElOg1$n%-NnC~x{!6Pr_SDT@ z4*%^u!HRddMC~2l=Z_WM_E(nJ zC|(7EIb&T%Jciuh+|=uj)bRFhmhZhIU-I^I*zZs8x|z3+vfp=3-Nf53WWPgq!+Z9U z-?mu#J>9(h3YLE1Jq5h|0Q-IHo*f434RhaAaqlmF-c{_8v%f zUcEoq66)xr)Ara`52kSGgJGv{Xkch$zq2kFb>nX<1i!kzJ=omdfLohHKkI`hkJfSc z(+N%=(;qk7@kn~C@c7Go_CnSJ>Zc8YZ4o+*ANoRTiB&uusj)4YQ}4#`n0I8G7o{!* zLT6X7X`L5kEt|s>d-G|J!M18n>M`3-mvOoF&N<1Qpo~HdP>d~ruy=#ja%}H2H5{L_ z9UHP!?6KFMjalrY-<9Xs_|GbU?{e(?N}C;f@;L|ZxcY{tbp=($2T>4)ZhM2Xxic{h zqK zM9WZmHE8$Frf6}UKX&Tn;>@gC1&`C;UcdiX|k!V|MGqS+Ian^gIMeq>x%W4%_&tR!-vGH#+jG%V$(~{yhzsonMZn~ z&PpUULgw72SnkOjt{FJ9@>WAaRts%nZ%=cSOtBWCl|e@$TPtBvw*iZ_J$CSxde$YfRT9(D!WncoW>4kAUql#L&g9}42ITuqn#by{ym*8>Smh+^ms z7ZT5eLUK1C=MoH3&8-hCX2`aYw2w)97Hg6+B%O`Qj?b?^^EbtAIW;f07dhRuf7t+C z<8!k04EoX57klSamTfaSyd@01xdlofz3E0`7~Yz-^#(m>E#5|k$^;oIS=-}71r&7) zF&taV-3upBcK;16oPG5_y@Tq@{wQhz~BqSaNWY%qVl0Jg(w}A>Hm|ubv0l zP2mb^F{exrP9+Y_* zjGAD`+Y=4#815V!aih%3Sv5=Kgi<73few%LLf>8qGKF`NVXnJM?ojCF10bH|YV74X zbL1d8JOop!sJPaJ(yn15`#QQpNV=AFsC1n?P7cZ42nEET0R8nuT+%zf0O8lbk_y7_ zMbab_-iDD<54c?WscvwitQ%R~$;e#N<4g=qWI9Z8u#s^UWv)cln-UGB95Pwo!|5u{ zT6!~3$?}Lyw~)N7FIe6xr2T%JYP}V=t2j&KHda`%r=h`%w6`-d7}|G`%yLIuDT}GS zGoD*I!fI4>7fK9k#XUHV-7|qsAPXn za|m@@gZo|(+aoX}i4rdMfvyCFrYA#F@l403;d(Zyp;=jB5)9C>(Q#y+WJ-uB#$fO6 zaIg)TF_|9Y@^VfSdyoVJb!;5w<6$PC&U2_Q)~}1!Kfq)Z<5c8q+8M9;elZ^|2F)+7sYvz+t~|YTq?K@vXO4SQ<2yc zPduVXTqh?=cd=qjQ>bp_+@{{aEd$|^D@lVwKrPt}l;evp6r`E&jdNiRj8My@Nwm$_&gVYp6`Zi+oPLW7aW3}- zvUtQEat52%`}Yy6i&c)Mfq_+#e8d<3ksCkMWSOzN&3&ZN#yS12$q%^_TMkvH9m?#a z$Q8vit3Ko&<)%L3^y2NvS%dM}UurEl{REfK+mBG|AJ?DYcBkat538eVl9Asy!Hx6w zM;UqZ*W3hef08}?`)h6|Z~r-axZoRZjJN-iJ*dCs{xErxTa(-k%{+0E^Ktn22Yf0{ z<$3cFo}W3@sBYqU`*N12Z?*axc@t!tIUw>&0D;;>Ni(l}s`YSuU35y~(`Rxm{GYi) z59Ur~K@ozT{|1_s7p8Lfn&MWntUBX1y9nkM@_==f=o>=C#R2{~)8b}2OPlMUM;R9oQwHV%talAA{7j2#`Q%BJJz|9Q_C~od0^opkqu&on#UGHZL?(H6jnh??P~bPpFU2=csq(lo{NpK=-Ci!U`3JWo*x)y^ zEySNpsj{3Epy^>_;6jp<37fqL`GOR|Iz-LxC`b_A0s3?d<+;dC(VRyfU>j-nzyK$E zEy5xTiR_hh;_$iE_=3AtIhq=1`S50xyBK@#Rb{2MwIZpOm_QRKe+l8Ri_jhUODWad z2KFmTg~=1&@QN^pu=^fWKG%fTz#rI+6|BTN?^R{zLrEfRe398ZTM8W%)F4Zr-8`cO8E0K z+Z0l_gIon2M9zG!6JJOEticb%pX>mUn1Cq?VVJ}rDovr(#Uz&ZDT&5yp%wv>As0S( z9j?6(goeEdZQe8S?e|fkH^@S7{GWubZz4jUMfmeF&sGS%i3r_`U%L;a?ZcmuKbx`P z2Ou=;Ly#GEAg2qxl?t6L!kz?~Km#c`$SAY-Q-+8R_99ecz&Ha%L`0TA15uND2dl7d zkc_)PSNlPfF+_gWclg)(+e25PjA8P)rVG|~r8bgASVrwAA;T(#D#oY+C6gtgK%#-B%Lo;9(FX&`mVONbx3<5{Okz8 zj7+@<)d!t0(gGo*y_ozam6Tu$6p2?u-=@K4L{^ox zsNx!IJf&KwhHVI%cOCYhQWdMg&O^Q!9y+C}bAowC`nrVayi!ovb};Zr_TUastDQq5 zV_;}BR=8nlSU8E_Ii)Hr+I%k9jDrn+B!Rg{H@{%v(ZvW5g~L#I)lIl4Q>cu5kEm&Y z2SA74jH1X2W*ph+&}!C)cax6UHHvg#wUIqLVS}9oGK0}kg;@=@Zrux2i>^evJLFeX zBR%XW;$s(xNOuHC1kYHE#JkY-2<$XxHQDf6=!C3q4z_rZ?(PKB4~19M*|~aDH*hWp z;oAYaHm>Q*J$s9*@IQa5dLG~MxT<|h68J;MgLoBm$jpdVxJ)&bE(ihf9+1*uo{-cN`zTO(-mSdM=wYP=6_D)OjwK`?v@=*-x=>yHKQkCc!vu z5^PzXGtH>7V3`Tbq`S@{6C(wcfT@9ly`}|!m{tpHi)LCD3Mmvmk6X-6 zAYCJ2uH+NhIqP%33ZfJ1{}o zz%A$x1ll{MtAw`Vq*ac=DmUQ=|H@0TH$S`vd)En1S=cgM#M-H#m}oVCr>53}3=e#v z&BA3Hgu*hL(qW*qIrGcr2!(fS5DF}|g>#bITI!nv_|^@=IzGD^M+d=4khW3y_sq$S z0&l|aeao46`=6=S#;GI16TJOn!eqnmjtGUk!dnNA+%HwQJcvhkgvULq_AxgODzl_@6s?eJ4;NwZMNMEv-UGf!Sbvx_*+Ohx|QB+*tjWu}3ijC&BNvrqB{IH5lOtpf9H42{NP3wy zYVIp!;~by%2Z&|%2%D$}BIO^&2rvRt;;NUnr7znto!;;mbe@%7Vmzw`z*_K}qN zYxYC)8~S%Ya{Lxwb%#*6;&(7-Y`B8sN|&v72RA%6N!A*bkXkR#(G zvYjCd6Vbivgo|NN7+sqtepdlB1@Y@d+wLB%IDCL1@% z_$hnwqOQ@Ax?Nj6)io&fGcqEXn@Ic@h+zFU?kyHA4WFOR`X2@B7r<)xubfaPZ^`su zCK71V<$Q&oC>FDIClbl^Get*)Kk6obp)Q&}Ds+MNJiwP|%<(xlbN3^{I&N}WD4hBs zOs~ReVYP_Q{8DS5x%9_^A7mR6iRH% zM-?=sgB)M?q)^N|$MDV?(WC;K6qgpY0^xI~#VrD3llqJkS`*MF59i6nZg7OI=}Eu z;cLF2f~`AC{vd4RvumjLaOS~32=%zVjxM zTA57U`k62=^)Eq@~ZXq77 z5zS=q<0Yx${d~#AG52;0oebZmimH^EQ$~@~=ZAL#bQDG6*I-y1zJXpyZc+j6{}vm* z$C(4tNm*~5VtPx9IM%%=jU&J4rtJXA;K@UB)28CsZcpGSB%&25FYIUX)VP11n7br} zOROhkcW{}rDH!z}7hHfyqil(Tc#?CQo1GmE!7B;Hhv;pC>Nh zbeNkj7OGQeui>}ni59$KzNph(7VJMiOgeNy8V=1D3sPFiLqR&eXg)M_2EK*-(c>rP zi$xj(6R|K8{|z|9Mvgf$_U(eWo%UTj`obf~Xo5tTunGOU2U*N4si<;a035a>gVFlt zIwVw8CE_}TlE6P(DCR{n4WJ*|yisq! z83fG97eeMtS*>?hy8*Wa!bUeT8rfPIPlNrH*~IvY;%S7>Y@W>r7#aAGEo5KWh9oQN z*X%6WeyR`H*DmUDf)VXxg#?jgV>~%_?0%Zh#y?soTKS?}d`5-n!0)XS^Mz7WkdLDk zVt!fyQ*B_d7ox*cPLZE{lTX3pkE>Gg@d`1WbKqAiL>E^y>4JZYvD+ms!gp*CbG6a} z_LBS(eDqm9m!DUPciy2b24L$&msre|<4;{;2@LJdH~Ab*1>?0j@d~$?#Vv|Ox0+PQ z?xOR@C%VZh2MU||*o)n+^5WWBlvT+vQUEep#o7YSKrn=iRm$dR3qa#IYVf(WVxfES zX%w**CW~TZw<{5p8)* z%_w~p+a@ofo@N~YTXLrSI>M7zX7ToR+IW0cCw})Q zf;obuHBftk+yrDe7;r3P3K7$WxQ=0b2U|NrpO`z zG!#I_9@c7LUb2)@q+2J~8G;bjL+NQ}%EPzV)c}A9ta!v0Z1eh1nhbCi6}xIt`dJAA z?2OX@)uLcialH?v!*VF+0Rz(78;gW3Twm1I)J_?TmW_N2eI?c!QX#Lo8vJ8)-|Wn#0yXC!us&$ zp)KLI-p$MlPXaG$!3&R9REri1fbX=S0e>eDnYa_m%pbw$REv4sD30ExwQ*x?WmuD< z&GOpD6H_%lQ&}jgG{L5Y_WZa_Re6EJZc1)y(rd(ATjPZa+N?#yTO&Go&qWEF3O{_G z#%{eBL4eXIRbd_iOHsw1cS-E%wp?6xx!_6D?FG4rvUZ_)`*6XT>LR{$KUsP5m@_lf zKJDxpAcUgkfba||IyU}q4E6;ExDvMDA8{FB@Vo175p6Uniwa@Wc+W?*-nz#|R zX#_5$P!&m_uJZJ27?rv9^?+E(yb!C^fl{wy&&`1~DD4pY9V8f=Ar^lKHFx?NAWY?Y zd^8R8$_@DVaUnZf_M>NFL_FWulKy0YDUQQbPeg8FqeGz&OgF<&Na*iqu*n-hB7j#& z_kA*2X*`Gi*0@4~5e^`Z@it{K^+XX#x09{P1jVjMFh@}h(gAiw^#r)u?_w{R$5x4G zpe-0c)+u>9RPL)iccDxE4=ubKyOxOM+&$z^KE7aym}(h77)Q2m9)nG)(&L(F{^#N|DAzx2k#2Uf;x4#NiBwH)* z-mRb?WY7fwU9umhE&|7Ei6V57jMtUcxkUs#(Epv$eM7qj$H2%EVTX)# z|CFZ(RPJMVHhqE(D?}srDSi$9MAAM}6p;C^Sp|^x_%~$9{G1e_T%aV_^^#d6!p0Y6 zeo59%;*X5KSO+^0I-@F4<_QK3$RsFI_cag+)Bw8v8$0ATe;eQ2Cr2hSpCs~`YEQ}2 z6>;&k+{kg%`5A8nQY4?CieM)ryTIYxl`#56yyzaajaPGc4Lq(+Vf)n#iKDAI8=y$9 z;SLXP@7+HN@e)y(5t5cWJT}pb3_2wnyhci;j3_G&%3CTLQ^ARl4oL&OC?^Ada*x`Y z2E$*{%Si^3l&#JLfy_p%zgKPYg4N3w)+*QDfZw+k8Nui!U8<vHnLI^HM+S;-t`~26zXk zy+jJU#n=el2?~m|hm*vOtwVNj%KAi`Wi@aU3$%r`p4bX+bhP1NpIDgF&crGLZ%zj% zhggzz6gEMfv7Nh2)oVDaIi&#k3sDI{cn$H1K%8FJ+$xD{q2#P??l2yPKwp);hfYBg z)(5l#w~kCp^I0(0jO$^JK|L2y`P;m~7GyY+qj7tSKzY}BgMO5=fi)wWBVJgy_H>W* zkI{B9Y-F^=S|gpsCU4%^_;9_L8`-3!Be55x()F>fgq1?v49}TcxVic(Eb9}{U)z|r zQRuJj@yPWo1e297&JYAa&C8**syuiK_ zCLNw_BS719Pc?`FesNT&E?hd#<=Ia5w>#7P{y6Uu4J`!-1eGdJ;;sDs4uIZrC6EgcGK zTX;)9oC4|}-8?in7~VV<-U6|F_|?^-1^f(f$|u^|KX`65I2;ZWG2pa;8&RCeS>M^( z<7}u;6ou1TL|c}dQ&5`})MYJV;l@%Gg)kBjQ`E6x5US}L8r<5yZP!TeSpU!<^{+St z%INed8YIred@S=t#?h7Fz(-p^-!4(J^!g@WXE3lfkT^z!-)s>JjLT9Oxw$jpn!(yu zvBbAXVuZ%-1OY1F*gF3~G|Kk12Djr^MSVA5?f)G8L+Tv|qH>IjCY<0F1X z0N>jx{%f*bWKmo*aHeI1Rh=)sq!GHJ4gFJl#fAv@#b5(Ly^_>TLVfQLZp-m3iihXH)7KE9k zKMELCDmkqQwu`O)0CTTYqG~}-ulI($l-EH{0F%}+;c655zborxOdST%t2IY1Z z{ue=_$d@6#nq|G7yrB{{Rw?ZD775bhktc1fS2F=D8f9t&P4ys)R+-vFQ(;G~gW@fz z3Q`X%1~#5)d@zzIy@!4o92LLN=BRgUnK9Z{*H`oaHFbnN2%~QA8tNN)8T$!^6nD0T+4&BmRD#I@@3a zz+e^+elAbFkhgE98}1oRzPg4pSa;85YAsMdV6#H(_^iBg`FmLTg@x)>e9jdNKc6U6 z2YCCn3@CrEP+e(&u=$~DI7ZTrJ4*MxMd<)3R|S?1ZEu9f8%+jxL*+IhMd!{HX#ph8fTOKpsFLP^A6 zgQ2trcv1sAH7SZbRVXzGg^;K`_^k^8AKCW+Ul;I6YkAmjjU%xe9<)6?tb24NUq?h3 zkAguet_OSkF^_$_WBrG;f-fq5%DOWR~&x5I|u^&LMFT5Geur1)`8T ze#@V=aV;r_- zXJr7bsoe)@3n36GfW%t~9ClkgSVjQ~5!jlbmWhx{Kq27h){V+tAt2(gE(3y%bQH0M zvSDSt8=m#|5QL7bYBDZAj?e}wt7&R1eu1gxgw16VBsgQjV)q>^|(L)vF#*n1Ar{uo2rA5S3dI=m@2 z1w3p|GOYVJ!@8eVVBJ6cPOSSG_WA^J%dqZep&quMQLNkZ9K*V$pA)Qm5}AI163hVe zUQWT2=Vh91n4`7{1H?G zNv{E548WsV2EgNh2X!xt0D~hPAl|aC!}4nwCN2uaDY{Yr8&Ya@FW^CNq#R%f39xY5 zuYiElegy*&5OC)2fZ_2blt)Jqvd4=yZ~sF#`V1)^+>oUMY%7B@W`{ zVH@vkB9Vf0zZZ0N)ptT5og2_nz*Fh9GALg&i;)1Wl(3f+24AzczMgH~zJS0^h`0s)AM(OB0sLCDBPkiS>3RP>jqY*L zAnM|37s~xorgn6OnmYiTAuYqQR-(eMWMV|7I=cdmduZFq@z;(Mv$H$BzLq!xL}&{x zixbwT^0RoNZhF(C>lBD%~O@3cXu&a&6?6U@_K{*_wMo7gWT0xN&96vl)hRiC) zL4g{Y4LV+u%fclC9a> z6oz1MaH|qWX9hUOh>Wsp3)&exe&72Na96*-jd%Hd}TE zfZI+svy8c?I|K3(R0yyGXF!4M+AL(QO^58-EMji43~{E}Z1#I|T3-!E@tC<`05!b(Y~1RygZ|J>1<0AJX4RU^)p4kP`^#yQ#8Z9pgzUT za4)HE2c$fj;A)NHqc5vH1(tn^BnmQ;%Y>{DxkJsJ?x|PQedXkkUE8)1XTwN1j0~3p zEg3{wg)CPniolCpDV{V71n?vvNj&6AnM||Xs7RVIx>E?64-p*+wwcd7DU)296=Ek6 zY50b!lI=e+PAKy;w7({0x<>l1rb_p*JWxS@ zd;%RQeoFrN4E~Y+CA)0@Eqi}IXWrkU|6s=|$r1S?Ic5F}?Dj9?N<{%b(z9;5uM%@1 z^8`nuzyf}92|@^h;dEaEQ9g0@4HT31Em0p72wjYHC*_>ADB~0vmgmF0cxxM48)k#7XouL3ZOLmsuoPApUC`!wT z7Z88~a;ZRtVjgLw{6t$6$Zb)`+M>{b&u)+kB1Or@D~1fZd2&&J_Rc3iVV?-+X><#K zjdT?l0wtsgN(sVE4$^~5R#zsMu>^_bKr}66Whe#%k}4=ZjVw-9Xq<*mHb^P!77-$> z?kb-dJp}EBdwgh0T?ZTvt>odt7m6TP$rY=XJGq93!kzw+-qG+? z*tJSBMQRgu%z&Xoj_1Lp9{vtEO}!LeXj#V4`dLUg(w!mqKdcbT<@_F$u_BQ_2>H`i z5j>tj_ekeWG=sh_!3NG)wI6BgdFN!4)Rl;imu9}-B=vE)iW4nUt0i9OMtQloofC6s z7Pm@*#M}Fr3nUPdNR0eAdpg!7t%av+m~JcRmaev(4L93-$C<6;-BPn{*^LU?tnfw> zBhN29oD6U5?vWnjOKwjD$uC$Z{a(#2nc5_&XSl7>Dbb6FhXU@H8iQ(rBSS{sL3iwe zMoiz$`dmir&tpv?^FRoD1F9IuiwC5IkqOe|=f{D2_W`m5$+<2#J(uo6QZD#8!0U1m z8#*wXOc%3R04Jt=+j~d6V?FDTK0?L_Eep070hD$LFQ1tLZ-p)zFD8O?mnOCh7wI592j)PU8AFNKcSo%LaSab-Y5{gLEXqa*k3D zf!rj(7WNBiF?l2xS2v*4>-j@}@uonu0dacZwkENPUYSAT{|}leReSG?3=8pv8ju^ps9y0T{PzVCYIYNNlfPynzgq4I;4+961+>n(Z2jpG`*%<8% zI=92l$G;Zo!7?BtqGY&pl*H~?tMH;x$+EN>kg-|mHISgl4To1rcEjR1eC8#w=xVLG*S9V)l_RwzVN=gR{lI4yA_T z!vV5&K{np97GL)lqRR&TG;t$>=mBZD8P(ZR4Cl(-aLEf z(aJ>&N}=@dcbC4EZTO^Zau;uh8tM9>mzGSDZql4X(=R3WLeMaa+yT;0^xzQPtHJ0a zhp2t6M!5eC>37T;a5(o#p~#~fArq3_o-hhO+3g8qirW)*C2mgu$35JhfH$RRZv&h6 z`KfWKEW&)uL_6FNSCf?uNSp-qro*rvx+W(fTA^1Fm~Lh& z3XHk#Ky%3N?dpNxZpg0vJ~a(s!>hj)iiVvH2?=Y3UN+puvcPRH5m=mC-AI2sQ*BseGo+2$PKX;&HVVkFpF)KOX~+)%)hU@=dKpt+k`15qU1!!)GvUS6?E9Hh0m zkB_kG+@Gk9@c~vARELD$(b_ynYV%N{Hb>{w=Hc10BK;$CDsyZ$160QNC}Szvl&pnu zI#G-Gn>91>N<79YVS1cz9x{&!zYQjeQ>hTqKL16J8 zsGXf6z6Ec~`XfGimt=Ll4duf;k=~L2zAOKIkNwsCNfs7D(*F!U`=_R)>GClslC?h- zQui02kRZ(}l<__Zp2RvNuL6qF=woUs`QH`{}DP)&Ek_Xb?@y-nz zW8@zo4`hcnflC{a^iR@on^DHctZyKh1dpVBq9{)Kl!bOkpRxI9`WG9vz{^GrctbM& zO*bi|Sdw4*Tpn}(kzf7=PYf&A^F+qTyWOS$o3RDZ?VTP`i*1YsPH z%WV2OkuULn=^K!ZI4-`G)z(S2X-Ye#s7MA<9bQ3}e<+t$o>Nf;Bk?NQ2s)Jt<_s*m zaDj)QqWU>qRFT6)prgr28Jij(->AvrQtg zPUTxG|JJ9%$y2g>mCr&N(^QGw%~g!um@X&5_C`+1$WT$U@EXQp(33}E+|ny`0G>3c z63x%D6xSeqCP{>v$*zP4FiNmu%7$ak;p4lcs>n!#f~R zlg|pwE5P5|q{%HQRQ18`tPM^z9bj)XI}$0rV6!Zvr3k;fNn;);Rs->WIK+5sH=F5=0( znp%SuqVs1Fv2UMdnZXKp-|Xb8_Gwl-?B#QklM!!#@F8mjH??1r9sw8c2*GbgWo&Vb zL3}c{n7NB#h)IB4zk4>?D4qwo4dcpO(9))fIr&K1`CQqJL}x1Ez%z{(KqB>-CL+Nv zOhSr^Pt%F;0@n zP=hvJj|U#sUVjY2Ou4BWH9{)Y()B^N$6e!}yjjy`umTi2dw8tBnT#3$US}uYL6euw zP5$U+%>@Q4oIse(J#vet(qM%n2D6hNxkclg{=TML0o;@LH}}lvcW6>M{PIO`*~JkJ zKT|lRX$DxLl))0wyEQ-M?X~P-{XOsiSTDJ69ar6}xd9)(OY6a3-m59MRQD+0iR8)5 zn)@{Qw&ryT+AQee-1{^x-m^XlUBJoAyZDm61avX@15KKS&w7)3p=S>MP&2{_B#LQj zTEpklbGT$TXoBM+^4Xh&x5To9ox6c%1F-Hp&)vWY66P%cMYEg^$kWf=z#$T(UpeR8 z4ICk%=We|0+)W)DmdTwBoV)QszN~t7?#3^V(FQh*;DE?!=Wd$h`OwT*HLEEroV#gZ z=WbeMdYepdm+4s@+;^Y5>4f(i;m8QxawT16R!Z z3Y`zzALS{X?d+5e94nz__BpJrML0@=3J37PA887VaCAgQ7uY~U)*<}#k2IE^VOot# z748;kC-X3wK#R{FoDdldNnWLk{ojeB8_XJoK#rWzcG}bhFf~0rHqTwA5&$NOEEIy#UE>eQ2Kf7vak<7(ZFS47ZN{~e(^;_c`5E-ss2>6K;KDk*Gk^Og8M(! ztcqku2(O!jt|ZQiL>=(tK-rft5_s$tBzOW+l#v47ZUqURfOM%$s&7-0>f3;{hmpXJ zijyMH;P42vy^IESYMch7l`B^|kZqrw&FNB*%HZQ8`{M++f&kxJ2>IKgE8(`0%i;_k z1p@>$RKOexIZ*NCa_xi8$~g>h*wWv;)?W`p;fi=6RSF)6B=FY3tC|RlGj@|a7s)A*B$5+}M99C(~)`~Pb?Yi1q+B>@26BCtQ0kp)GPKlxBHa}dE zpCCpZ?L*O#@aXUmT-YAnIs#!x^Md3MlRJa**LO_`S{F{O(l*4eMZ*16+A`jL5fR9S ze^90M^Y%Sdx|x(}ZH%9}`IOerS^YmJtwG{V*eyu%x1sPqYPC*F^)D!qe2hZzWhPv) zM4O-Gdp@4Axf8(Hr1t1tqAj;LU!YX@LJiQ8R>Q4Jv{_3kUZgZ{T}L34I06@?A0w(? z+65QVN4)(Q9N%hj4OoS}V&n_8hYbtyINg+$X{bh@SuwW7?6*-~570_&+W1Sv+aiRY^7 zONgom`&d4ed8zVL=APuKOfZV)SmTC$b5CXNSC&5KROV%j#%x$v>m;z7396HK1v`~_ zrIL=st3ays1B!(WE=`4`%!8*zfLtT5T5vG)S{5szIGA}|+?qn-A<|H>c^5tx`C~fx=FcwIGBl9`EknyYN5L^K@|_f3*cbUKu~MbeGh(1H&govzp-4qa5|)Y zgPU5b)dm6l18cJ~G3Ll2#CixqfsYszu`iSnlnz*`X0ed92Us?-&y;lq;iBy1$jIBI zeSn)0`n2C@gtoRW-_(FMeMUH6`;7|lSYhg7t@A9DaSIy^@vYkT=WMwEO`Wqxih&3J0kDF?qYkeDJa8yH{F9p?vY0$VBzu}>|W(~VRv!dC)<=i zkj>NknR%N10GO2QhKU1nf;+_r;T@R|k;0XxnRt}E`r)Jr6Y+(jV8g&w8pcQBlDJ)a zsSZcRW2cFd^(X`#xF%;CFmU&Wahl~;OhW67JPO>deYCuKI6}V?86Qu+-4`l|l0a|M zk4bJYPl=5S*Pu8XyWwUH5Y_qwwb|;PJWUYkDK-)<#}zgk%UTXr+tcxP1E>n+ls|)? zctBegc@}pNzJ9tezmnVHjXA^lq3EI z3O4^%*#o5e;r12R?=bg}c9H4#rMV^>9)As+B*U#woockJESMarzz` zr`A7xH&*axiWS)YqAZAF1>*Z4rsuEtpXY1ckq=0i3)zLhw?5oUknTgM4m(XR{tejD zKVot*s{Ze!2Nm4^kh$St-#>v{g6JFS-1~%ymj3B16ymefP>77ye*p{u!;->*Rmk}7 z(@}}f=b{q-nS)Av!CqGMUkXa72`JJ2B{n>)ZA<@32}GQT0}qmA&GW<)E!H+8^hiNkNt?I$^E5E}--?2!3hl^asN>QH!#1{(>^za`9kFauDoF;ac zd0^Kdk~}O|ekK07PM4>tVviNo_+y=JAy9V;x zT$`rL;e5C&O;;QN=dSYmFdA_3lDkZh*Z_rPH$nxVM$Vdj+lHcJL(y~TCHTihCo(k? z;l`uR>bP({Cg!vo{{x53r1een60XmDuP$mVbqz6OT$Ewf*wZ>7)aWc1Q6)#SF3 z8@|2ix-8z-jtk(g8eG39w-c{O2XWWnGs&L-9)~{~_|_QtpjSr--;%Ct=eqDe(sed& zEmmjfRxbjNuI!bEZblM#bBT8~13bB`Q^^oO(t5e`&cu-nT^6?ib9bpt5tIp@T)7j$ z%&LbiXezjHNeX-h38kJ*T&`pgfLj*awgfgKpGSg^N5ZLexVSus4B*9`H3}ryuhFTs znY}S{OZW&+nOG4j}PRq}NoFEW7- zm-KBi4L;3dA0vsgzu`l_Hd447zoX^~)aQYG#p75^;fhKpNSjZP+w}puf`GOQptEJS z*oEvoiFgsPXI+ffq;S^q2rC*yrblX5w{^l*aT!sz^^iX$Bwh*`=Iz0;6s}mk7k*do z!%w7eRiXWCULDAXI MSG.INIT1 jsr A2osX.QC.PrintAX - ldx #0 -.2 lda $1200,x Setup Global Page - sta $BE00,x - inx - bne .2 - .3 jsr MLI .DA #MLISETPREFIX .DA MLISETPREFIX00 diff --git a/A2osX.S.txt b/A2osX.S.txt index d83fe3d0..b0202d33 100644 --- a/A2osX.S.txt +++ b/A2osX.S.txt @@ -169,10 +169,10 @@ A2osX.MLIQuit >LDAXI MSG.INIT0OK DisableRamDRV php sei lda DEVPTRS3D2 - cmp DEVPTRS0D1 + cmp DEVPTRS S0D1=NOVEV bne .1 lda DEVPTRS3D2+1 - cmp DEVPTRS0D1+1 + cmp DEVPTRS+1 S0D1=NODEV beq .9 S3D2=NODEV, nothing to do .1 ldx DEVCNT @@ -203,9 +203,9 @@ DisableRamDRV php stz DEVLST,x dec DEVCNT - lda DEVPTRS0D1 + lda DEVPTRS sta DEVPTRS3D2 - lda DEVPTRS0D1+1 + lda DEVPTRS+1 sta DEVPTRS3D2+1 plp diff --git a/BIN/DEVDUMP.S.txt b/BIN/DEVDUMP.S.txt index 0073a9be..ee6cca4d 100644 --- a/BIN/DEVDUMP.S.txt +++ b/BIN/DEVDUMP.S.txt @@ -33,6 +33,7 @@ CS.START cld .DA CS.RUN .DA CS.DOEVENT .DA CS.QUIT +L.MSG0 .DA MSG0 .DA 0 *-------------------------------------- CS.INIT >SYSCALL GetArgC @@ -89,16 +90,12 @@ CS.DOEVENT ldy #S.EVT.hDEV ldy #S.EVT.DATALO lda (pEvent),y - pha - >SYSCALL HexOutA - lda #'(' - >SYSCALL COutA - pla - cmp #$20 - bcc .1 - >SYSCALL COutA -.1 lda #')' - >SYSCALL COutA + >PUSHA + >PUSHA + + >LDYA L.MSG0 + >SYSCALL CPrintFYA + clc rts @@ -111,6 +108,8 @@ CS.QUIT ldx #DEVMGR.CLOSE rts *-------------------------------------- CS.END +MSG0 >CSTR "[%h]" +*-------------------------------------- .DUMMY .OR 0 DS.START diff --git a/BIN/DNSINFO.S.txt b/BIN/DNSINFO.S.txt index 5753165c..94197a44 100644 --- a/BIN/DNSINFO.S.txt +++ b/BIN/DNSINFO.S.txt @@ -8,9 +8,9 @@ AUTO 6 .OR $2000 .TF /A2OSX.BOOT/BIN/DNSINFO *-------------------------------------- - .INB INC/MACROS.I - .INB INC/A2OSX.I - .INB INC/LIBTCPIP.I + .INB /A2OSX.DEV/INC/MACROS.I + .INB /A2OSX.DEV/INC/A2OSX.I + .INB /A2OSX.DEV/INC/LIBTCPIP.I *-------------------------------------- ZPPTR1 .EQ ZPBIN ZPPTR2 .EQ ZPBIN+2 diff --git a/BIN/LSDEV.S.txt b/BIN/LSDEV.S.txt index d6d35084..05549e93 100644 --- a/BIN/LSDEV.S.txt +++ b/BIN/LSDEV.S.txt @@ -13,7 +13,7 @@ AUTO 6 .INB /A2OSX.DEV/INC/A2OSX.I *-------------------------------------- ZPPTR1 .EQ ZPBIN -BlkDevCmd .EQ ZPBIN+2 $42 +ZPPTR2 .EQ ZPBIN+2 *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -101,26 +101,26 @@ DumpA2osXDev >LDYA L.MSG0 DumpProDOSDev >LDYA L.MSG2 >SYSCALL CPrintFYA - stz DEV.ID + stz BLKCALL.PARAMS CmdNum = 0, STATUS Call + stz BLKCALL.PARAMS+4 ask for Block 0 + stz BLKCALL.PARAMS+5 (in case driver check block validity before checking CmdNum) + + ldx DEVCNT + stx DEV.ID .1 ldx DEV.ID - inc DEV.ID - - cpx DEVCNT - bne .11 - - clc - rts - -.11 lda #1 - sta Drive - + + ldy #1 + lda DEVLST,x bpl .2 - inc Drive + iny -.2 and #$F0 +.2 sty Drive + + and #$F0 + sta BLKCALL.PARAMS+1 UnitNum for BLKCALL, if needed lsr lsr lsr @@ -130,14 +130,16 @@ DumpProDOSDev >LDYA L.MSG2 and #$7 sta Slot -* lda DEVPTRS,y -* sta ZPPTR1 - stz ZPPTR1 + stz ZPPTR1 make Ptr1 = Cn00 + lda DEVPTRS,y + sta ZPPTR2 make Ptr2 = Cnxx (prodos BLK entry point) + lda DEVPTRS+1,y sta ZPPTR1+1 + sta ZPPTR2+1 cmp #$C1 - bcc .1 3rd Party Driver loaded in RAM... + bcc .8 3rd Party Driver loaded in RAM... cmp #$C8 bcs .4 In ProDOS Space.../RAM or DisK II @@ -152,11 +154,11 @@ DumpProDOSDev >LDYA L.MSG2 bne .3 jsr GO.SmartPort Perform a Smartpot STATUS call - bcs .1 + bcs .8 jsr PrintDevStatus - jmp .1 + bra .8 .4 cmp #$ff RAM ? bne .5 @@ -175,9 +177,9 @@ DumpProDOSDev >LDYA L.MSG2 dey bpl .71 - >DEBUG - -* jsr GO.BlockDev + >LDYA ZPPTR2 Get Block device PTR + jsr A2osX.BLKCALL + bcs .8 stx UsrBuf256+S.SPSTAT.BLKNUM sty UsrBuf256+S.SPSTAT.BLKNUM+1 @@ -185,7 +187,12 @@ DumpProDOSDev >LDYA L.MSG2 jsr PrintDevStatus -.8 jmp .1 +.8 dec DEV.ID + bmi .9 + jmp .1 + +.9 clc + rts *-------------------------------------- S.SPSTAT.STATUS .EQ 0 S.SPSTAT.STATUS.BLK .EQ %10000000 @@ -203,9 +210,6 @@ S.SPSTAT.SUBTYP .EQ 22 S.SPSTAT.VER .EQ 23 S.SPSTAT .EQ 25 *-------------------------------------- -GO.BlockDev stz BlkDevCmd - jmp (ZPPTR1) -*-------------------------------------- GO.SmartPort ldy #$ff lda (ZPPTR1),y @@ -235,10 +239,7 @@ GO.SmartPort ldy #$ff .3 lda SMP.Params will be relocated rts *-------------------------------------- -PrintDevStatus - ldy #S.SPSTAT.BLKNUM - lda /UsrBuf256 - >PUSHYA +PrintDevStatus >PUSHW UsrBuf256+S.SPSTAT.BLKNUM ldy #S.SPSTAT.NAME lda /UsrBuf256 @@ -265,8 +266,8 @@ DiskII.OFS .HS 010305FF DiskII.SIG .HS 20000300 MSG0 >CSTR "ID Flags Name Address\n" MSG1 >CSTR "%03d %b %4S $%H\n" -MSG2 >CSTR "ID Flags Name Description Size\n" -MSG3 >CSTR "%03d %b S%dD%d %S %L\n" +MSG2 >CSTR "ID Flags Name Description Size\n" +MSG3 >CSTR "%03d %b S%dD%d %S %05D\n" RAM >PSTR "ProDOS Ram Disk " DISK2 >PSTR "Apple Disk ][ " GENERIC >PSTR "Generic Blk Dev " diff --git a/DRV/DHGR.DRV.S.txt b/DRV/DHGR.DRV.S.txt index c99a273f..081fd3ec 100644 --- a/DRV/DHGR.DRV.S.txt +++ b/DRV/DHGR.DRV.S.txt @@ -8,10 +8,10 @@ AUTO 6 .OR $2000 .TF /A2OSX.BOOT/DRV/DHGR.DRV *-------------------------------------- - .INB INC/MACROS.I - .INB INC/A2OSX.I - .INB INC/IO.I - .INB INC/LIBGFX.I + .INB /A2OSX.DEV/INC/MACROS.I + .INB /A2OSX.DEV/INC/A2OSX.I + .INB /A2OSX.DEV/INC/IO.I + .INB /A2OSX.DEV/INC/LIBGFX.I *-------------------------------------- ZPBase .EQ ZPDRV ZPShiftLo .EQ ZPDRV+2 diff --git a/DRV/SSC.I.DRV.S.txt b/DRV/SSC.I.DRV.S.txt index ff92dbff..fd426d60 100644 --- a/DRV/SSC.I.DRV.S.txt +++ b/DRV/SSC.I.DRV.S.txt @@ -8,8 +8,8 @@ AUTO 6 .OR $2000 .TF /A2OSX.BOOT/DRV/SSC.I.DRV *-------------------------------------- - .INB INC/MACROS.I - .INB INC/A2OSX.I + .INB /A2OSX.DEV/INC/MACROS.I + .INB /A2OSX.DEV/INC/A2OSX.I *-------------------------------------- BUF.SIZE .EQ $20 BUF.MASK .EQ $1F diff --git a/DRV/UTHERNET2.DRV.S.txt b/DRV/UTHERNET2.DRV.S.txt index 1985bea9..392fa116 100644 --- a/DRV/UTHERNET2.DRV.S.txt +++ b/DRV/UTHERNET2.DRV.S.txt @@ -13,13 +13,6 @@ AUTO 6 .INB /A2OSX.DEV/INC/LIBTCPIP.I *-------------------------------------- ZPTmpPTR .EQ ZPDRV -*-------------------------------------- - .MA AR.SELECT - lda /W5100.AR.]1 - sta W5100.AR,x - lda #W5100.AR.]1 - sta W5100.AR+1,x - .EM *-------------------------------------- .INB DRV/X.NET.W5100.S *-------------------------------------- diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index 0e1acdbc..a3486b49 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -63,7 +63,9 @@ D.STACK.TOP .EQ $03F0 ...Down to $0300 KrnBuf256 .EQ $0C00 Main *-------------------------------------- MLICALL.PARAMS .EQ $0D00 Main, $12 bytes min !!!! -KrnSTAT .EQ $0D12 +BLKCALL.PARAMS .EQ $0D20 Max 6 Bytes copied to/from $42->$47 before Firmware call +PRTCALL.PARAMS .EQ $D030 Max 8 bytes for smartport cmdnum $0->$9 +KrnSTAT .EQ $0D40 S.STAT *-------------------------------------- KrnOut256 .EQ $0E00 Used to return Values to User Space *-------------------------------------- @@ -89,23 +91,25 @@ MemMgr.HiMem .EQ $1804 MemMgr.LastSlot .EQ $1806 *-------------------------------------- MemMgr.MLoMem .EQ $2000 -MemMgr.MHiMem .EQ $BE00 +MemMgr.MHiMem .EQ $BD00 MemMgr.XLoMem .EQ $2000 MemMgr.XHiMem .EQ $C000 *-------------------------------------- DevMgr.HiMem .EQ $FFFA Protect IRQ vectors in Aux LC *-------------------------------------- * A2osX GLOBAL PAGE -* $BE00->$BE0F : Public Vetors +* $BD00->$BD0F : Public Vetors *-------------------------------------- -A2osX.SYSCALL .EQ $BE00 -A2osX.LIBCALL .EQ $BE03 -A2osX.MLICALL .EQ $BE06 +A2osX.SYSCALL .EQ $BD00 +A2osX.LIBCALL .EQ $BD03 +A2osX.MLICALL .EQ $BD06 +A2osX.BLKCALL .EQ $BD09 +A2osX.PRTCALL .EQ $BD0C *-------------------------------------- -pCodeJmp .EQ $BE10 -pLibJmp .EQ $BE13 -pDrvJmp .EQ $BE16 -pDevJmp .EQ $BE19 +pCodeJmp .EQ $BD10 +pLibJmp .EQ $BD13 +pDrvJmp .EQ $BD16 +pDevJmp .EQ $BD19 *-------------------------------------- * $BEE0->$BEEF : Public Variables *-------------------------------------- @@ -507,12 +511,6 @@ S.DIR.PRODOS.FC .EQ 6 S.DIR.PRODOS .EQ 8 * no S.DIR *-------------------------------------- -* S.DIRENT for ReadDir -*-------------------------------------- -S.DIRENT.NAME .EQ 0 -* Variable size -S.DIRENT.STAT .EQ S.STAT -*-------------------------------------- S.PFT.PATH .EQ 0 S.PFT.HANDLER .EQ 23 S.PFT.DATA .EQ 24 8 bytes OPAQUE data for handler diff --git a/INC/PRODOS.I.txt b/INC/PRODOS.I.txt index f42bef91..a8a0e8f1 100644 --- a/INC/PRODOS.I.txt +++ b/INC/PRODOS.I.txt @@ -115,8 +115,8 @@ MLI .EQ $BF00 *JSPARE .EQ $BF03 DATETIME .EQ $BF06 SYSERR .EQ $BF09 -SYSDEATH .EQ $BF0C -SERR .EQ $BF0F +*SYSDEATH .EQ $BF0C +*SERR .EQ $BF0F DEVPTRS .EQ $BF10 *DEVPTRS0D1 .EQ $BF10 *DEVPTRS1D1 .EQ $BF12 @@ -137,8 +137,8 @@ DEVPTRS3D2 .EQ $BF26 DEVNUM .EQ $BF30 DEVCNT .EQ $BF31 DEVLST .EQ $BF32 -> $BF3F -DEVLST0END .EQ $BF40 A 0 was added to ensure list ended with 0 if 14 devices in list -PRODOSCOPYRIGHT .EQ $BF41 ;free->$BF4B +*DEVLST0END .EQ $BF40 A 0 was added to ensure list ended with 0 if 14 devices in list +*PRODOSCOPYRIGHT .EQ $BF41 ;free->$BF4B MEMTABL .EQ $BF58 -> $BF6F *GL.BUFF .EQ $BF70 *INTRUPT1 .EQ $BF80 @@ -147,8 +147,8 @@ MEMTABL .EQ $BF58 -> $BF6F *INTRUPT4 .EQ $BF86 DATELO .EQ $BF90 TIMELO .EQ $BF92 -LEVEL .EQ $BF94 -BUBIT .EQ $BF95 +*LEVEL .EQ $BF94 +*BUBIT .EQ $BF95 *SPARE1 .EQ $BF96 MACHID .EQ $BF98 MACHID.TYPE .EQ %11001000 @@ -161,15 +161,15 @@ MACHID.RAM .EQ %00110000 MACHID.RAM.128 .EQ %00110000 MACHID.RAM.64 .EQ %00100000 MACHID.RAM.48 .EQ %00010000 -MACHID.SPARE .EQ %00000100 +*MACHID.SPARE .EQ %00000100 MACHID.COL80 .EQ %00000010 MACHID.CLK .EQ %00000001 -SLTBYT .EQ $BF99 -PFIXPTR .EQ $BF9A -MLIACTV .EQ $BF9B -CMDADR .EQ $BF9C -SAVEX .EQ $BF9E -SAVEY .EQ $BF9F +*SLTBYT .EQ $BF99 +*PFIXPTR .EQ $BF9A +*MLIACTV .EQ $BF9B +*CMDADR .EQ $BF9C +*SAVEX .EQ $BF9E +*SAVEY .EQ $BF9F *-------------------------------------- * code $BFA0 -> $BFF3 *-------------------------------------- diff --git a/SYS/KERNEL.S.GP.txt b/SYS/KERNEL.S.GP.txt index 8de8d562..367d3d2f 100644 --- a/SYS/KERNEL.S.GP.txt +++ b/SYS/KERNEL.S.GP.txt @@ -37,13 +37,20 @@ AUTO 6 *-------------------------------------- jmp A2osX.BLKCALL1 *-------------------------------------- - .BS $BE10-* +* PRTCALL (AUXLC to MAINLC) +* Used by Kernel +* In: +* Y,A = Ptr To Param Block +*-------------------------------------- + jmp A2osX.PRTCALL1 +*-------------------------------------- + .BS $BD10-* *-------------------------------------- jmp (pCode) pCodeJmp jmp (pLib) pLibJmp jmp (pDrv) pDrvJmp jmp (pDev) pDevJmp - .BS $BE20-* + .BS $BD20-* *-------------------------------------- GO.Reset jsr GO.A2osX jmp K.KernelRun @@ -97,7 +104,34 @@ A2osX.MLICALL1 stx .1 jsr GO.A2osX rts *-------------------------------------- -A2osX.BLKCALL1 +* BLKCALL.PARAMS moved to MainZP/LC +* $42 Command Number +* $43 Unit Number +* $44-$45 Buffer Pointer +* $46-$47 Block Number +*-------------------------------------- +A2osX.BLKCALL1 >STYA .2+1 setup device entry point $Cnxx + + jsr GO.ProDOS + + ldx #5 + +.1 lda BLKCALL.PARAMS,x + sta $42,x setup ZP in main memory for this block device calll + dex + bpl .1 + +.2 jsr $ffff + + jsr GO.A2osX + rts +*-------------------------------------- +* Smartport Call +*-------------------------------------- +A2osX.PRTCALL1 + + clc + rts *-------------------------------------- GO.ProDOS lda $D000 We re coming from AUXLC, saving bank... sta GO.A2osX.BNK+1 diff --git a/SYS/KERNEL.S.INIT2.txt b/SYS/KERNEL.S.INIT2.txt index d258fcee..f7d004b6 100644 --- a/SYS/KERNEL.S.INIT2.txt +++ b/SYS/KERNEL.S.INIT2.txt @@ -10,11 +10,11 @@ Kernel.Init2 sei >LDAXI MSG.Init2 jsr PrintCStrAX - >LDYAI A2osX.BE00 + >LDYAI A2osX.GP >STYA ZPQuickPtr1 - >LDYAI $BE00 + >LDYAI A2osX.SYSCALL >STYA ZPQuickPtr2 - >LDYAI A2osX.BE00.SIZE^$FFFF + >LDYAI A2osX.GP.SIZE^$FFFF >STYA ZPQuickPtr3 jsr Kernel.Move @@ -89,10 +89,10 @@ Kernel.Init2 sei jsr CPU.Init >LDAXI MSG.Init2.OK - jsr PrintCStrAX + jsr PrintCStrAX rts Do NOT replace this JSR/RTS with a JMP *-------------------------------------- -MSG.Init2 >CSTR "A2osX[Stage2]:Init\nInstalling KERNEL...\n - $BE00 (Global Page)...\n" +MSG.Init2 >CSTR "A2osX[Stage2]:Init\nInstalling KERNEL...\n - Global Page...\n" MSG.D000BNK1 >CSTR " - $D000 Bank1...\n" MSG.D000BNK2 >CSTR " - $D000 Bank2...\n" MSG.E000 >CSTR " - $E000...\n" diff --git a/SYS/KERNEL.S.txt b/SYS/KERNEL.S.txt index 5fb0e911..c4e9d3ec 100644 --- a/SYS/KERNEL.S.txt +++ b/SYS/KERNEL.S.txt @@ -49,11 +49,11 @@ ZPQuickPtr4 .EQ ZPKERNEL+6 *-------------------------------------- * Global Page *-------------------------------------- -A2osX.BE00 .EQ * - .PH $BE00 +A2osX.GP .EQ * + .PH $BD00 .INB SYS/KERNEL.S.GP .EP -A2osX.BE00.END .EQ * +A2osX.GP.END .EQ * *-------------------------------------- * LC AUX $D000 BANK1 API Calls $00-$3E *-------------------------------------- @@ -120,13 +120,13 @@ A2osX.E000.END .EQ * *-------------------------------------- .LIST ON *-------------------------------------- -A2osX.BE00.SIZE .EQ A2osX.BE00.END-A2osX.BE00 +A2osX.GP.SIZE .EQ A2osX.GP.END-A2osX.GP A2osX.D001.SIZE .EQ A2osX.D001.END-A2osX.D001 A2osX.D002.SIZE .EQ A2osX.D002.END-A2osX.D002 A2osX.E000.SIZE .EQ A2osX.E000.END-A2osX.E000 *-------------------------------------- .LIST OFF - .DO A2osX.BE00.SIZE>$E0 + .DO A2osX.GP.SIZE>$1E0 .LIST ON * !!!!!!!!!!!!! ERROR:GP too big !!!!!!!!!!!! .LIST OFF diff --git a/_MAKESYS.txt b/_MAKESYS.txt index d42a8256..2ff695a4 100644 --- a/_MAKESYS.txt +++ b/_MAKESYS.txt @@ -5,7 +5,7 @@ AUTO 6 PREFIX /A2OSX.BOOT BLOAD A2OSX.SYSTEM DELETE A2OSX.SYSTEM -BSAVE A2OSX.SYSTEM,TSYS,A$2000,L$1000 +BSAVE A2OSX.SYSTEM,TSYS,A$2000,L$0A00 -A2OSX.SYSTEM MAN PREFIX /A2OSX.SRC