mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-16 18:30:26 +00:00
Kernel 0.92+
This commit is contained in:
parent
62a3982b48
commit
eca155089c
Binary file not shown.
@ -222,7 +222,7 @@ CMD.SET lda (ZPArgVBufPtr)
|
||||
*--------------------------------------
|
||||
* SET +X VAR = VALUE1 op VALUE2 op VALUE3 ...
|
||||
*--------------------------------------
|
||||
CMD.SET.1 >DEBUG
|
||||
CMD.SET.1
|
||||
.1 jsr CMD.IsSwitch
|
||||
bcs .6
|
||||
|
||||
@ -525,7 +525,7 @@ CMD.IF jsr CORE.StkGet
|
||||
|
||||
bit #$40 Parent is true ?
|
||||
beq .3
|
||||
|
||||
|
||||
jsr EXP.TEST
|
||||
bcs .9
|
||||
|
||||
|
@ -48,21 +48,30 @@ CORE.Run >LDYA ZPInputBufPtr Save Actual cmd for looping
|
||||
|
||||
>LDYA ZPArgVBuf
|
||||
>STYA ZPArgVBufPtr
|
||||
|
||||
|
||||
lda #0 Reset ArgV Buffer
|
||||
sta (ZPArgVBuf)
|
||||
|
||||
lda #S.PS.F.HOLD+S.PS.F.DUPENV
|
||||
>STA.G CORE.PSFlags
|
||||
|
||||
lda #$ff
|
||||
>STA.G CORE.IntCmd assume external
|
||||
|
||||
jsr CORE.GetCharNB
|
||||
bcs CORE.Run.RTS Ending 0, CS,A=0
|
||||
bcs .9 Ending 0, CS,A=0
|
||||
|
||||
cmp #'#' commented line?
|
||||
bne .2
|
||||
|
||||
.1 jsr CORE.GetNextCharNB
|
||||
bcs CORE.Run.RTS A=0, CS
|
||||
bcs .8 A=0
|
||||
eor #C.CR
|
||||
bne .1
|
||||
.9 rts EOL, CC,A=0
|
||||
jsr CORE.GetNextChar
|
||||
|
||||
.8 clc
|
||||
.9 rts EOL, CS,A=0
|
||||
|
||||
.2 cmp #'|'
|
||||
bne .3
|
||||
@ -89,18 +98,21 @@ CORE.Run >LDYA ZPInputBufPtr Save Actual cmd for looping
|
||||
bcs CORE.Run.RTS nothing to execute...
|
||||
|
||||
.4 >LDYA L.CMD internal command ?
|
||||
jsr CORE.Lookup
|
||||
bcs .6 external, add token
|
||||
jsr CORE.LookupInputBuf
|
||||
bcs .6 no...assume external...no IO token Expected
|
||||
|
||||
jsr CORE.SkipCharsA
|
||||
|
||||
txa
|
||||
>STA.G CORE.IntCmd
|
||||
bra .7 internal, do not add token
|
||||
|
||||
.5 >LDYA L.CORE.IO
|
||||
jsr CORE.Lookup
|
||||
jsr CORE.LookupInputBuf
|
||||
bcs .6
|
||||
|
||||
jsr CORE.GetNextCharNB
|
||||
bcs CORE.Run.CSYN
|
||||
jsr CORE.SkipCharsA
|
||||
|
||||
jsr CORE.IO.JMP
|
||||
bcs CORE.Run.RTS
|
||||
bra .7
|
||||
@ -108,33 +120,36 @@ CORE.Run >LDYA ZPInputBufPtr Save Actual cmd for looping
|
||||
.6 jsr CORE.ArgV.Add
|
||||
|
||||
.7 jsr CORE.GetCharNB
|
||||
bcs CORE.ExecCmd
|
||||
bcs CORE.ExecCmd.1 Nothing to skip
|
||||
|
||||
jsr CORE.IsEndCmd
|
||||
bcs .5
|
||||
cmp #'|'
|
||||
beq CORE.ExecCmd
|
||||
|
||||
jsr CORE.GetNextCharNB
|
||||
cmp #'|'
|
||||
bne CORE.ExecCmd skip CR, ;
|
||||
|
||||
jsr IO.Pipe.Out
|
||||
bcs CORE.Run.RTS
|
||||
|
||||
bra CORE.ExecCmd
|
||||
|
||||
.8 clc
|
||||
bra CORE.ExecCmd.1 Do not skip |
|
||||
|
||||
CORE.Run.RTS rts
|
||||
*--------------------------------------
|
||||
* Input : ZPArgVBuf
|
||||
*--------------------------------------
|
||||
CORE.ExecCmd lda #0
|
||||
jsr CORE.ArgV.PutChar
|
||||
CORE.ExecCmd jsr CORE.GetNextCharNB Skip EoL char
|
||||
|
||||
CORE.ExecCmd.1 lda #0
|
||||
sta (ZPArgVBufPtr)
|
||||
|
||||
|
||||
|
||||
>LDYA ZPArgVBuf
|
||||
>STYA ZPArgVBufPtr
|
||||
|
||||
>LDA.G CORE.IntCmd
|
||||
bmi CORE.ExecExtCmd
|
||||
tax
|
||||
>LDYA ZPArgVBuf
|
||||
>STYA ZPArgVBufPtr
|
||||
|
||||
jmp (J.CMD,x)
|
||||
|
||||
@ -166,18 +181,24 @@ CORE.ExecExtCmd >PUSHB.G CORE.PSFlags
|
||||
.8 clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
* search ZPInputBufPtr in Y,A table
|
||||
* search ZPInputBufPtr/ZPArgVBufPtr in Y,A table
|
||||
*--------------------------------------
|
||||
CORE.Lookup >STYA ZPPtr1
|
||||
CORE.LookupInputBuf
|
||||
>STYA ZPPtr1
|
||||
>LDYA ZPInputBufPtr
|
||||
bra CORE.Lookup
|
||||
CORE.LookupArgVBuf
|
||||
>STYA ZPPtr1
|
||||
>LDYA ZPArgVBufPtr
|
||||
|
||||
CORE.Lookup >STYA ZPPtr2
|
||||
|
||||
ldx #0
|
||||
|
||||
.1 phx
|
||||
|
||||
ldy #$ff
|
||||
.1 ldy #$ff
|
||||
|
||||
.2 iny
|
||||
lda (ZPInputBufPtr),y
|
||||
lda (ZPPtr2),y
|
||||
beq .3 Src Keyword end
|
||||
|
||||
jsr CORE.IsSpaceOrEndCmd
|
||||
@ -185,24 +206,16 @@ CORE.Lookup >STYA ZPPtr1
|
||||
|
||||
lda (ZPPtr1),y
|
||||
beq .4 Table Keyword end
|
||||
cmp (ZPInputBufPtr),y
|
||||
cmp (ZPPtr2),y
|
||||
beq .2
|
||||
|
||||
bra .4
|
||||
|
||||
.3 lda (ZPPtr1),y
|
||||
bne .4
|
||||
plx
|
||||
|
||||
tya
|
||||
clc
|
||||
adc ZPInputBufPtr
|
||||
sta ZPInputBufPtr
|
||||
bcc .8
|
||||
|
||||
clc
|
||||
inc ZPInputBufPtr+1
|
||||
|
||||
tya Keyword Len
|
||||
clc
|
||||
.8 rts
|
||||
|
||||
.4 inc ZPPtr1
|
||||
@ -216,8 +229,7 @@ CORE.Lookup >STYA ZPPtr1
|
||||
bne .6
|
||||
inc ZPPtr1+1
|
||||
|
||||
.6 plx
|
||||
inx
|
||||
.6 inx
|
||||
inx
|
||||
|
||||
lda (ZPPtr1) Array Ending 0, must be an external Cmd....
|
||||
@ -231,29 +243,29 @@ CORE.Lookup.9 sec
|
||||
*--------------------------------------
|
||||
CORE.ArgV.Add jsr CORE.GetCharNB
|
||||
bcs CORE.Lookup.9
|
||||
|
||||
ldx #0
|
||||
|
||||
ldx #0 reset "" mode
|
||||
|
||||
.1 cmp #'"'
|
||||
bne .2
|
||||
|
||||
txa
|
||||
eor #$ff
|
||||
eor #$ff toggle "" mode
|
||||
tax
|
||||
bra .4
|
||||
|
||||
.2 cmp #C.SPACE
|
||||
bne .3
|
||||
txa
|
||||
bpl .8
|
||||
txa between "" ?
|
||||
beq .8
|
||||
|
||||
.3 jsr CORE.IsEndCmd
|
||||
bcc CORE.Lookup.9
|
||||
bcc .8
|
||||
|
||||
jsr CORE.ArgV.PutChar
|
||||
|
||||
.4 jsr CORE.GetNextChar
|
||||
bra .1
|
||||
bcc .1
|
||||
|
||||
.8 lda #0
|
||||
*--------------------------------------
|
||||
@ -262,7 +274,7 @@ CORE.ArgV.PutChar
|
||||
CORE.ArgV.NextChar
|
||||
inc ZPArgVBufPtr
|
||||
bne .8
|
||||
inc ZPArgVBufPtr
|
||||
inc ZPArgVBufPtr+1
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
CORE.ArgV.Next lda (ZPArgVBufPtr)
|
||||
@ -380,6 +392,13 @@ CORE.GetChar lda (ZPInputBufPtr)
|
||||
.9 sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CORE.SkipCharsA clc
|
||||
adc ZPInputBufPtr
|
||||
sta ZPInputBufPtr
|
||||
bcc .8
|
||||
inc ZPInputBufPtr+1
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
* Stack
|
||||
*--------------------------------------
|
||||
CORE.StkPushPtr lda ZPInputCmdPtr
|
||||
|
@ -5,7 +5,7 @@ AUTO 4,1
|
||||
*--------------------------------------
|
||||
EXP.GET >LDYA ZPArgVBufPtr
|
||||
>STYA ZPPtr1
|
||||
>DEBUG
|
||||
|
||||
jsr CORE.ArgV.Next
|
||||
bne .1
|
||||
|
||||
@ -20,7 +20,7 @@ EXP.GET >LDYA ZPArgVBufPtr
|
||||
>PULLL.G M32.ACC
|
||||
|
||||
.2 >LDYA L.EXP.OP.MATH + - .... ?
|
||||
jsr CORE.Lookup
|
||||
jsr CORE.LookupArgVBuf
|
||||
bcs .9
|
||||
|
||||
txa
|
||||
@ -65,7 +65,7 @@ EXP.TEST lda (ZPArgVBufPtr)
|
||||
beq .9
|
||||
|
||||
>LDYA L.EXP.BEGIN
|
||||
jsr CORE.Lookup
|
||||
jsr CORE.LookupArgVBuf
|
||||
|
||||
bcs .9
|
||||
|
||||
@ -84,7 +84,7 @@ EXP.TEST lda (ZPArgVBufPtr)
|
||||
beq .9
|
||||
|
||||
>LDYA L.EXP.OP.UNARY -d -e -f ?
|
||||
jsr CORE.Lookup
|
||||
jsr CORE.LookupArgVBuf
|
||||
|
||||
bcs .1
|
||||
|
||||
@ -111,7 +111,7 @@ EXP.TEST lda (ZPArgVBufPtr)
|
||||
beq .9
|
||||
|
||||
>LDYA L.EXP.OP.BINARY -eq -ne .... ?
|
||||
jsr CORE.Lookup
|
||||
jsr CORE.LookupArgVBuf
|
||||
bcs .9
|
||||
txa
|
||||
>STA.G CORE.Operator
|
||||
|
42
BIN/SH.S.txt
42
BIN/SH.S.txt
@ -190,7 +190,7 @@ CS.RUN jsr CL.Init
|
||||
>STYA ZPInputBufPtr
|
||||
|
||||
lda #0
|
||||
jsr CMD.SHIFTA Remove $0=/bin/shell
|
||||
jsr CMD.SHIFTA Remove $0=/bin/sh
|
||||
|
||||
lda #$ff
|
||||
>STA.G bBatchMode
|
||||
@ -374,25 +374,33 @@ CS.RUN.BATCH >SYSCALL GetChar
|
||||
clc
|
||||
jmp CS.RUN.LOOP.END
|
||||
|
||||
.2 jsr CORE.Run
|
||||
bcc .7
|
||||
.2 >LDA.G bSET.X
|
||||
beq .5
|
||||
|
||||
ldy #$ff
|
||||
|
||||
.3 iny
|
||||
lda (ZPInputBufPtr),y
|
||||
sta (ZPArgVBuf),y
|
||||
beq .4
|
||||
eor #C.CR
|
||||
bne .3
|
||||
sta (ZPArgVBuf),y
|
||||
|
||||
.4 >PUSHW ZPArgVBuf
|
||||
>PUSHBI 2
|
||||
>LDYA L.MSG.TRACE
|
||||
>SYSCALL printf
|
||||
bcs .9
|
||||
|
||||
.5 jsr CORE.Run
|
||||
bcc CS.RUN.LOOP.END
|
||||
|
||||
pha
|
||||
lda #$ff
|
||||
>STA.G bExit
|
||||
inc
|
||||
clc
|
||||
bra CS.RUN.LOOP.END
|
||||
|
||||
.7 >LDA.G bSET.X
|
||||
* beq .8
|
||||
|
||||
* >PUSHW ZPArgVBuf
|
||||
* >PUSHBI 2
|
||||
* >LDYA L.MSG.TRACE
|
||||
* >SYSCALL printf
|
||||
|
||||
* bcs .9
|
||||
|
||||
pla
|
||||
|
||||
CS.RUN.LOOP.END ldy #S.PS.RC
|
||||
sta (pPs),y
|
||||
|
||||
|
@ -262,31 +262,20 @@ MEM.NextSlot lda ZPMemMgrSPtr
|
||||
* none.
|
||||
* (X unmodified)
|
||||
*\--------------------------------------
|
||||
K.FreeMem.ERRBAD .AZ "FreeMem:$%h=Bad,%s\r\n"
|
||||
K.FreeMem.ERRFREED .AZ "FreeMem:$%h=free,%s\r\n"
|
||||
K.FreeMem.MSG .AZ "FreeMem:hMem=$%h,PID=%d\r\n"
|
||||
*--------------------------------------
|
||||
K.FreeMem.BAD sec
|
||||
.HS 90 BCC
|
||||
|
||||
K.FreeMem.FREED clc
|
||||
phx
|
||||
K.FreeMem.ERR phx
|
||||
|
||||
php
|
||||
phy hMem n Y
|
||||
ldy #S.PS.hARGV
|
||||
ldy #S.PS.PID
|
||||
lda (pPS),y
|
||||
jsr K.GetMemPtr
|
||||
>PUSHYA
|
||||
>PUSHA
|
||||
|
||||
pla
|
||||
>PUSHA
|
||||
|
||||
>PUSHBI 3
|
||||
>LDYAI K.FreeMem.ERRBAD
|
||||
plp
|
||||
bcs .1
|
||||
|
||||
>LDYAI K.FreeMem.ERRFREED
|
||||
>PUSHBI 2
|
||||
>LDYAI K.FreeMem.MSG
|
||||
|
||||
.1 >SYSCALL printf
|
||||
|
||||
@ -296,15 +285,15 @@ K.FreeMem.FREED clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
K.FreeMem tay
|
||||
beq K.FreeMem.BAD Slot=0, reserved by Kernel
|
||||
beq K.FreeMem.ERR Slot=0, reserved by Kernel
|
||||
|
||||
cmp Mem.LastSlot
|
||||
bcc .10
|
||||
bne K.FreeMem.BAD
|
||||
bne K.FreeMem.ERR
|
||||
|
||||
.10 jsr MEM.GetMemByID X,Y unmodified
|
||||
lda (ZPMemMgrSPtr) In use ?
|
||||
bpl K.FreeMem.FREED
|
||||
bpl K.FreeMem.ERR
|
||||
|
||||
ldy #S.MEM.REFCNT
|
||||
lda (ZPMemMgrSPtr),y
|
||||
|
Loading…
x
Reference in New Issue
Block a user