From fd3b4036e0f55348bb4d7c0691981f1071532703 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Thu, 26 Jan 2017 17:28:52 +0100 Subject: [PATCH] Kernel version 0.9 : SHell, Added READ internal command --- A2OSX.BOOT.po | Bin 143360 -> 143360 bytes A2OSX.SRC.po | Bin 819200 -> 819200 bytes A2osX.STARTUP.txt | 3 +- README.md | 3 +- SBIN/SHELL.S.CMD.txt | 101 ++++++++++++++++++++++++++++--- SBIN/SHELL.S.txt | 138 ++++++++++++++++++++++++++++++------------- 6 files changed, 194 insertions(+), 51 deletions(-) diff --git a/A2OSX.BOOT.po b/A2OSX.BOOT.po index f6ef513a203fdd127e0a98792d7cc925f1917be4..4543737ab6cf0de95a9eb6151b663ff0d8db8b74 100644 GIT binary patch delta 1475 zcmZuxZERCz6u!5!qm%3-FrXVu-o5SG_1;y70yZk+brDL&!(?w z+$fyA)3T#$_0Dj1EhvO38!VeM>1p;)o`X3F*$8kWV=vN-geL^n)3#8X9CLcc63IQE&5!puuH=^zN&&Xl;sLl*O5#RUWl&qNDmkbgNAk z_0m(PGkuPSBGV;jIreEqQS?mhW?Uv9p-vEmeZsVF#`nEX7Uc%nf6%{EXcm6-O}L52 z=Kaz;;r+tB#rsp;be-WjBy2`3hSQi9g?82^I1Q72m{uE3H5o@C-WUgwx`Cdp z&ESe(eGv_#w{ZqjCkob&xIV_{7fec3A?AovJG$&mttA>D!a5RM0KOXjf0PKmpTLP?%0)5oowN`!o$Q_`dTY@p?$4_AA!!O5K8)epPweDpP{z9Zx#|)G=u;paN`hr0(%;r1&Bjr)%p@>3!3mwi#W;tD|)}%Oa zsS>1Ea~X+VhrQq4zgAccJGAqUqm$D4C(y|z!p%t3KJ`_Zb?Y?s>T|R$GN58;Wl+Ur zNX20?09Ug&KWz4QL59*ea2&^KGE(5M)EgXWfQp+YO4iB{%TZ=W<8Wg6*p|NA zNS#iImtwY`n=&|_#;O#pSSg_UM;R*hkU@}0|Ma)Y1A{ZzTF$2`_Z5Ox3PCvnPjsR0 z-+~}%e>`wZ>R|;#T2bg4hSOtU@qZ}Ol8S*Z^fe{}x;wXnAJ+Hhwt##+=iznzgWO$Z t?C-#CVAwKrKdfKL-EZ7z)%oSs@!h(mQwl%p^?% z?OdDshRn7^A%+Ej?-#t-omU_r>)i!lZdP+OBm4JWf#%<04&r*vSXaG zz9^8vKj1UZF3!WTT!1^pE&G1*{p=HX!7l_}3moKnxK&@Yt&_dMe#3swzSK6)zT4j4 zeuzE8UFIkX-12CbNtFc}H|exCNK&xhXVjs%UQwV+1nv%F_v~IU;{w`It7ZNXM~ZjF zM4d`ObTtbbY%UQwvplwgJd5NkG+V*%9-~)#i_qFU3C1R%JUQ6#Cl^aWi2;2+!w;Gv znd8@0-VVAuroA^Ih{NQLG_E^Fj0TKGG(x8CGZ}D& zC~~k6!}abIOiw6KUHYyyDAfi)?qR?M%ipn$7I%>3b_dyclq6GDvd6T!L{cjBAz20T z^ID#rJV!g~dP)1Uf?pjfJ>57Jc9r?XZh2gy z{$tQO#rK03rvkHnFvEk$7_|6b*G_u{f8j88FJX4k%FKI38b@l7Hf;I+KsXT}e#mlB z5kA{aoSfT04*`ri-C2FTq~Hhh8d1Mp2ex%q{cZh3ETKU19!C|3#uO-`1ev9veN3c@ zu6PKIWnpj-CR=i$V1FnPp6+^+N_3-2J{wj-=GJvfBduoAWbjq?*u;NM11`dclD0ct zIhf8uB_ua&)!d)VSgx2wqa*@#Zlme+=n6E;RjKq$4ce+f8;Bg?KPLV!h=@+5gKvl4 zw+bdQd*lKnf6OvVKe#d*QXsi6(g#sO^_CCNvU;-oIEh1Lmi|!vq};mGdRL4FNuQ*9 nSuK7i}3+F+|J&`0UYr3HGPuFwl)MGyZA9?aE_ diff --git a/A2OSX.SRC.po b/A2OSX.SRC.po index 7f19df49b1079f2552142c19392f7bcef6dc5136..0be73ef25044599f0c6d6be10db37347c6972796 100644 GIT binary patch delta 11742 zcmdry_hVee(evKW0^>i4Q>b z0cCt}C}y0}(h_YAf#aYu-rW&1`s-suv6&&TACfC7!TE=DNSxCiQpUmlM_MpqlvRTE zFn(u0q69;%y??~0ZCw%p`=iQuTRd@|5v&INF=f1~cLcH@7kd!EtP#k30*UMCH_9rE z3b6l);1N6onNOPIvvK?>9Pf=A!G)kbjoV~CgOkZko|TJgKz~l|@#pkC5|H^96Ile2 zJui_}f%XC-^S(&H>x{CtNW6V`Al@2}bwK7{1%|Tn>Pm3EB+fpK^JV(1bzpxPaSX(W zQ0*1O;doUERxxpomWmBve@*UD1KR5eqWFz;iVvqKep6EXw{(gj^DUEL;>z18WbY8J zchhmbm&B#LkCXb}CBhGq2rbCxJHPi{sb)E0TM^K|GI*;$y7TJ5-B~W!Rt!HZ%5u|C zWW(t>`%lkNZahW@?Lioa(gQ5>M5V-e5V%}S>u(vP;|C7ybiUwg_5T6J7e!V_!nI9J zMoY^;SMSi`)wN)M2*%sm2aRA2Wc*PqEDOyA_rvMX!$aX(uss678a6OA2->5#Tj68u z7bhwO)sKrsBq1nhfhRyp$efCei-)_rjh5I@=Lsk*xQ!4N?MYmH;!|u-z1_ncwaQHA z(?<~e3=y1_@hpt*^FF;)zcidD^D041-mK%G+Td{t75Qui9Jn)*6xtW(MZ zZvbjVdm6lU7-#3d$wupxdCFVt-a4fy@iq>5-htpeu39PF_ID-HYS7+882x?1HUgf% z3zCwMq-YapP5qIv#?2NFI zqkO_f!b-9AQyj|wj9njA@|1tEd&5fM?Ejd22v$Jxf5mP|3TB69jjW%uZrz-b;GFe% zdH2*SN|k+hu+!*`^~51(HFK_20?H|@|+oAMK z*1lFLNt~5#mcSWH2PO;Fma<^&>7X>%ftyGrj-%?>)+oVhMwZfkwj$(mBWRsCS5F^N#uqi!udX$kf<*KN z6!@;aBg%s1WbsM0Gf<9%R-w&*A7&VJv7z=(V_9EEd<*zduE_3|%^e+z4-OgOp@Ht% z?T~?@C1}JGqhx{aL$-T^#k&e+NLbc}k*=ZTy$#D3g9~MeTujQAW`CRx1+GtkyQCC= zj3HAk@A_ zn*HD4VbOxc2V(6*U2Ee;4<7k4@O}%yP~|RpjKOwd1h~FK{D}#t$oSsm+g#89S)HlK zi>f#kO}Hv=1r^nTllDpCuF-G0v?HC1W<>~nvNAq25(DQHf*dg#2HV4^oP*%Ap)@Vr z)!s9!KRJlvl3|xSgwWMyDB~n<8JVW+EZn4W;6Tbs-Rpa4egsOJ1 zy{l{1$VSkexHrnT=0X^U8)4?|;@4hYRS9+v;vm%wf#0i)pEEdMgd@T5(%RO>=3qG5 z+5~oAa+mA?F6Kt7tbCzk4cK!eMOEO-RoLNCi^rRXe4^XUSNQGb7m_R8b-UtAXhpcc zw;1OsKtK&_>gtULm({KUdkNwp+m8n+C2p0G*J}qy`2=QyK9x?g4)kLLH(eDI=271D z>Ef*38N}xaQ9xS@GQbhsFXJts@oVJM3p_k+!O7}i3sGXHP4Tdz=b@sPMp20e9angh0Tp} zO-rHI%e@-JUfv~a-|dPgW2uQ5d_QE*+^%?c4mNux7c_H8*kx1wnad>v3PFny0^dmz zSF5Buf+Q72S+h+oShGTcqhhV3=Q_npXx}POb;f#c8BOg!|He zEH_SwJ&G=2YctfsfRP3&JRQbex$Bjk2jB7)fxbZ*@9#t_wK27&K8j=AG4PGCH#1ak zU=vPBceO0CB-qlrd|68r{Fm}5!DG8jx@piii=9g^XA3jck||e+PydxHmZ|zGwwP#m z01wWsL|7EPAO;mf1E>Mp@ajspv+Hqf^$xsdGA%XWzKYw1F*3YHd*5&`Mtna(Nc%3S zE12~#_$=foyfg%-`S&+npqhL+j9S-8BK_da&JX-d6s8x)u-1%2KTf{kOv6 z*?*VZM88+~uk8D{RX1V{>#Ay*S$ZO0XTG^%w_(>kp=8n9OxQMB-wmIo!1Ce?+43kdB81JEVUA`y)vb z^+%;rJSH|TdpvFPa8v6h?m2tdOsASzfk`mkN{TuJ0R2xA!;=C-!Bgx^r<&jKv}9Bb z*q;%!mQ{lrv*06$bUZiVB%otf+<~F9<1Z6#25irp7o)!*8TBH2!>Q)X$0Rt|*j#5s z>KdEpM3y!*H3cKVhSpZded&MApiP6^m)UHWnv?g6z+`)stX@NNJ?O8Ak(}3A%%uhb zZz$5F>{!$iiMAT0XkALdf0%7|slND|N_bg)WSg7{V_rbbS#AM>gA_$-##Ourk_qKhrThLem?)k5%k081rJ z@m`8KHuKT>tntN3``O|5EUuhF7!TIh8ugL;?tkFH0|yVis97iLQ*4Lr%sHfdnyv7E zApR)Uor?MibAGK(W8s%4<*_>+QVW}1Zrb*oO4fIwC9o!h^T__KoUmo};I6^}N*A`!2>k%}TpWrvE^FXJ z^aI@Ua3~V3jq)M-0eSOrXz{WrE{is7rp4w5yk4xtkgh>okZ&=_Tjl`( z`cCqv-lb`E1$2_N180Z9-YBx?vJlk$NaPhP_G62i-FUHOT4I?@ZZIxrK5B6-_?H8Z z%A>2I!R7t&-o;(rajMF+AR>`cYbRm8<7qW>rc`p488P#w#h9r@kII`?P~PNg2ir=s zZlj+p4(DIR&ib*%cid{RH$^v%z3A}lr=)g06?e@&4Jl6Z=u27~8lsKOC{g~?cN#DH zm=>74G@-S@b)dJ4EY02_H^amvE?K#TScwXZpXp*hH2GjtwTKIHSP65m)wi8&snh#TA)jFit$hoNqBWHccQL@-O4) z*qd3ZCjpMl6H)mtmz=B~ZNQ_fGrBS51ILwu1QM&-jt+2aHKj-dbnb1EL}@Ef+@0Gc z6C=SEyuC0uc9?XCh}XUo#uIJr?IaxfRlw6k`%lc>LEA+~X96#2H)k*eekz!B6l=#3 z+<7%%#34%sWR6_dOgJ50n&(@~08&(0?ax)N!v^z(=X(cb|Yl-OKpB+ySM2D0Q14IEYg=5T^v?JIhkwjrJ2P@*#Pf3{|4U6HRV;P*%8vSAVix?jfcdS1u zuBYTN^Ln_YxD-Rf^~GersTV=^8|;ru-eW`I3B;KHCt$B-sR7iWCnxgS_Y^|%(#Ql2 zdgcfXdJYfF?Xc9KKOe0@SOn*?oYbJ_&BF-|(qBLg;u-LZ;y8hq$Wl{WOSJPel@srI zSz>BSxf<6i6UZjjcohjxs)p1IDwW$_C$-`my&?H_Sn$pD=3HW&42?FECg^{YAa4l} z=i3A!4Ars#uf}Yvo9eZz|&LoaAvHV@C0U>%Iy~jXhp%8Uj)EiUdo;>J|8AiWSFViAo5e zSdoo&D!LRIaZtsIm}#4n4ErlZXnstHZM@Pl^|UHnPpq6P^N)FA+BZL~3LdR(jbb_; zhD@wjk#XW-VF1fkBzzc6PdK_>El~Pu_HMDL3B=onWkVB)mz$hex-ugJj>~%-l1)A| zY1Glb=*P<}Vv%BwQ$_yL6a})dl|GC0dQs$Ziy~K%QO0Gu69Zpx$TC;5w-r{{Nv~n; z!C6nYE~^C89n~6;$$5*}Gute=bCxKVgL`Ru(up9`!Ph7l5Jdmg+d<{|O3LAX#B#P< zN_EvZHZ7R!=N+bW#XT9L4l2-~~e zQtXPF1Q?)UDz&=X%RNHDeR# zrwZ-ypT-XEw)nD77s`V1IV$S0XRvp7TWXwVN<)LCgtJght75Ejk0qqEv9>*ySxP(G zy2nzW#M!NTEcyO52;ju{EU93K3Id(%@E(gltBY(KI^rsreJ%udoH1knj2kR36imgG z?meQKr-$UYFoAnNIe^z*3ckOykX!Xm#crpBqX@ke8(f&6E{zzK7=M2#L}unk>|D1x zBmbXDs+6>OQJ5p28YwqQsl|1NTcsA)6K=Ig`IP;`trjbvu?&wo9h+PWJZjORe+y)u z|HuS*75U)ht&v~^^#4lP{9G}s^;eh~Yh7))6!N}cZ|u@@&dUChvfEw3x`;s?LdRDM z3H&zm+x@jdhv454o@9ah8-?tS9O5R(^{vv`+;DPBZFK1sv@(QU38fRozNu^PALBc^~^VWO0z+A@E@hDtRTz+{}*UDBdQhg2448;uAo43gp>M zRr=&OAM@{F4}NI(C9paLUMxs)ZEj3!ZTfG*LDP<=^^2)sC5&kX7OZ%rL;Yf`Tcw~y zzxd{)$@-<>b?z-GJ3v){P2C*{X^ZSw(-J{BXjIH{-YQ9wy)W=%Su3?cs(p5{Ir$e#gdl@ z93!bm2rjIDO^hb8u|JNu5*ynfO= zY=~pBBFZ8YI;%vGQsU&{DJcjz;r||T(A*~SZvA`Yk?JiKwuL) zeT&t<;!<3RK}QhdDojkkhWQAI{tVDC6M>v7D5BwagfuQ&(n{J+zI+O1BjZga*He?X zvDrA*Xo?N@Vz0M!4jGj>cstywm+swWwV@gPnLN(!iN_&kI`>GD&0F=|!0E2O@kqMq z(Zo$icjnK9z;aJ-$27#$RLVd~Zsv#j5oRDq911fKei`&w$b-4Zk%!VS6#>_+Y1Hry ze7A9O+As~7$VMV(A6y0gJE#zMl)>_0YSPw)eQxvqc%s;~tg8yM;z=xYb< zE+YJH_V`C?kxj=mg(RZrx9rMmtc9mwGQtJqUco~DeaP}gYBl%9y3Gm%_HBMIrUUn< zI2;zqnh1z6AK?MANlmyuwD(%8HRE$Jjy3(_FPQTNYf<5s$r0CAr~%ZnpEo)u7@V`= z1StNRH6zUF-yp&Ix0oi4#31K8o-U0I#<1}n$JD)VjX~g`f6wI{e1N8?4d0H<9UX}G z^dS_@PEmM+1S1U<4W-SZ1Q+mk4htu-$8WGMDAdem0lti}ThZ{5rY!(%GD1()S>cV= z^4=-J#-&7a1Y9;;*PkxU$?o<-3;{E!_KyObNq@0_l!b_?sl5>C$W}Ii7rWXEL%Rlt z(x2gI*wcm_7u$EEHQ;fRS@%$TfU_nv3e&ypRisAi!sy$#_a`ncBc7#S5Iv#0#9w)LZi#cNSGdx2ad}(uSIw^U zz}&Qn`ZnQ{z1vgHkBYXND4EFKAp)|R%2A9xz*=Yf$(w?xPgV{a=%yrly3^BAP;hV?xm4ceD0HhyW6W#&W8EF>gYzcYYdnHl@#M!VY2|SeJ!{f^ z0;ld*g((gQeEB)*&Y&l^GS^&9h3~whR_Dvr1#)%ao&Af~Dv92>488r|r^K0j#3m7u zyFu-w7mM^@@p3t&sGU)KvOtlG9MV-miybd4SifS~vejV2dkQXZHLyyhsr8s#P`V8j zRyw@sU((tHIVST>%*@bwvkO@`Sxr`__#P<OO@EBjA$SP!WGU;p3f HP~ZJOw*&9< delta 9905 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 ExpandPStrYA inc ZPPtr2+1 bra .1 -.5 jmp (J.INTCMDS,x) - +.5 jmp (J.INTCMDS,x) *-------------------------------------- Cmd.Exec.EXT ldy #1 lda CMD,y @@ -115,7 +114,6 @@ Cmd.Exec.EXT ldy #1 .2 phx save X=hMem, Y,A = Filename >PUSHYA - >PUSHW L.CMD replace CMD in TmpBuffer with full path >SYSCALL PStrCpy @@ -398,9 +396,7 @@ Cmd.Exec.SETVAR tax .8 clc .9 rts -.99 lda #SYSMGR.ERRSYN - sec - rts +.99 jmp Cmd.Exec.ERRSYN *-------------------------------------- Cmd.Exec.DATE sec .HS 90 bcc @@ -439,9 +435,98 @@ Cmd.Exec.ECHO lda ARGS .9 rts *-------------------------------------- -Cmd.Exec.READ +Cmd.Exec.READ lda ARGS + beq .9 + + lda #0 + ldy #bSecureRead + sta (pData),y + + lda pData clc - rts + adc #VarBuffer + sta ZPPTR1 + lda pData+1 + adc #0 + sta ZPPTR1+1 + + ldx #0 + +.1 cpx ARGS + beq .8 + inx + lda ARGS,x + cmp #' ' + beq .1 + cmp #'-' + bne .7 + + cpx ARGS + beq .9 + inx + lda ARGS,x + cmp #'S' + bne .2 + + ldy #bSecureRead + lda #$80 + sta (pData),y + bra .1 + +.2 cmp #'P' + bne .9 + + cpx ARGS + beq .9 + inx + lda ARGS,x + cmp #' ' + bne .9 + + cpx ARGS + beq .9 + + inx + lda ARGS,x + cmp #'"' + bne .9 + +.3 cpx ARGS + beq .9 + + inx + lda ARGS,x + cmp #'"' + beq .1 + phx + >SYSCALL PutCA + plx + bcs .99 + bra .3 + +.9 jmp Cmd.Exec.ERRSYN + +.70 inx + lda ARGS,x + cmp #' ' + beq .1 + +.7 lda (ZPPTR1) + cmp #VarLen.MAX + beq .9 + inc + sta (ZPPTR1) + tay + lda ARGS,x + sta (ZPPTR1),y + cpx ARGS + bne .70 + +.8 lda (ZPPTR1) No var name ? SYNERR + beq .9 + + clc +.99 rts *-------------------------------------- Cmd.Exec.PAUSE ldy #bPause lda #$80 diff --git a/SBIN/SHELL.S.txt b/SBIN/SHELL.S.txt index 846e53bd..9ad44c9d 100644 --- a/SBIN/SHELL.S.txt +++ b/SBIN/SHELL.S.txt @@ -16,7 +16,8 @@ ZPPTR1 .EQ ZPBIN ZPPTR2 .EQ ZPBIN+2 ZPPTR3 .EQ ZPBIN+4 *-------------------------------------- -CmdBuffer.MAX .EQ 127 +CmdLine.MAX .EQ 127 +VarLen.MAX .EQ 15 *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -98,27 +99,28 @@ CS.INIT.INTERACTIVE clc .9 rts *-------------------------------------- -CS.RUN lda #0 +CS.RUN ldy #bPause + lda (pData),y + bmi .8 + + ldy #VarBuffer READ Command ? + lda (pData),y + bne CS.RUN.READ + + ldy #hInputFile batch mode ? + lda (pData),y + beq .10 + + jmp CS.RUN.BATCH + +.10 lda #0 sta (pData) -.11 ldy #bPause - lda (pData),y - bpl .10 - clc - rts - -.10 ldy #S.PS.RC - lda (pPs),y - beq .12 - - jsr ERR.Print - -.12 ldy #hInputFile batch mode ? - lda (pData),y - bne .2 + ldy #bSecureRead + sta (pData),y jsr PrintPrompt - bcs .99 + bcs CS.RUN.EXIT.RTS .1 >SYSCALL Sleep >SYSCALL GetC @@ -131,46 +133,94 @@ CS.RUN lda #0 and #$7F sta (pData) - bra .3 -.2 jsr TXT.ReadFile - bcs .81 - -.3 jsr CmdBuffer.Normalize + jsr CmdBuffer.Normalize lda (pData) - beq .11 Empty line + beq .8 Empty line - ldy #hInputFile if batch mode, do not add to cmd history - lda (pData),y - bne .4 - jsr HIS.Add -.4 >LDYA pData + >LDYA pData jsr Cmd.ExecYA + ldy #S.PS.RC + sta (pPs),y bcc .8 tay beq .8 - pha jsr ERR.Print - pla - bcs .99 + bcs CS.RUN.EXIT.RTS .8 ldy #bEXIT lda (pData),y - bne .99 + bne CS.RUN.EXIT clc rts -.81 jsr TXT.CloseFile +CS.RUN.EXIT lda #0 +CS.RUN.EXIT.ERR sec +CS.RUN.EXIT.RTS rts +*-------------------------------------- +CS.RUN.READ lda #0 + sta (pData) + +.1 >SYSCALL Sleep + >SYSCALL GetC + bcs .1 no char + + jsr CS.CHARIN + + lda (pData) + bpl .1 + + and #$7F + sta (pData) + + >PUSHW pData + + lda #VarBuffer + clc + adc pData + tay + lda pData+1 + adc #0 + >PUSHYA + >SYSCALL SetEnv + php + pha + + ldy #VarBuffer + lda #0 + sta (pData),y + + pla + plp + rts +*-------------------------------------- +CS.RUN.BATCH jsr TXT.ReadFile + bcs .9 + + jsr CmdBuffer.Normalize + lda (pData) + beq .8 Empty line + + jsr HIS.Add + + >LDYA pData + jsr Cmd.ExecYA + ldy #S.PS.RC + sta (pPs),y + clc + rts + +.9 jsr TXT.CloseFile ldy #bExitOnEOF lda (pData),y - beq .8 - lda #0 -.99 sec - rts + bne CS.RUN.EXIT + +.8 clc + rts *-------------------------------------- CS.DOEVENT sec rts @@ -235,7 +285,7 @@ CS.CHARIN tax .2 lda (pData) CmdBuffer - cmp #CmdBuffer.MAX + cmp #CmdLine.MAX beq .8 inc @@ -244,6 +294,12 @@ CS.CHARIN tax txa sta (pData),y + tax + ldy #bSecureRead + lda (pData),y + bne .8 + + txa >SYSCALL PutCA .8 clc @@ -459,11 +515,13 @@ hTextFile .BS 1 .DUMMY .OR 0 DS.START -CmdBuffer .BS CmdBuffer.MAX+1 (pData) +CmdBuffer .BS CmdLine.MAX+1 (pData) +VarBuffer .BS VarLen.MAX+1 bEscMode .BS 1 bPause .BS 1 bExit .BS 1 bEcho .BS 1 +bSecureRead .BS 1 bExitOnEOF .BS 1 hCmdHistory .BS 1 CmdHistory.IDX .BS 1