From 0520ce47c5d53a3a59331babb671b00242ace539 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Wed, 13 Sep 2017 17:34:26 +0200 Subject: [PATCH] Kernel 0.9.1 : Code reorganization & move to CSTR (SHELL) --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes SBIN/INSDRV.S.txt | 2 +- SBIN/SHELL.S.CMD.txt | 206 ++++++++++++++++++++++----------------- SBIN/SHELL.S.txt | 25 ++--- 5 files changed, 129 insertions(+), 104 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 868eea32777bd6a5eacdcbca446d131571568bff..af40a309706ed2ce90e1ecc4be9900821791b87b 100644 GIT binary patch delta 2142 zcmZWqdrVvB760z%m>38K?tKa9AcE0N_ z*)&V%dz{DboO{msj+4ojWU@tm!MK65liGKCjeovYbEFoH+pINq^jAbE_l@X6r-8E@ zCf;0FdUJs}Ihwd-P9ge>lQj8d!@TX8z+hk~@V&rf;Bw%W|F-`#|5wdr{Eq@Z4gAfY za6aGkUejx?S6vg%KQ_%a#$2h!?=(3Asz>!4^B(gG-tT(j-c#QF-iWu0{~+*503q^` zjda@O9gFqlrkQ%FrckdLA{iG^Ik_^wm57&I*uqSRZ_#Z)e9wiSX8taI;llfwTJc+M zY{gsL;t@BtF@xf$8*eqg>>-_;T$i;Gv`kvXtQ$YU3@qJp^9$(Yj=mdph<`zvr6CoVxkIVM|#i+qv7=Fp5|N~+1Q zi$n>iO(N&VB=PQC!&Q=W@|HCFZ;38^dH~iJAQ20 zT*~MD9LYF}kbH+Q)<(ph0A6L<#g=C5XZDG`&GKWV{riJ=UeL(&;2?88(yOi3^4+_V49t(=n1>D==fRv^_L@{|V* znG8!dadMwBu5Kcq`{bkKw(t7bF``tdhKPj=lL1eh^l?ylyY^J_o8(ikyo;nga@pkz zXe>g=vtvHlMGFA>wdQow!&r#N4 zWmG+w@8YWt@>Sh@Rg~B4z|LPlnmL?5jY!c4E?|uV$*$Zu-5P`}10&%<8?M{h%2@?H zo%8_pqS4T8P~>*vEr|$Elm8^V@F%FZHYlGQpoR0$D4fb}Z41Fh2jjgT7+ z3h~@nkj}#ipUhZ=Iqy{u9fHt+MBDj0KzuBmMa8uOS%q`$-C^;S$8lrgJa~;~{6(#N zR)UA3V_k$#1iof!pU`J|Dm7S2ya)C4t`gq=8G*c7{pTz{y_-3el>d z(aV(z&8V0(h(~X$`V6au3OJK|%z;J;!-+_?*n+k5rrdK?~cA3Ry97eaWU z)TQ)0`e^dr58}62=KQ6%JMq%norc~stqe+UUnIdtL!AyCTZX9jW+_Z^_4+)W`_w!< zCF$Uz>4stZ2@20$r+lqZIu0wDdgv^NuFnV061hq`ev?%{*X@$6rI7BGZ2n0_+TBMs z6oVR-e1MrDQfDW1cImkI`VGUDL)2gCaSPFoo-m3&w--fYJleAt?d|9Zq0pXiHwqm& z(1W5KhhrgKekjzj7sWz7C>9BYqA1qWai}MHsCy6UInWhC;+HoJtJgj>VDV2sH+bLw h$gs{_+Oc8)+5lt(Dg)XGWCAJ&s#w~wQhECq{|0xcBqjg= delta 2137 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 RrG=?1wAr$;=IzG){|B-m@-YAa delta 7421 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 "Usage: insdrv file.drv \r\n" -MSG.LOAD >CSTR "INSDRV:Loading %S...\r\n" +MSG.LOAD >CSTR "INSDRV:Loading %s...\r\n" *-------------------------------------- MAN SAVE /A2OSX.SRC/SBIN/INSDRV.S diff --git a/SBIN/SHELL.S.CMD.txt b/SBIN/SHELL.S.CMD.txt index 1a460fd8..f75394b8 100644 --- a/SBIN/SHELL.S.CMD.txt +++ b/SBIN/SHELL.S.CMD.txt @@ -84,68 +84,62 @@ Cmd.Exec.2 ldy #$ff CMD Len bne .1 lda #0 - sta (ZPPtr1),y Cut CMD with the ending 0 + sta (ZPPtr1),y Cut CMD with the ending 0 + iny -.2 phy Y=CMD len - - >LDYA L.INTCMDS - >STYA ZPPtr2 - - ldx #0 - -.3 lda (ZPPtr2) - beq Cmd.Exec.EXT Array Ending 0, must be an external Cmd.... - - pla get back CMD len - pha - - cmp (ZPPtr2) Same Len ? - beq .51 - -.4 inx - inx - - lda ZPPtr2 - sec - adc (ZPPtr2) - sta ZPPtr2 - bcc .3 - inc ZPPtr2+1 - bra .3 - -.51 tay - -.5 dey - lda (ZPPtr1),y - - cmp #'a' To Uppercase - bcc .6 - cmp #'z'+1 - bcs .6 - eor #$20 - -.6 iny - cmp (ZPPtr2),y - bne .4 - dey - bne .5 - - ply get back Cmd Len - - lda (ZPPtr1),y - beq .7 ARGS = "" - - iny skip " " - -.7 tya +.2 tya Y=CMD len+0, if ARGS="" Y= clc adc ZPPtr1 sta ZPPtr2 - lda #0 - adc ZPPtr1+1 - sta ZPPtr2+1 ZPPtr2->ARGS + lda ZPPtr1+1 + adc #0 + sta ZPPtr2+1 ZPPtr2->ARGS or CMD ending 0 if empty - jsr Cmd.Exec.INT Found an internal Cmd... + >LDYA L.INTCMDS + >STYA ZPCMDBuf we use ZPCMDBuf as a temp Ptr + + ldx #0 + +.3 lda (ZPCMDBuf) + beq Cmd.Exec.EXT Array Ending 0, must be an external Cmd.... + + ldy #$ff + +.4 iny + lda (ZPCMDBuf),y + bne .41 End of string in array + + lda (ZPPtr1),y Get CMD char... + beq .8 both end with 0, found! + +.41 lda (ZPPtr1),y Get CMD char... + beq .61 end of CMD.....too short... + + cmp #'a' To Uppercase + bcc .5 + cmp #'z'+1 + bcs .5 + eor #$20 + +.5 cmp (ZPCMDBuf),y + beq .4 + +.61 iny + lda (ZPCMDBuf),y + bne .61 + +.7 inx + inx + + tya + sec + adc ZPCMDBuf + sta ZPCMDBuf + bcc .3 + inc ZPCMDBuf+1 + bra .3 + +.8 jsr Cmd.Exec.INT Found an internal Cmd... Cmd.Exec.Done php pha @@ -155,10 +149,20 @@ Cmd.Exec.Done php plp rts *-------------------------------------- -Cmd.Exec.INT jmp (J.INTCMDS,x) +* ZPPtr1->CMD +* ZPPtr2->ARGS *-------------------------------------- -Cmd.Exec.EXT pla Discard CMD len - +Cmd.Exec.EXT >LDYAI 256 + >SYSCALL GetMem.YA + bcs .99 + >STYA ZPCMDBuf + + lda #0 + sta (ZPCMDBuf) + + txa + >STA.G CMD.hExtCmdLine + lda (ZPPtr1) cmp #'/' Command line is already full path, no search bne .1 @@ -166,23 +170,31 @@ Cmd.Exec.EXT pla Discard CMD len >PUSHW L.STAT >PUSHW ZPPtr1 >SYSCALL STAT - bcc .3 - bra Cmd.Exec.Done + bcs Cmd.Exec.Done + + >LDYA ZPPtr1 + bra .4 .1 >LDYA L.ENV.PATH push ENVNAME=PATH for search >SYSCALL GetEnv.YA get value for ENV=PATH bcs .2 No PATH, try in CD - jsr Cmd.Exec.Search + jsr Cmd.Exec.EXT.Search bcc .3 .2 ldy #S.PS.hPREFIX not found, try in CD lda (pPs),y >SYSCALL GetMemPtr.A - jsr Cmd.Exec.Search + jsr Cmd.Exec.EXT.Search bcs .99 -.3 lda STAT+S.STAT.P.TYPE +.3 >LDYA ZPCMDBuf +.4 >SYSCALL NewStr.YA + bcs .99 + txa + >STA.G CMD.hFullpath + + lda STAT+S.STAT.P.TYPE cmp #$04 TXT File ? beq Cmd.Exec.EXT.TXT cmp #$06 BIN File ? @@ -196,47 +208,34 @@ Cmd.Exec.EXT pla Discard CMD len sec .99 jmp Cmd.Exec.Done *-------------------------------------- -Cmd.Exec.Search >PUSHYA push search list - >PUSHW ZPPtr1 - >PUSHWI UsrBuf256 - >PUSHW L.STAT - >SYSCALL FileSearch - rts -*-------------------------------------- * TXT : Launch "/PATH/SHELL /PATH/CMD ARGS" *-------------------------------------- Cmd.Exec.EXT.TXT lda #0 Get arg[0] = /PATH/SHELL >SYSCALL GetArg.A - >PUSHYA - >PUSHWI UsrBuf256 + >PUSHYA + >PUSHW ZPCMDBuf >SYSCALL StrCpy - inc UsrBuf256 Add a space.... - ldy UsrBuf256 - lda #' ' - sta UsrBuf256,y + jsr Cmd.Exec.EXT.SEP Add a space.... + + >LDA.G CMD.hFullpath + >SYSCALL GetMemPtr.A + >PUSHYA + >PUSHW ZPCMDBuf + >SYSCALL StrCat *-------------------------------------- * BIN : Launch "/PATH/CMD ARGS" *-------------------------------------- Cmd.Exec.EXT.BIN - >PUSHW L.CMD - >PUSHWI UsrBuf256 - >SYSCALL StrCat - - lda (ZPPTR2) - beq .1 - - inc UsrBuf256 Add a space.... - ldy UsrBuf256 - lda #' ' - sta UsrBuf256,y + jsr Cmd.Exec.EXT.SEP Add a space.... >PUSHW ZPPTR2 - >PUSHWI UsrBuf256 + >DEBUG + >PUSHW ZPCMDBuf >SYSCALL StrCat - -.1 >LDYAI UsrBuf256 + +.1 >LDYA ZPCMDBuf bit bStartProc bmi .2 startproc @@ -246,8 +245,31 @@ Cmd.Exec.EXT.BIN .2 >SYSCALL CreateProcessYA jmp Cmd.Exec.Done *-------------------------------------- +Cmd.Exec.EXT.Search + >PUSHYA push search list + >PUSHW ZPPtr1 push CMD + >PUSHW ZPCMDBuf push dest full path + >PUSHW L.STAT + >SYSCALL FileSearch + rts +*-------------------------------------- +Cmd.Exec.EXT.SEP + ldy #$ff +.1 iny + lda (ZPCMDBuf),y + bne .1 + + lda #' ' + sta (ZPCMDBuf),y + iny + lda #0 + sta (ZPCMDBuf),y + rts +*-------------------------------------- * Internal Commands *-------------------------------------- +Cmd.Exec.INT jmp (J.INTCMDS,x) +*-------------------------------------- Cmd.Exec.CD lda (ZPPTR2) bne Cmd.Exec.CD1 diff --git a/SBIN/SHELL.S.txt b/SBIN/SHELL.S.txt index 74cb2a19..598491b0 100644 --- a/SBIN/SHELL.S.txt +++ b/SBIN/SHELL.S.txt @@ -519,17 +519,17 @@ ENV.PATH >CSTR "PATH" ENV.PWD >CSTR "PWD" ENV.PS1 >CSTR "PS1" *-------------------------------------- -INTCMDS >PSTR "CD" - >PSTR "DATE" - >PSTR "ECHO" - >PSTR "EXIT" - >PSTR "PAUSE" - >PSTR "PWD" - >PSTR "READ" - >PSTR "SET" - >PSTR "SLEEP" - >PSTR "STARTPROC" - >PSTR "TIME" +INTCMDS >CSTR "CD" + >CSTR "DATE" + >CSTR "ECHO" + >CSTR "EXIT" + >CSTR "PAUSE" + >CSTR "PWD" + >CSTR "READ" + >CSTR "SET" + >CSTR "SLEEP" + >CSTR "STARTPROC" + >CSTR "TIME" .HS 00 CSHCMDS >PSTR "IF" >PSTR "WHILE" @@ -582,7 +582,10 @@ bSecureRead .BS 1 Sleep .BS 4 CMD.hCmdLine .BS 1 +CMD.hFullpath .BS 1 +CMD.hExtCmdLine .BS 1 CMD.VarName .BS VarLen.MAX+1 +CMD.Stat .BS S.STAT HIS.hBuf .BS 1 HIS.BufIndex .BS 1