From 56cdcf925a094b6c1beda5f92b961280e4f17990 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Mon, 11 Sep 2017 08:11:57 +0200 Subject: [PATCH] Kernel 0.9.1 : Code reorganization & move to CSTR : ENV & SHELL --- .Docs/KERNEL.md | 38 +++---- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes SBIN/SHELL.S.CMD.txt | 49 +++++---- SBIN/SHELL.S.txt | 4 +- SYS/KERNEL.S.ENV.txt | 226 ++++++++++++++++++++++----------------- SYS/KERNEL.S.INIT.txt | 23 ++-- SYS/KERNEL.S.JMP.txt | 66 ------------ SYS/KERNEL.S.MEM.txt | 2 +- 9 files changed, 195 insertions(+), 213 deletions(-) diff --git a/.Docs/KERNEL.md b/.Docs/KERNEL.md index 2251da14..635a4835 100644 --- a/.Docs/KERNEL.md +++ b/.Docs/KERNEL.md @@ -92,7 +92,7 @@ Returns argument count in the process command line. # PutEnv.YA ## In: -+ Y,A = PTR to String NAME=VALUE (PSTR) ++ Y,A = PTR to String NAME=VALUE (C-String) ## Out: @@ -193,19 +193,6 @@ And return, if found, the full path to it. + PUSHW = GID + PUSHW = PATH -# NewPStrYA -Create a new copy of PSTR - -## In: -+ Y,A = PTR to buffer - -## Out: -+ CC : success - + Y,A = PTR to String - + X = hMem (PSTR) -+ CS : error - + A = SYS error code - # GetMem ## In: @@ -272,22 +259,27 @@ Create a new copy of PSTR + Y,A = ZPMemMgrSPtr = PTR to S.MEM + X unmodified +# NewStr.YA +Create a new copy of this C-String + +## In: ++ Y,A = Ptr to source C-String + +## Out: ++ CC : success + + Y,A = PTR to String + + X = hMem (PSTR) ++ CS : error + + A = SYS error code + # GetMemStat.YA ## In: -+ Y,A = 24 bytes buffer ++ Y,A = Ptr to 24 bytes buffer ## Out: + Buffer filled with memory stats -# GetPSByID.A - -## In : -+ A = PID - -## Out : -+ Y,A = PTR to TSKSLOT - # Sleep Make current process suspend until next RUN diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 8e0356035a58e627f0cdbe0fa0dd0845359ebda2..e863b04c1446c53c502a888652d450142a605363 100644 GIT binary patch delta 5739 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 diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index 9f0eaf4553b97f0d7517d62f600c773d5670d232..7e2c3c916b92bf1f873ad68b3129d310348f7866 100644 GIT binary patch delta 12064 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 bq`@+Cx=I4r6}|+dB#Dl!I9|t`<}LpZ5SJ;Y delta 12278 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 ODnkwO&c;pJi~bKo34&q( diff --git a/SBIN/SHELL.S.CMD.txt b/SBIN/SHELL.S.CMD.txt index 8a757652..aa2b9dd8 100644 --- a/SBIN/SHELL.S.CMD.txt +++ b/SBIN/SHELL.S.CMD.txt @@ -73,13 +73,13 @@ Cmd.Exec stz bStartProc >LDYA ZPCMDBuf -Cmd.ExecYA >SYSCALL ExpandStr.YA + >SYSCALL ExpandStr.YA >STYA ZPPtr1 Ptr to CMD txa >STA.G CMD.hCmdLine - >LDYA ZPPtr1 +Cmd.ExecYA >LDYA ZPPtr1 >SYSCALL PrintF.YA jsr Cmd.Exec.ECHO.CR >DEBUG @@ -135,7 +135,6 @@ Cmd.ExecYA >SYSCALL ExpandStr.YA cmp (ZPPtr2),y bne .4 dey - dey bne .5 ply get back Cmd Len @@ -400,45 +399,57 @@ Cmd.Exec.STARTPROC ror bStartProc >LDYA ZPPTR2 + >STYA ZPPTR1 + jmp Cmd.ExecYA *-------------------------------------- Cmd.Exec.SET lda (ZPPTR2) bne Cmd.Exec.SETVAR +* No arg, print all ENV + ldy #S.PS.hENV lda (pPs),y >SYSCALL GetMemPtr.A >STYA ZPPTR1 - -* No arg, print all ENV - + .1 lda (ZPPTR1) beq .8 Ending 0 ? - lda ZPPTR1 get next for value - sec - adc (ZPPTR1) Add len+1 to PTR - sta ZPPTR2 - lda ZPPTR1+1 - adc #0 - sta ZPPTR2+1 + ldy #$ff - lda (ZPPTR2) just in case... - beq .8 +.2 iny + lda (ZPPTR1),y + bne .2 + + tya + sec + adc ZPPTR1 + sta ZPPTR2 + lda #0 + adc ZPPTR1+1 + sta ZPPTR2+1 >PUSHW ZPPTR2 Push value >PUSHW ZPPTR1 Push name >LDYA L.MSG.PRINTENV >SYSCALL PrintF.YA + >DEBUG bcs .9 - lda ZPPTR2 + ldy #$ff + +.3 iny + lda (ZPPTR2),y + bne .3 + + tya sec - adc (ZPPTR2) Add len+1 to PTR + adc ZPPTR2 sta ZPPTR1 - lda ZPPTR2+1 - adc #0 + lda #0 + adc ZPPTR2+1 sta ZPPTR1+1 bra .1 diff --git a/SBIN/SHELL.S.txt b/SBIN/SHELL.S.txt index a500c627..4b3a4e2b 100644 --- a/SBIN/SHELL.S.txt +++ b/SBIN/SHELL.S.txt @@ -28,7 +28,7 @@ VarLen.MAX .EQ 15 CSH.Stack.MAX .EQ 15 CSH.Name.MAX .EQ 15 -CSH.E.SYNTAX .EQ $7F +CSH.E.SYNTAX .EQ $7F CSH.E.SOVERFLW .EQ $7E CSH.E.NOVERFLW .EQ $7D CSH.E.OOM .EQ $7C @@ -553,7 +553,7 @@ MSG.ECHO >CSTR ">%S\r\n" MSG.PSTRCR >CSTR "%S\r\n" MSG.PSTR >CSTR "%S" MSG.ERROR >CSTR "Err:%S [%h]\r\n" -MSG.PRINTENV >CSTR "%S=%S\r\n" +MSG.PRINTENV >CSTR "%s=%s\r\n" MSG.CSHERR >PSTR "Pos %D:" FMT.DATE >CSTR "%A, %B %d %Y" FMT.TIME >CSTR "%H:%M:%S (%I:%M:%S%p)" diff --git a/SYS/KERNEL.S.ENV.txt b/SYS/KERNEL.S.ENV.txt index 0e7182aa..08e6bd99 100644 --- a/SYS/KERNEL.S.ENV.txt +++ b/SYS/KERNEL.S.ENV.txt @@ -12,31 +12,31 @@ AUTO 6 * Y,A = PTR to Expanded String *\-------------------------------------- K.ExpandStr.YA stz K.ExpandStr.hPStr Reset Intermediate string... - + .1 >STYA ZPPtr2 - stz K.ExpandStr.Len init Expanded String len=0 + stz K.ExpandStr.Len init Expanded String len=0 stz K.ExpandStr.bFound No var found yet - + stz K.ExpandStr.bNoExp Reset no expand flag ldy #0 - + .10 stz K.ExpandStr.VarLen stz K.ExpandStr.bInVar - -.11 lda (ZPPtr2),y End of CSTR? + +.11 lda (ZPPtr2),y End of CSTR? beq .8 - + iny cmp #''' bne .21 - + lda K.ExpandStr.bNoExp eor #$ff - sta K.ExpandStr.bNoExp toggle flag + sta K.ExpandStr.bNoExp toggle flag bra .11 - + .21 bit K.ExpandStr.bNoExp bpl .23 @@ -45,23 +45,23 @@ K.ExpandStr.YA stz K.ExpandStr.hPStr Reset Intermediate string... inx stx K.ExpandStr.Len bra .11 - -.23 ldx K.ExpandStr.bInVar already in a var? - bne .3 yes.... - + +.23 ldx K.ExpandStr.bInVar already in a var? + bne .3 yes... + cmp #'$' no, found one ? - bne .22 no, store.... - + bne .22 no, store... + sta K.ExpandStr.bFound Toggle flag sta K.ExpandStr.bInVar - + bra .11 skip this char .3 cmp #'{' we are in var, "{" after "$"? bne .31 ldx K.ExpandStr.VarLen No char in var yet ? beq .11 normal, "${" syntax is ok,skip - + bne .5 not allowed char in varname, end of var .31 cmp #'}' end of var? @@ -186,17 +186,17 @@ K.PutEnv.YA >STYA ZPPtr1 NAME=VALUE sta K.Buf256,y tya - clc + sec adc ZPPtr1 sta ZPPtr2 lda ZPPtr1+1 adc #0 sta ZPPtr2+1 - + >LDYAI K.Buf256 >STYA ZPPtr1 bra K.SetEnvPtr1Ptr2 - + .9 sec rts */-------------------------------------- @@ -207,76 +207,102 @@ K.PutEnv.YA >STYA ZPPtr1 NAME=VALUE * ## Out: *\-------------------------------------- K.SetEnv jsr PullPtr1Ptr2 Ptr1=NAME,Ptr2=VALUE - K.SetEnvPtr1Ptr2 jsr S.UnsetEnvPtr1 jsr ENV.InitEnvPtr3 ZPPtr3 -> Env + + ldy #0 + ldx #0 - lda ZPPtr3 Compute ENV UPPER LIMIT in Ptr4 - clc - adc #K.ENV.SIZE - sta ZPPtr4 +.10 lda (ZPPtr3) End of ENV + beq .15 - lda ZPPtr3+1 - adc /K.ENV.SIZE - sta ZPPtr4+1 +.11 iny Compute ENV size in X,Y + bne .12 + inx - ldy ZPPtr3+1 - lda ZPPtr3 Compute New Env Upper limit in A,Y +.12 inc ZPPtr3 + bne .13 + inc ZPPtr3+1 + +.13 lda (ZPPtr3) End of string + bne .11 + + iny + bne .14 + inx + +.14 inc ZPPtr3 + bne .10 + inc ZPPtr3+1 + bra .10 + +.15 sty ZPPtr4 + stx ZPPtr4+1 + + ldy #0 + +.16 lda (ZPPtr1),y + beq .17 + iny + bne .16 + +.17 tya sec - adc (ZPPtr1) add NAME len +1 - bcc .1 - iny + adc ZPPtr4 + sta ZPPtr4 + bcc .18 + inc ZPPtr4+1 -.1 sec - adc (ZPPtr2) add VALUE len +1 - bcc .2 +.18 ldy #0 + +.19 lda (ZPPtr2),y + beq .20 iny + bne .19 -.2 cmp ZPPtr4 GE than hMem Upper limit ? - tya - sbc ZPPtr4+1 +.20 tya + sec + adc ZPPtr4 + tax + bcc .21 + inc ZPPtr4+1 + +.21 cpx #K.ENV.SIZE + lda ZPPtr4+1 + sbc /K.ENV.SIZE bcs .99 -.3 lda (ZPPtr3) Scan until ending 0... - beq .4 - - inc ZPPtr3 - bne .3 + ldy #$ff + +.22 iny + lda (ZPPtr1),y + sta (ZPPtr3),y + bne .22 + + tya + sec + adc ZPPtr3 + sta ZPPtr3 + bcc .23 inc ZPPtr3+1 - bne .3 -.4 lda (ZPPtr1) - sta (ZPPtr3) - tay - -.5 lda (ZPPtr1),y +.23 ldy #$ff + +.24 iny + lda (ZPPtr2),y sta (ZPPtr3),y - dey - bne .5 - - jsr ENV.NextEnvPtr3 - - lda (ZPPtr2) - sta (ZPPtr3) - tay - -.6 lda (ZPPtr2),y - sta (ZPPtr3),y - dey - bne .6 - - jsr ENV.NextEnvPtr3 - -.8 lda #0 - - sta (ZPPtr3) + bne .24 + + iny +.25 lda #0 + sta (ZPPtr3),y don't forget array ending 0 clc rts .99 lda #SYSMGR.ERRENVF - sec +* sec rts */-------------------------------------- * # GetEnv.YA @@ -448,7 +474,7 @@ ENV.SysVarsExit2 *-------------------------------------- ENV.FindVarPtr1 jsr ENV.InitEnvPtr3 Store ENV bcs .99 - + .1 lda (ZPPtr3) beq .9 end of ENV @@ -457,24 +483,24 @@ ENV.FindVarPtr1 jsr ENV.InitEnvPtr3 Store ENV .2 lda (ZPPtr1),y cmp (ZPPtr3),y bne .3 - + ora #0 beq .8 iny bne .2 - + .8 clc rts - + .3 jsr ENV.NextEnvPtr3 Skip NAME jsr ENV.NextEnvPtr3 Skip VALUE bra .1 - + .9 sec -.99 rts +.99 rts *-------------------------------------- -* ENV.DiscardVarPtr3 +* ENV.DiscardVarPtr3 * In: * ZPPtr3 -> ENV.NAME to Discard *-------------------------------------- @@ -483,22 +509,29 @@ ENV.DiscardVarPtr3 >STYA ZPPtr4 jsr ENV.NextEnvPtr3 Skip current NAME.... jsr ENV.NextEnvPtr3 Skip current VALUE.... - + ldy #0 .1 lda (ZPPtr3),y Move back CSTRs... + .2 sta (ZPPtr4),y - beq .2 0 ended.... + beq .3 0 ended.... iny bne .1 - inc ZPPtr3 - inc ZPPtr4 + inc ZPPtr3+1 + inc ZPPtr4+1 bra .1 - + .3 iny - lda (ZPPtr3),y - bne .3 Until array ending 0 - + bne .4 + + inc ZPPtr3+1 + inc ZPPtr4+1 + +.4 lda (ZPPtr3),y + bne .2 Until array ending 0 + sta (ZPPtr4),y + .8 rts *-------------------------------------- ENV.InitEnvPtr3 ldy #S.PS.hENV @@ -513,30 +546,31 @@ ENV.NextEnvPtr3 ldy #0 beq .2 iny bne .1 - + .2 tya sec adc ZPPtr3 sta ZPPtr3 bcc .8 inc ZPPtr3+1 -.8 rts +.8 rts *-------------------------------------- ENV.AppendPtr3ToBuf ldx #$ff - + .1 inx lda K.Buf256,x bne .1 - - ldy #0 - -.2 lda (ZPPtr3),y + + ldy #$ff + dex + +.2 iny + inx + lda (ZPPtr3),y sta K.Buf256,x bne .2 - - inx - stz K.Buf256,x + rts *-------------------------------------- MAN diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index 9df7e441..1db192fd 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -779,16 +779,27 @@ TskMgrInit >LDYAI MSG.TSK >MLICALL MLIGETPREFIX bcs .9 - >LDYAI K.Buf256 - jsr K.NewCStr.YA - bcs .9 - + ldy K.Buf256 + iny + lda #0 + jsr K.GetMem.YA + >STYA ZPPtr1 txa ldy #S.PS.hPREFIX sta (pPs),y + + ldy K.Buf256 + lda #0 + sta (ZPPtr1),y + +.4 lda K.Buf256,y + dey + sta (ZPPtr1),y + bne .4 + + >PUSHW ZPPtr1 push ENV value = PREFIX - >PUSHWI K.Buf256 push ENV value - >PUSHWI I.ENV.A2osX push ENV name + >PUSHWI I.ENV.A2osX push ENV name = A2OSX >SYSCALL SetEnv bcs .9 diff --git a/SYS/KERNEL.S.JMP.txt b/SYS/KERNEL.S.JMP.txt index ff21c8d8..36077075 100644 --- a/SYS/KERNEL.S.JMP.txt +++ b/SYS/KERNEL.S.JMP.txt @@ -414,73 +414,7 @@ PullPtr1Ptr2 clc bcc .9 >PULLW ZPPtr3 .9 rts -*/-------------------------------------- -* # NewPStrYA -* Create a new copy of PSTR -* ## In: -* Y,A = PTR to buffer -* ## Out: -* CC : success -* Y,A = PTR to String -* X = hMem (PSTR) -* CS : error -* A = SYS error code -*\-------------------------------------- -K.NewPStr.YA >STYA ZPPtr2 - lda (ZPPtr2) - inc - tay - lda #0 Y,A = len of new string - jsr K.GetMem.YA - bcs .9 - - >STYA ZPPtr1 - - lda (ZPPtr2) - sta (ZPPtr1) - tay - beq .2 - -.1 lda (ZPPtr2),y - sta (ZPPtr1),y - dey - bne .1 - -.2 >LDYA ZPPtr1 - - clc -.9 rts *-------------------------------------- -K.NewCStr.YA >STYA ZPPtr1 - lda (ZPPtr1) - inc - tay - lda #0 Y,A = len of new string - jsr K.GetMem.YA - bcs .9 - - >STYA ZPPtr2 - - lda (ZPPtr1) - tay - phy - beq .2 - -.1 lda (ZPPtr1),y - dey - sta (ZPPtr2),y - bne .1 - -.2 ply - lda #0 - sta (ZPPtr2),y - - >LDYA ZPPtr1 - - clc -.9 rts -*-------------------------------------- - MAN SAVE /A2OSX.SRC/SYS/KERNEL.S.JMP LOAD /A2OSX.SRC/SYS/KERNEL.S diff --git a/SYS/KERNEL.S.MEM.txt b/SYS/KERNEL.S.MEM.txt index c7f4d742..e409944f 100644 --- a/SYS/KERNEL.S.MEM.txt +++ b/SYS/KERNEL.S.MEM.txt @@ -366,7 +366,7 @@ K.FreeMem.A phy >PUSHYA >LDYAI K.FreeMem.A.ERR - jsr K.PrintF.YA + >SYSCALL PrintF.YA .91 ldx #$ff bit $C000,x