mirror of
https://github.com/A2osX/A2osX.git
synced 2025-01-23 13:34:31 +00:00
Kernel 0.9.1 : SHELL, CSH style scripting.....(wip)
This commit is contained in:
parent
cd31830346
commit
a4d5f42fda
Binary file not shown.
Binary file not shown.
@ -27,8 +27,6 @@ CSH.Init lda #$FF
|
|||||||
>STA.G CSH.hBuf
|
>STA.G CSH.hBuf
|
||||||
>SYSCALL GetMemPtr.A
|
>SYSCALL GetMemPtr.A
|
||||||
>STYA ZPCSHBufPtr
|
>STYA ZPCSHBufPtr
|
||||||
|
|
||||||
>STYA.G CSH.BufBase
|
|
||||||
|
|
||||||
>LDYAI 256
|
>LDYAI 256
|
||||||
>SYSCALL GetMem0.YA
|
>SYSCALL GetMem0.YA
|
||||||
@ -89,18 +87,19 @@ CSH.Run lda #0
|
|||||||
|
|
||||||
bra .9 error, todo : PREOPS ++ --.....
|
bra .9 error, todo : PREOPS ++ --.....
|
||||||
|
|
||||||
.3 jsr CSH.GetLen Get the len of this possible keyword/var
|
.3 >LDYA L.CSHCMDS
|
||||||
|
|
||||||
jsr CSH.IsKeyword
|
jsr CSH.IsKeyword
|
||||||
bcs .4 not an internal CSH keyword....
|
bcs .4 not an internal CSH keyword....
|
||||||
|
|
||||||
stx CSH.CmdSave
|
txa
|
||||||
|
>STA.G CSH.CmdSave
|
||||||
|
|
||||||
jmp (J.CSHCMDS,x)
|
jmp (J.CSHCMDS,x)
|
||||||
|
|
||||||
.4 jsr CSH.GetVar
|
.4 jsr CSH.GetVar Y=Ptr To Value
|
||||||
bcs .5
|
bcs .5
|
||||||
|
|
||||||
|
|
||||||
jsr CSH.GetCharNB
|
jsr CSH.GetCharNB
|
||||||
bcs .9
|
bcs .9
|
||||||
cmp #'='
|
cmp #'='
|
||||||
@ -109,17 +108,16 @@ CSH.Run lda #0
|
|||||||
jsr CSH.GetNextCharNB Skip =
|
jsr CSH.GetNextCharNB Skip =
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
|
phy
|
||||||
jsr CSH.ExpEval
|
jsr CSH.ExpEval
|
||||||
|
ply
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jsr CSH.GetChar
|
jsr CSH.SetVarValueAtY
|
||||||
bcs .9
|
bcs .9
|
||||||
cmp #';'
|
cmp #';'
|
||||||
bne .99
|
bne .99
|
||||||
|
|
||||||
jsr CSH.SetVar
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
jmp CSH.GetNextCharNB Skip ;
|
jmp CSH.GetNextCharNB Skip ;
|
||||||
|
|
||||||
.99 lda #CSH.E.SYNTAX
|
.99 lda #CSH.E.SYNTAX
|
||||||
@ -195,68 +193,56 @@ CSH.RestorePtr phy
|
|||||||
ply
|
ply
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.GetLen ldy #0 we have already a letter
|
CSH.IsKeyword >STYA ZPPtr1
|
||||||
|
|
||||||
.1 iny
|
|
||||||
lda (ZPCSHBufPtr),y
|
|
||||||
beq .8
|
|
||||||
|
|
||||||
jsr CSH.IsLetterOrDigit
|
|
||||||
bcc .1
|
|
||||||
|
|
||||||
.8 tya
|
jsr CSH.GetIdentLen
|
||||||
>STA.G CSH.IdentLen
|
|
||||||
rts
|
phy Y = kw len
|
||||||
*--------------------------------------
|
|
||||||
CSH.IsKeyword >LDYA L.CSHCMDS
|
|
||||||
>STYA ZPPtr2
|
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
|
|
||||||
.1 lda (ZPPtr2)
|
.1 lda (ZPPtr1)
|
||||||
beq .9 Ending 0, not found....
|
beq .9 Ending 0, not found....
|
||||||
|
|
||||||
>LDA.G CSH.IdentLen
|
pla
|
||||||
|
pha Get Back Len
|
||||||
|
|
||||||
cmp (ZPPtr2) Same Len ?
|
cmp (ZPPtr1) Same Len ?
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
tay
|
tay
|
||||||
|
|
||||||
.2 lda (ZPCSHBufPtr),y
|
.2 lda (ZPPtr1),y
|
||||||
|
|
||||||
cmp #'a' To Uppercase
|
.3 dey
|
||||||
bcc .3
|
cmp (ZPCSHBufPtr),y
|
||||||
cmp #'z'+1
|
|
||||||
bcs .3
|
|
||||||
eor #$20
|
|
||||||
|
|
||||||
.3 cmp (ZPPtr2),y
|
|
||||||
bne .4
|
bne .4
|
||||||
dey
|
tya
|
||||||
|
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
>LDA.G CSH.IdentLen
|
pla Found keyword...
|
||||||
clc
|
clc
|
||||||
adc ZPCSHBufPtr
|
adc ZPCSHBufPtr ..advance Ptr to char after it..
|
||||||
sta ZPCSHBufPtr
|
sta ZPCSHBufPtr
|
||||||
bcc .8
|
bcc .8
|
||||||
inc ZPCSHBufPtr+1
|
inc ZPCSHBufPtr+1
|
||||||
clc Found an internal Cmd...
|
clc
|
||||||
.8 rts
|
.8 rts
|
||||||
|
|
||||||
.4 inx
|
.4 inx
|
||||||
inx
|
inx
|
||||||
|
|
||||||
lda ZPPtr2
|
lda ZPPtr1
|
||||||
sec
|
sec
|
||||||
adc (ZPPtr2)
|
adc (ZPPtr1)
|
||||||
sta ZPPtr2
|
sta ZPPtr1
|
||||||
bcc .1
|
bcc .1
|
||||||
inc ZPPtr2+1
|
inc ZPPtr1+1
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.9 sec
|
.9 pla
|
||||||
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.WHILE
|
CSH.WHILE
|
||||||
@ -292,13 +278,13 @@ CSH.IF jsr CSH.GetCharNB
|
|||||||
|
|
||||||
jsr CSH.GetNextCharNB Skip '{'
|
jsr CSH.GetNextCharNB Skip '{'
|
||||||
|
|
||||||
lda CSH.CmdSave Push "IF" or "WHILE"
|
>LDA.G CSH.CmdSave Push "IF" or "WHILE"
|
||||||
beq .1 if "IF", no need to push Saved Ptr
|
beq .1 if "IF", no need to push Saved Ptr
|
||||||
|
|
||||||
pha
|
pha
|
||||||
lda CSH.BufPtrSave+1 WHILE : push loop address...
|
>LDA.G CSH.BufPtrSave+1 WHILE : push loop address...
|
||||||
jsr CSH.Push
|
jsr CSH.Push
|
||||||
lda CSH.BufPtrSave
|
>LDA.G CSH.BufPtrSave
|
||||||
jsr CSH.Push
|
jsr CSH.Push
|
||||||
pla
|
pla
|
||||||
|
|
||||||
@ -376,10 +362,13 @@ CSH.TYPE >STA.G CSH.ACCT
|
|||||||
jsr CSH.IsLetter
|
jsr CSH.IsLetter
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jsr CSH.GetLen
|
jsr CSH.GetVar Already exists ?
|
||||||
jsr CSH.FindVar
|
|
||||||
bcc .90
|
bcc .90
|
||||||
|
|
||||||
|
jsr CSH.AddVar No, add with undefined value...
|
||||||
|
bcs .99
|
||||||
|
* Y=Ptr in DATA to Value
|
||||||
|
|
||||||
jsr CSH.GetCharNB
|
jsr CSH.GetCharNB
|
||||||
bcs .9
|
bcs .9
|
||||||
cmp #';'
|
cmp #';'
|
||||||
@ -391,32 +380,33 @@ CSH.TYPE >STA.G CSH.ACCT
|
|||||||
jsr CSH.GetNextCharNB
|
jsr CSH.GetNextCharNB
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
phy Save Ptr To Value
|
||||||
jsr CSH.ExpEval
|
jsr CSH.ExpEval
|
||||||
|
ply
|
||||||
|
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
jsr CSH.SetVarValueAtY Update value to this var
|
||||||
|
|
||||||
jsr CSH.GetChar
|
jsr CSH.GetChar
|
||||||
bcs .9
|
bcs .9
|
||||||
cmp #';'
|
cmp #';'
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
.8 jsr CSH.AddVar
|
.8 jsr CSH.GetNextCharNB Skip ;
|
||||||
bcs .99
|
|
||||||
|
|
||||||
jsr CSH.GetNextCharNB Skip ;
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.90 lda #CSH.E.DUP
|
.90 lda #CSH.E.DUP
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 lda #CSH.E.SYNTAX
|
.9 lda #CSH.E.SYNTAX
|
||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.ExpEval jsr CSH.ZeroACC
|
CSH.ExpEval jsr CSH.ZeroACC
|
||||||
|
|
||||||
ldy #0
|
|
||||||
|
|
||||||
jsr CSH.GetCharNB
|
jsr CSH.GetCharNB
|
||||||
bcs .9
|
bcs .9
|
||||||
cmp #')'
|
cmp #')'
|
||||||
@ -433,6 +423,7 @@ CSH.ExpEval jsr CSH.ZeroACC
|
|||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jsr CSH.GetNumInACC
|
jsr CSH.GetNumInACC
|
||||||
|
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
|
||||||
@ -443,41 +434,45 @@ CSH.ExpEval jsr CSH.ZeroACC
|
|||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.GetNumInACC
|
CSH.GetNumInACC >LDA.G CSH.ACCT
|
||||||
|
cmp #CSH.TYPE.FLOAT
|
||||||
|
bcc .1
|
||||||
|
>PUSHWI ZPCSHBufPtr
|
||||||
|
>PUSHW ZPCSHBufPtr
|
||||||
|
>PUSHEA.G CSH.ACC
|
||||||
|
|
||||||
|
>SYSCALL StrToF
|
||||||
|
rts
|
||||||
|
|
||||||
|
.1 >PUSHBI 10
|
||||||
|
|
||||||
>LDA.G CSH.ACCT
|
>PUSHWI ZPCSHBufPtr
|
||||||
|
>PUSHW ZPCSHBufPtr
|
||||||
* >SYSCALL StrToL
|
>PUSHEA.G CSH.ACC
|
||||||
* bcs .9
|
>DEBUG
|
||||||
* rts
|
>SYSCALL StrToL
|
||||||
|
|
||||||
.9 lda #CSH.E.SYNTAX
|
|
||||||
sec
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.ZeroACC lda #0
|
CSH.ZeroACC lda #0
|
||||||
|
ldx #5
|
||||||
>STA.G CSH.ACC
|
ldy #CSH.ACC
|
||||||
|
|
||||||
|
.1 sta (pData),y
|
||||||
iny
|
iny
|
||||||
sta (pData),y
|
dex
|
||||||
iny
|
bne .1
|
||||||
sta (pData),y
|
|
||||||
iny
|
|
||||||
sta (pData),y
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Vars...
|
* Vars...
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.AddVar jsr CSH.FindVar
|
CSH.AddVar jsr CSH.GetIdentLen
|
||||||
bcc .97
|
|
||||||
|
|
||||||
>LDA.G CSH.SymbolsPtr
|
|
||||||
|
|
||||||
sec
|
sec
|
||||||
>ADC.G CSH.IdentLen
|
>ADC.G CSH.SymbolsPtr
|
||||||
|
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
adc #2 TYPE + OFS
|
adc #1 OFS
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
>LDA.G CSH.DataPtr
|
>LDA.G CSH.DataPtr
|
||||||
@ -485,7 +480,7 @@ CSH.AddVar jsr CSH.FindVar
|
|||||||
|
|
||||||
>LDA.G CSH.ACCT
|
>LDA.G CSH.ACCT
|
||||||
tax
|
tax
|
||||||
* clc
|
sec +1 for Type
|
||||||
adc CSH.TSIZE,x
|
adc CSH.TSIZE,x
|
||||||
bcs .98 Out of memory
|
bcs .98 Out of memory
|
||||||
|
|
||||||
@ -494,17 +489,13 @@ CSH.AddVar jsr CSH.FindVar
|
|||||||
|
|
||||||
jsr CSH.GetChar
|
jsr CSH.GetChar
|
||||||
|
|
||||||
.10 sta (ZPCSHSymbols),y
|
.1 sta (ZPCSHSymbols),y
|
||||||
iny
|
iny
|
||||||
jsr CSH.GetNextChar
|
jsr CSH.GetNextChar
|
||||||
|
|
||||||
jsr CSH.IsLetterOrDigit
|
jsr CSH.IsLetterOrDigit
|
||||||
bcc .10
|
bcc .1
|
||||||
|
|
||||||
lda CSH.ACCT
|
|
||||||
sta (ZPCSHSymbols),y
|
|
||||||
|
|
||||||
iny
|
|
||||||
pla Get Back Data OFS
|
pla Get Back Data OFS
|
||||||
pha
|
pha
|
||||||
sta (ZPCSHSymbols),y
|
sta (ZPCSHSymbols),y
|
||||||
@ -513,94 +504,98 @@ CSH.AddVar jsr CSH.FindVar
|
|||||||
tya
|
tya
|
||||||
>STA.G CSH.SymbolsPtr
|
>STA.G CSH.SymbolsPtr
|
||||||
|
|
||||||
|
>LEA.G CSH.ACCT
|
||||||
|
>STYA ZPPtr1 ACCT/ACC in ZPPtr1
|
||||||
|
|
||||||
ply Get Back Data OFS again
|
ply Get Back Data OFS again
|
||||||
|
phy
|
||||||
|
|
||||||
>LDA.G CSH.ACCT
|
lda (ZPPtr1)
|
||||||
|
sta (ZPCSHSymbols),y Add Type to Data
|
||||||
|
iny
|
||||||
|
|
||||||
tax
|
tax
|
||||||
lda CSH.TSIZE,x
|
lda CSH.TSIZE,x A = byte count to store
|
||||||
|
|
||||||
ldx #0
|
|
||||||
|
|
||||||
.1 pha
|
|
||||||
>LDA.G CSH.ACC
|
|
||||||
tax
|
tax
|
||||||
|
|
||||||
|
.2 inc ZPPtr1
|
||||||
|
bne .3
|
||||||
|
inc ZPPtr1+1
|
||||||
|
|
||||||
|
.3 lda (ZPPtr1)
|
||||||
sta (ZPCSHData),y
|
sta (ZPCSHData),y
|
||||||
iny
|
iny
|
||||||
inx
|
dex
|
||||||
pla
|
bne .2
|
||||||
dec
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
tya
|
tya
|
||||||
>STA.G CSH.DataPtr
|
>STA.G CSH.DataPtr
|
||||||
|
|
||||||
|
ply Exit with Y=Data Offset
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.97 lda #CSH.E.DUP
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
|
|
||||||
.98 pla
|
.98 pla
|
||||||
.99 lda #CSH.E.OOM
|
.99 lda #CSH.E.OOM
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.SetVar
|
CSH.SetVarValueAtY
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.GetVar jsr CSH.FindVar
|
CSH.GetVar >LDYA ZPCSHSymbols
|
||||||
bcs .9
|
>STYA ZPPtr1
|
||||||
|
|
||||||
clc
|
jsr CSH.GetIdentLen
|
||||||
.9 rts
|
phy
|
||||||
*--------------------------------------
|
|
||||||
CSH.FindVar >LDYA ZPCSHSymbols
|
|
||||||
>STYA ZPPTR1
|
|
||||||
|
|
||||||
.1 lda (ZPPTR1)
|
.1 lda (ZPPtr1)
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
>CMP.G CSH.IdentLen
|
pla
|
||||||
bne .4
|
pha
|
||||||
|
cmp (ZPPtr1)
|
||||||
|
bne .3
|
||||||
|
|
||||||
tay
|
tay
|
||||||
|
|
||||||
.2 lda (ZPPTR1),y
|
.2 lda (ZPPtr1),y
|
||||||
|
dey
|
||||||
cmp (ZPCSHBufPtr),y
|
cmp (ZPCSHBufPtr),y
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
dey
|
tya
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
lda (ZPPTR1)
|
pla
|
||||||
sec
|
|
||||||
adc ZPPTR1
|
jsr CSH.VarSkipName
|
||||||
sta ZPPTR1
|
|
||||||
bcc .8
|
|
||||||
inc ZPPTR1+1
|
|
||||||
|
|
||||||
clc
|
clc
|
||||||
.8 rts
|
.8 rts
|
||||||
|
|
||||||
.3 lda (ZPPTR1) skip Name
|
.3 jsr CSH.VarSkipName
|
||||||
.4 sec
|
|
||||||
adc ZPPTR1
|
|
||||||
bcc .5
|
|
||||||
inc ZPPTR1+1
|
|
||||||
clc
|
|
||||||
|
|
||||||
.5 adc #2 Skip Type+OFS
|
.5 inc ZPPtr1 Skip Pointer to TYPE/DATA
|
||||||
sta ZPPTR1
|
bne .1
|
||||||
bcc .1
|
inc ZPPtr1+1
|
||||||
inc ZPPTR1+1
|
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.9 sec
|
.9 pla
|
||||||
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
CSH.VarSkipName lda (ZPPtr1)
|
||||||
|
sec
|
||||||
|
adc ZPPtr1
|
||||||
|
sta ZPPtr1
|
||||||
|
bcc .8
|
||||||
|
inc ZPPtr1+1
|
||||||
|
.8 rts
|
||||||
|
*--------------------------------------
|
||||||
* Stack
|
* Stack
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.Push pha
|
CSH.Push pha
|
||||||
@ -655,6 +650,16 @@ CSH.CheckStack pha
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* CHAR related Subs.....
|
* CHAR related Subs.....
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
CSH.GetIdentLen ldy #0
|
||||||
|
|
||||||
|
.1 iny
|
||||||
|
lda (ZPCSHBufPtr),y
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
jsr CSH.IsLetterOrDigit
|
||||||
|
bcc .1
|
||||||
|
.8 rts
|
||||||
|
*--------------------------------------
|
||||||
CSH.GetCharNB jsr CSH.GetChar
|
CSH.GetCharNB jsr CSH.GetChar
|
||||||
bcs CSH.GetNextCharNB.RTS
|
bcs CSH.GetNextCharNB.RTS
|
||||||
jsr CSH.CheckCharNB
|
jsr CSH.CheckCharNB
|
||||||
@ -724,6 +729,72 @@ CSH.IsDigit10 cmp #'0'
|
|||||||
.9 sec
|
.9 sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
CSH.ErrorMsg >LDA.G CSH.hBuf
|
||||||
|
>SYSCALL GetMemPtr.A
|
||||||
|
>STYA ZPPtr1
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
>STA.G CSH.LineNum
|
||||||
|
iny
|
||||||
|
>STA.G CSH.LineNum+1
|
||||||
|
|
||||||
|
.1 >LDYA ZPPtr1
|
||||||
|
>STYA ZPPtr2 Save actual line start
|
||||||
|
|
||||||
|
>INCW.G CSH.LineNum
|
||||||
|
|
||||||
|
.2 lda (ZPPtr1)
|
||||||
|
beq .6 EoF
|
||||||
|
inc ZPPtr1
|
||||||
|
bne .3
|
||||||
|
inc ZPPtr1+1
|
||||||
|
|
||||||
|
.3 cmp #$0D
|
||||||
|
bne .2 Scan until EoL
|
||||||
|
|
||||||
|
ldx ZPPtr1
|
||||||
|
cpx ZPCSHBufPtr
|
||||||
|
lda ZPPtr1+1
|
||||||
|
sbc ZPCSHBufPtr+1
|
||||||
|
bcc .1 not this line....
|
||||||
|
|
||||||
|
.4 ldy #0
|
||||||
|
|
||||||
|
.5 lda (ZPPtr2),y
|
||||||
|
beq .6
|
||||||
|
iny
|
||||||
|
cmp #$0D
|
||||||
|
beq .6
|
||||||
|
phy
|
||||||
|
>SYSCALL PutChar.A
|
||||||
|
ply
|
||||||
|
bra .5
|
||||||
|
|
||||||
|
.6 lda #$0D
|
||||||
|
>SYSCALL PutChar.A
|
||||||
|
lda #$0A
|
||||||
|
>SYSCALL PutChar.A
|
||||||
|
|
||||||
|
lda ZPCSHBufPtr
|
||||||
|
sec
|
||||||
|
sbc ZPPtr2
|
||||||
|
beq .8
|
||||||
|
tay
|
||||||
|
|
||||||
|
.7 phy
|
||||||
|
lda #'-'
|
||||||
|
>SYSCALL PutChar.A
|
||||||
|
ply
|
||||||
|
dey
|
||||||
|
bne .7
|
||||||
|
|
||||||
|
.8 >PUSHW.G CSH.LineNum
|
||||||
|
|
||||||
|
>LDYA L.MSG.CSHERR
|
||||||
|
>SYSCALL PrintF.YA
|
||||||
|
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/SBIN/SHELL.S.CSH
|
SAVE /A2OSX.SRC/SBIN/SHELL.S.CSH
|
||||||
LOAD /A2OSX.SRC/SBIN/SHELL.S
|
LOAD /A2OSX.SRC/SBIN/SHELL.S
|
||||||
|
@ -34,7 +34,6 @@ CSH.E.NOVERFLW .EQ $7D
|
|||||||
CSH.E.OOM .EQ $7C
|
CSH.E.OOM .EQ $7C
|
||||||
CSH.E.DUP .EQ $7B
|
CSH.E.DUP .EQ $7B
|
||||||
CSH.E.UNDEF .EQ $7A
|
CSH.E.UNDEF .EQ $7A
|
||||||
CSH.E.TOOLONG .EQ $79
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -214,33 +213,9 @@ CS.RUN.BATCH jsr CSH.Run
|
|||||||
|
|
||||||
pha
|
pha
|
||||||
|
|
||||||
lda ZPCSHBufPtr
|
jsr CSH.ErrorMsg
|
||||||
sec
|
|
||||||
>SBC.G CSH.BufBase
|
|
||||||
tay
|
|
||||||
|
|
||||||
lda ZPCSHBufPtr+1
|
pla
|
||||||
>SBC.G CSH.BufBase+1
|
|
||||||
|
|
||||||
>PUSHYA
|
|
||||||
|
|
||||||
>LDYA L.MSG.CSHERR
|
|
||||||
>SYSCALL PrintF.YA
|
|
||||||
|
|
||||||
jsr CSH.RestorePtr
|
|
||||||
|
|
||||||
jsr CSH.GetChar
|
|
||||||
bcs .2
|
|
||||||
>SYSCALL PutChar.A
|
|
||||||
|
|
||||||
.1 jsr CSH.GetNextChar
|
|
||||||
bcs .2
|
|
||||||
cmp #13
|
|
||||||
beq .2
|
|
||||||
>SYSCALL PutChar.A
|
|
||||||
bra .1
|
|
||||||
|
|
||||||
.2 pla
|
|
||||||
|
|
||||||
ldy #S.PS.RC
|
ldy #S.PS.RC
|
||||||
sta (pPs),y
|
sta (pPs),y
|
||||||
@ -510,7 +485,7 @@ MSG.PROMPT >CSTR "$ "
|
|||||||
MSG.ECHO >CSTR ">%s\r\n"
|
MSG.ECHO >CSTR ">%s\r\n"
|
||||||
MSG.ERROR >CSTR "[$%h]:%S.\r\n"
|
MSG.ERROR >CSTR "[$%h]:%S.\r\n"
|
||||||
MSG.PRINTENV >CSTR "%s=%s\r\n"
|
MSG.PRINTENV >CSTR "%s=%s\r\n"
|
||||||
MSG.CSHERR >CSTR "Pos %D:"
|
MSG.CSHERR >CSTR "^\r\nLine #%D:"
|
||||||
FMT.DATE >CSTR "%A, %B %d %Y"
|
FMT.DATE >CSTR "%A, %B %d %Y"
|
||||||
FMT.TIME >CSTR "%H:%M:%S (%I:%M:%S%p)"
|
FMT.TIME >CSTR "%H:%M:%S (%I:%M:%S%p)"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -556,9 +531,10 @@ IO.hOut .BS 1
|
|||||||
IO.hErr .BS 1
|
IO.hErr .BS 1
|
||||||
|
|
||||||
CSH.hBuf .BS 1
|
CSH.hBuf .BS 1
|
||||||
CSH.BufBase .BS 2
|
|
||||||
CSH.BufPtrSave .BS 2
|
CSH.BufPtrSave .BS 2
|
||||||
|
|
||||||
|
CSH.LineNum .BS 2
|
||||||
|
|
||||||
CSH.hSymbols .BS 1
|
CSH.hSymbols .BS 1
|
||||||
CSH.SymbolsPtr .BS 1
|
CSH.SymbolsPtr .BS 1
|
||||||
|
|
||||||
@ -568,7 +544,6 @@ CSH.DataPtr .BS 1
|
|||||||
CSH.hStack .BS 1
|
CSH.hStack .BS 1
|
||||||
CSH.StackPtr .BS 1
|
CSH.StackPtr .BS 1
|
||||||
|
|
||||||
CSH.IdentLen .BS 1
|
|
||||||
CSH.CmdSave .BS 1
|
CSH.CmdSave .BS 1
|
||||||
CSH.ACCT .BS 1
|
CSH.ACCT .BS 1
|
||||||
CSH.ACC .BS 5
|
CSH.ACC .BS 5
|
||||||
|
@ -14,16 +14,13 @@ AUTO 6
|
|||||||
* Target buffer filled with a FLOAT (packed)
|
* Target buffer filled with a FLOAT (packed)
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.StrToF jsr K.AToF
|
K.StrToF jsr K.AToF
|
||||||
bcs .9
|
|
||||||
|
|
||||||
>PULLW ZPPtr3
|
>PULLW ZPPtr3
|
||||||
lda TXTPTR
|
lda TXTPTR
|
||||||
sta (ZPPtr3)
|
sta (ZPPtr3)
|
||||||
ldy #1
|
ldy #1
|
||||||
lda TXTPTR
|
lda TXTPTR+1
|
||||||
sta (ZPPtr3),y
|
sta (ZPPtr3),y
|
||||||
|
rts
|
||||||
.9 rts
|
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # AToF
|
* # AToF
|
||||||
* Convert String to 40 bits Float
|
* Convert String to 40 bits Float
|
||||||
@ -71,10 +68,11 @@ K.StrToUL clc Unsigned
|
|||||||
* clc
|
* clc
|
||||||
|
|
||||||
K.StrToUL.Exit adc ZPPtr2
|
K.StrToUL.Exit adc ZPPtr2
|
||||||
sta ZPPtr3
|
sta (ZPPtr3)
|
||||||
lda #0
|
lda #0
|
||||||
adc ZPPtr2+1
|
adc ZPPtr2+1
|
||||||
sta ZPPtr3+1
|
ldy #1
|
||||||
|
sta (ZPPtr3),y
|
||||||
|
|
||||||
K.StrToUL.rts rts
|
K.StrToUL.rts rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
|
Loading…
x
Reference in New Issue
Block a user