From 3e69e89751f94f5a8a9179612ef403526d4fbcf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Tue, 25 Jul 2017 16:37:19 +0200 Subject: [PATCH] Kernel version 0.9 : SHELL, 'C-Style' Script Engine...(Cont.) --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes SBIN/SHELL.S.CSH.txt | 198 ++++++++++++++++++++++++++------------- SBIN/SHELL.S.txt | 3 + 4 files changed, 137 insertions(+), 64 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 23efc05c3b2ce5f8c114c4ecb87f23f19530c16e..012d55b6822de04a55132dbc6165df1675bb38c9 100644 GIT binary patch delta 1509 zcmYLJ4{X#_81KE~#@Ke7us@a|_~_VnySrX{E!z&*V%&h7WMLqph5#1Ha0~<$qPVeK zBkZ!64Y$Rtj7&TV!yUJi-bf$_hs$Zgx&%`HV3cHr1fv(SK*cJ8B>26}#HM}k`@Z-4 ze*ONnvMk85plxy3A2Q52$?>}_Z#_j#G5+il>NZ6^WVmzE>|3Yu*5*^~4E+=_Vn7~h z9J$aqV!PP3&B(n(k!v@;f&W?j9kYtt!oAM5aIM^7&hXvv{p7QF%Wnyfg)VM@oAkAm zHkQZARo5}s-qP#k-DNvnZDs4rX|B`V=`QdTcxcZv9_(4-dE%bssTa?3W6Dk!+Pvs1 zR?Cjh$0IaWS7ItDMdSoy?20%OZqtDeD7Rf`jqPW}SAkCEJjZH<>L`G)i@h*ef!;v5 zclgOWyy=)Q{+9XVJ>^9&+FksXkCtv_8xCAUghB(+5-s7cefXI2qZeJ>P$R1QfuzHK zn7HCfwlW2)hdA=SE*ix zZmQ}CjK@!c*i_xI3=ZOrcx3JW?e|`bQ3gGHF-GazAo4a1y@0B(O(!87&Zt)6`UM&;s|M8MmJoZE=;071{)E=$>8iQJp(#le;0;3{!&wJ70M zZ_lR4P=X1(8Kbm~JCU|N@>zljeqJZG*NR%b`h*+~r;{SbC1o2(U8DwwPnl}DARxB^%;8!Zj3IJKPoG9vK5Fe^#t7X@Kv(g}VN%VL-a5&f0 wF0H&U@3Q?jo6>*D-g5qmz26>A!96RSa)eVE;neJKDl?p#6HaBFPGw*D7ui@}@c;k- delta 1404 zcmYLIYfKbZ6rR270)jl0qAR5KIu_VnW@l$EMOJBlG<}2`BU&F#ZKY$36j!Q=HGPPL zNtKP6D&3_GgAJN>6a-}L?D~Uf#Mn(AJ0zOv5*r@Um}t$WwK`R7P5Yxgmrc`|%$@I? z^PO|gJ@*`0CbCTQZ4Ucmmb)N1ezz5_VVHZYn74wt%`lJInhR3)tuuvp7BOwCvxq7& zFb_2hk2DP1F1BuODmcf`rv=}@e=i?rr};9l+d0G>T#w^^`37)$tY_4ZtI>|!pSWa<-C29=4yWF&MyuNU{hb=qzpC>zBW;Z~ z;Nf-uUz8`sno9;^tg$_mWwh$(HT(lHvyPa*9dJtNbRY5WBON64`cAy4O5Z_MjfUHNgQ_+gt>(JuB*~v5`O_r-Cb3q4x*c2!^(= zhMx4{x+>j66Dc?9tR>J2Pt#DlqEITs%~z=YT#FaW3kKs!aLI47XJRt_$%j zrz3d*c6jw{+*qZ5H-c_Y_gzybI|YB4=Z4{rL&fHcs@Hw122^0QyJ> zuTI`m1amezK>#+_!_pJ!3$q7+J30=7RzEsP!p|qu&8yAXp2*oS3#qjFrRKqdei&@0 z)K_T^6M0wu1v+0y!vFvP diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index d422d87535ebfa1d27139135c131f041fdd46397..c86ffa85078039fa3adee9e86129567f841115bb 100644 GIT binary patch delta 16509 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 pData >LDYA L.MSG.ECHO >SYSCALL PPrintFYA + .80 clc -.9 rts + rts *-------------------------------------- CSH.Quit ldy #CSH.hBuf lda (pData),y @@ -185,14 +223,34 @@ CSH.GetPtrs ldy #CSH.hSymbols >STYA ZPCSHStack rts *-------------------------------------- -CSH.SavePtr ldx ZPBufPtr - stx CSH.BufPtrSave - ldx ZPBufPtr+1 - stx CSH.BufPtrSave+1 +CSH.SavePtr phy + ldy #CSH.BufPtr + lda (pData),y + sta CSH.BufPtrSave + + iny + lda (pData),y + sta CSH.BufPtrSave+1 + ply rts *-------------------------------------- -CSH.CheckKeyword - phy +CSH.RestorePtr phy + ldy #CSH.BufPtr + lda CSH.BufPtrSave + sta (pData),y + clc + adc ZPBufBase + sta ZPBufPtr + + iny + lda CSH.BufPtrSave+1 + sta (pData),y + adc ZPBufBase+1 + sta ZPBufPtr+1 + ply + rts +*-------------------------------------- +CSH.IsKeyword phy >LDYA L.CSHCMDS >STYA ZPPtr2 @@ -201,12 +259,12 @@ CSH.CheckKeyword .1 lda (ZPPtr2) beq .9 Ending 0, not found.... - cmp (pData) Same Len ? + cmp CSH.Name Same Len ? bne .4 tay -.2 lda (pData),y +.2 lda CSH.Name,y cmp #'a' To Uppercase bcc .3 @@ -348,7 +406,13 @@ CSH.TYPE sta CSH.ACCT cmp #' ' bne .9 - jsr CSH.GetIdentInCMD + jsr CSH.GetNextCharNB + bcs .9 + + jsr CSH.IsLetter + bcs .9 + + jsr CSH.GetName bcs .9 jsr CSH.GetCharNB @@ -402,7 +466,7 @@ CSH.ExpEval jsr CSH.ZeroACC bra .9 -.1 jsr CSH.IsDigit number ? +.1 jsr CSH.IsDigit10 number ? bcs .9 jsr CSH.GetNumInACC @@ -416,23 +480,23 @@ CSH.ExpEval jsr CSH.ZeroACC sec .99 rts *-------------------------------------- -CSH.GetIdentInCMD - ldy #0 - - jsr CSH.GetNextCharNB - bcs .9 - jsr CSH.IsLetter - bcs .9 - +CSH.GetName ldy #0 + .1 iny - sta CMD,y + sta CSH.Name,y jsr CSH.GetNextChar bcs .8 jsr CSH.IsLetterOrDigit + bcs .8 + cpy #CSH.Name.MAX bcc .1 -.8 sty CMD + lda #CSHERR.TOOLONG + sec + rts + +.8 sty CSH.Name clc rts @@ -449,7 +513,7 @@ CSH.GetNumInACC ldy #0 sta ARGS,y jsr CSH.GetNextChar bcs .8 - jsr CSH.IsDigit + jsr CSH.IsDigit10 bcc .1 .8 sty ARGS @@ -479,7 +543,7 @@ CSH.AddVar jsr CSH.FindVar lda (pData),y sec - adc ARGS + adc CSH.Name bcs .99 adc #2 TYPE + OFS @@ -501,10 +565,10 @@ CSH.AddVar jsr CSH.FindVar tay .10 inx - lda CMD,x + lda CSH.Name,x sta (ZPCSHSymbols),y iny - cpx CMD + cpx CSH.Name bne .10 lda CSH.ACCT @@ -557,10 +621,11 @@ CSH.SetVar clc rts *-------------------------------------- -CSH.GetVar - +CSH.GetVar jsr CSH.FindVar + bcs .9 + clc - rts +.9 rts *-------------------------------------- CSH.FindVar >LDYA ZPCSHSymbols >STYA ZPPTR1 @@ -570,7 +635,7 @@ CSH.FindVar >LDYA ZPCSHSymbols lda (ZPPTR1),y beq .9 - cmp CMD + cmp CSH.Name bne .4 pha Save Name len... @@ -580,10 +645,10 @@ CSH.FindVar >LDYA ZPCSHSymbols .2 iny inx lda (ZPPTR1),y - cmp CMD,x + cmp CSH.Name,x bne .3 - cpx CMD + cpx CSH.Name bne .2 pla @@ -729,10 +794,15 @@ CSH.GetChar.8 lda (ZPBufPtr) rts *--------------------------------------- CSH.IsLetterOrDigit - jsr CSH.IsDigit + jsr CSH.IsDigit10 bcc CSH.IsLetterRTS *--------------------------------------- -CSH.IsLetter cmp #'A' +CSH.IsLetter cmp #'_' + bne .1 + clc + rts + +.1 cmp #'A' bcc .9 cmp #'Z'+1 @@ -747,7 +817,7 @@ CSH.IsLetter cmp #'A' CSH.IsLetterRTS rts *--------------------------------------- -CSH.IsDigit cmp #'0' +CSH.IsDigit10 cmp #'0' bcc .9 cmp #'9'+1 rts cc if ok, cs if not diff --git a/SBIN/SHELL.S.txt b/SBIN/SHELL.S.txt index 4e2c217c..7d339437 100644 --- a/SBIN/SHELL.S.txt +++ b/SBIN/SHELL.S.txt @@ -24,12 +24,14 @@ ZPCSHStack .EQ ZPBIN+14 CmdLine.MAX .EQ 127 VarLen.MAX .EQ 15 CSH.Stack.MAX .EQ 15 +CSH.Name.MAX .EQ 15 CSHERR.SYNTAX .EQ $7F CSHERR.SOVERFLW .EQ $7E CSHERR.NOVERFLW .EQ $7D CSHERR.OOM .EQ $7C CSHERR.DUP .EQ $7B CSHERR.UNDEF .EQ $7A +CSHERR.TOOLONG .EQ $79 *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -602,6 +604,7 @@ CSH.DataPtr .BS 1 CSH.hStack .BS 1 CSH.StackPtr .BS 1 CSH.CmdSave .BS 1 +CSH.Name .BS CSH.Name.MAX+1 DS.END .ED *-------------------------------------- MAN