mirror of https://github.com/A2osX/A2osX.git
Kernel 0.94
This commit is contained in:
parent
14be0c5225
commit
27169807fe
Binary file not shown.
|
@ -5,22 +5,21 @@ NEW
|
|||
hFileBuf .BS 1
|
||||
|
||||
CSH.BufPtrSave .BS 2
|
||||
CSH.CmdSave .BS 1
|
||||
CSH.LookupOpt .BS 1
|
||||
|
||||
CSH.hDefines .BS 1
|
||||
CSH.hSymbols .BS 1
|
||||
|
||||
CSH.hConst .BS 1
|
||||
CSH.ConstPtr .BS 1
|
||||
CSH.ConstPtr .BS 2
|
||||
|
||||
CSH.hData .BS 1
|
||||
CSH.DataPtr .BS 1
|
||||
CSH.DataBase .BS 2
|
||||
CSH.DataPtr .BS 2
|
||||
|
||||
CSH.hStack .BS 1
|
||||
CSH.StackPtr .BS 1
|
||||
|
||||
CSH.CmdSave .BS 1
|
||||
|
||||
CSH.LookupOpt .BS 1
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/BIN/CSH.D
|
||||
|
|
|
@ -24,6 +24,14 @@ CSH.Init >SYSCALL SListNew
|
|||
>SYSCALL GetMem
|
||||
bcs .9
|
||||
|
||||
>STYA ZPCSHData
|
||||
txa
|
||||
>STA.G CSH.hData
|
||||
|
||||
>LDYAI 256
|
||||
>SYSCALL GetMem
|
||||
bcs .9
|
||||
|
||||
>STYA ZPCSHStack
|
||||
txa
|
||||
>STA.G CSH.hStack
|
||||
|
@ -57,6 +65,9 @@ CSH.Quit >LDA.G CSH.hSymbols
|
|||
>LDA.G CSH.hStack
|
||||
jsr .7
|
||||
|
||||
>LDA.G CSH.hData
|
||||
jsr .7
|
||||
|
||||
>LDA.G CSH.hConst
|
||||
|
||||
.7 beq CSH.Quit.RTS
|
||||
|
@ -79,7 +90,7 @@ CSH.Run.1 cmp #C.CR empty line....
|
|||
.3 cmp #'#' directive ?
|
||||
bne .4
|
||||
|
||||
jmp CSH.DIRECTIVES
|
||||
jmp CSH.DIR
|
||||
|
||||
.4 cmp #'}' End of block ?
|
||||
bne .40
|
||||
|
@ -125,8 +136,7 @@ CSH.Run.1 cmp #C.CR empty line....
|
|||
jsr CSH.ExpEval
|
||||
bcs .9
|
||||
|
||||
>LDYA ZPVarID X = Exp Type
|
||||
jsr CSH.SetVarValueFromStack
|
||||
jsr CSH.SetVarValueFromStack X = Exp Type
|
||||
bcs .9
|
||||
|
||||
jsr CSH.GetChar
|
||||
|
@ -138,7 +148,6 @@ CSH.Run.1 cmp #C.CR empty line....
|
|||
.9 rts
|
||||
|
||||
.7 lda #0 no return value type check required
|
||||
|
||||
jsr CSH.fCall
|
||||
bcs .9
|
||||
|
||||
|
@ -167,7 +176,7 @@ CSH.COMMENTS jsr CSH.GetNextChar
|
|||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CSH.DIRECTIVES jsr CSH.GetNextCharNB
|
||||
CSH.DIR jsr CSH.GetNextCharNB
|
||||
bcs .99
|
||||
|
||||
cmp #'!' #!/bin/csh
|
||||
|
@ -393,46 +402,34 @@ CSH.TYPE stx ZPVarType
|
|||
.10 jsr CSH.IsLetter
|
||||
bcs .9
|
||||
|
||||
jsr CSH.AddVar add with no value...
|
||||
jsr CSH.AddVar add with undef value...
|
||||
bcs .99 OOM or DUP
|
||||
|
||||
>STYA ZPVarID
|
||||
jsr CSH.GetCharNB
|
||||
bcs .9
|
||||
cmp #';'
|
||||
bne .2
|
||||
beq .8
|
||||
|
||||
ldx ZPVarType
|
||||
|
||||
jsr CSH.SIZEOF
|
||||
|
||||
.1 dec pStack
|
||||
dec
|
||||
bne .1
|
||||
|
||||
|
||||
ldx ZPVarType
|
||||
bra .7
|
||||
.2 cmp #'='
|
||||
bne .9
|
||||
|
||||
jsr CSH.GetNextCharNB Skip =
|
||||
bcs .9
|
||||
|
||||
lda ZPVarType
|
||||
jsr CSH.ExpEval
|
||||
bcs .99
|
||||
.7 >LDYA ZPVarID
|
||||
|
||||
jsr CSH.AddVarValueFromStack X= Type, Add value to this var
|
||||
|
||||
.7 jsr CSH.SetVarValueFromStack X= Type, Set value to this var
|
||||
bcs .99
|
||||
|
||||
jsr CSH.GetChar
|
||||
bcs .9
|
||||
|
||||
cmp #';'
|
||||
bne .9
|
||||
.8 clc
|
||||
rts
|
||||
|
||||
.90 lda #CSH.E.DUP
|
||||
sec
|
||||
.8 clc
|
||||
rts
|
||||
|
||||
.9 lda #CSH.E.SYNTAX
|
||||
|
@ -622,7 +619,8 @@ CSH.ExpEval ldx ZPPtr1
|
|||
jsr CSH.GetVar
|
||||
bcs .1
|
||||
|
||||
ldx ZPPtr2 expected var type (could be 0=any)
|
||||
ldx ZPPtr2 YA=VarID, X=expected var type (or 0=any)
|
||||
|
||||
jsr CSH.GetVarValueOnStack Y,A = VarID, Get value on stack
|
||||
bcs .29
|
||||
|
||||
|
@ -720,6 +718,7 @@ CSH.ExpEval ldx ZPPtr1
|
|||
*--------------------------------------
|
||||
CSH.AddContCharP
|
||||
ldy #0
|
||||
|
||||
.1 jsr CSH.GetNextChar
|
||||
bcs .9
|
||||
cmp #C.CR
|
||||
|
@ -729,6 +728,7 @@ CSH.AddContCharP
|
|||
sta (ZPCSHConst),y
|
||||
iny
|
||||
bra .1
|
||||
|
||||
.2 lda #0
|
||||
sta (ZPCSHConst),y
|
||||
>PUSHW ZPCSHConst Push PTR on stack
|
||||
|
@ -888,16 +888,57 @@ CSH.GetNumOnStack
|
|||
* Output : Y,A = ZPVarID
|
||||
*--------------------------------------
|
||||
CSH.AddDefine >LDA.G CSH.hDefines
|
||||
bra CSH.Add
|
||||
jsr CSH.NewKey
|
||||
bcs .9
|
||||
|
||||
.9 rts
|
||||
|
||||
CSH.AddVar >LDA.G CSH.hSymbols
|
||||
jsr CSH.NewKey
|
||||
bcs .9
|
||||
|
||||
CSH.Add >PUSHA
|
||||
ldx ZPVarType
|
||||
jsr CSH.SizeOf
|
||||
sta ZPVarSizeOf
|
||||
|
||||
lda ZPCSHData
|
||||
sta ZPVarDataPtr
|
||||
clc
|
||||
adc ZPVarSizeOf
|
||||
sta ZPCSHData
|
||||
|
||||
lda ZPCSHData+1
|
||||
sta ZPVarDataPtr+1
|
||||
adc ZPVarSizeOf+1
|
||||
sta ZPCSHData+1
|
||||
|
||||
>LDA.G CSH.DataPtr
|
||||
clc
|
||||
adc ZPVarSizeOf
|
||||
sta (pData),y
|
||||
|
||||
bcs .99
|
||||
|
||||
>PUSHB.G CSH.hSymbols
|
||||
>PUSHW ZPVarID
|
||||
>PUSHWI ZPVarDef
|
||||
>PUSHWI 6
|
||||
>SYSCALL SListAddData
|
||||
|
||||
.9 rts
|
||||
|
||||
.99
|
||||
CSH.TMISMATCH lda #CSH.E.TMISMATCH
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CSH.NewKey >PUSHA
|
||||
>PUSHW ZPFileBufPtr
|
||||
>SYSCALL SListNewKey
|
||||
bcs .9
|
||||
|
||||
pha
|
||||
>STYA ZPVarID
|
||||
|
||||
txa
|
||||
* clc
|
||||
adc ZPFileBufPtr
|
||||
|
@ -905,53 +946,45 @@ CSH.Add >PUSHA
|
|||
bcc .1
|
||||
|
||||
inc ZPFileBufPtr+1
|
||||
clc
|
||||
.1 pla
|
||||
|
||||
.1 clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
* Y,A = VarID, X=Type
|
||||
*--------------------------------------
|
||||
CSH.AddVarValueFromStack
|
||||
sec
|
||||
.HS 90 BCC
|
||||
* X=Type
|
||||
*--------------------------------------
|
||||
CSH.SetVarValueFromStack
|
||||
clc
|
||||
php
|
||||
pha
|
||||
phy
|
||||
stx ZPVarData X = type
|
||||
cpx ZPVarType X = type
|
||||
bne .99
|
||||
|
||||
jsr CSH.SIZEOF
|
||||
pha Size....
|
||||
tax
|
||||
|
||||
ldy #1
|
||||
.1 >PULLA
|
||||
sta ZPVarData,y
|
||||
ldy #0
|
||||
|
||||
.1 lda (pStack)
|
||||
sta (ZPVarDataPtr),y
|
||||
inc pStack
|
||||
iny
|
||||
dex
|
||||
cpy ZPVarSizeOf
|
||||
bne .1
|
||||
|
||||
>PUSHB.G CSH.hSymbols
|
||||
plx
|
||||
ply
|
||||
pla
|
||||
>PUSHYA Y,A = VarID
|
||||
|
||||
>PUSHWI ZPVarData DataPtr
|
||||
|
||||
txa
|
||||
inc
|
||||
>PUSHA Datalen LO
|
||||
>PUSHBI 0 Datalen HI
|
||||
plp
|
||||
|
||||
bcc .2
|
||||
|
||||
>SYSCALL SListAddData
|
||||
|
||||
|
||||
lda #'>'
|
||||
>SYSCALL putchar
|
||||
>PUSHW L.MSG.DBGPL
|
||||
>PUSHW ZPVarDataPtr
|
||||
|
||||
ldy #3
|
||||
|
||||
.2 >PUSHB (ZPVarDataPtr),y
|
||||
dey
|
||||
bpl .2
|
||||
|
||||
>PUSHBI 6
|
||||
>SYSCALL printf
|
||||
>DEBUG
|
||||
clc
|
||||
rts
|
||||
.2 >SYSCALL SListSetData
|
||||
|
||||
.99 lda #CSH.E.TMISMATCH
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CSH.GetDefine >PUSHB.G CSH.hDefines
|
||||
|
@ -1003,54 +1036,74 @@ CSH.Get >PUSHW ZPFileBufPtr
|
|||
.1 pla Y,A = VarID
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
* Input : Y,A = VarID, X = Var Type (or 0)
|
||||
* Output : Value on Stack, X = Var Type
|
||||
* Input :
|
||||
* X=Var Type (or 0)
|
||||
* YA=VarID
|
||||
* Output : Stack, X = Var Type
|
||||
*--------------------------------------
|
||||
CSH.GetVarValueOnStack
|
||||
stx ZPVarType
|
||||
|
||||
pha
|
||||
phx
|
||||
phy
|
||||
pha
|
||||
>PUSHB.G CSH.hSymbols
|
||||
ply
|
||||
|
||||
pla
|
||||
>PUSHYA KeyID
|
||||
>PUSHA
|
||||
pla
|
||||
>PUSHA KeyID
|
||||
|
||||
>PUSHWI ZPVarData
|
||||
>PUSHWI ZPVarDef
|
||||
>PUSHWI 6 6 bytes
|
||||
>PUSHWI 0 From Start
|
||||
>SYSCALL SListGetData
|
||||
plx
|
||||
|
||||
bcs .9
|
||||
|
||||
ldx ZPVarType
|
||||
txa
|
||||
beq .1 any type
|
||||
|
||||
cpx ZPVarData
|
||||
cmp ZPVarType
|
||||
beq .2
|
||||
|
||||
txa
|
||||
and #CSH.Q.PPPOINTER
|
||||
beq .99 not pointer....mismatch
|
||||
|
||||
eor ZPVarData
|
||||
eor ZPVarType
|
||||
and #CSH.Q.PPPOINTER
|
||||
bne .99 compare only pointer depth
|
||||
|
||||
.1 ldx ZPVarData
|
||||
.1 ldx ZPVarType
|
||||
beq *
|
||||
|
||||
.2 jsr CSH.SIZEOF
|
||||
tay
|
||||
.3 lda ZPVarData,y
|
||||
|
||||
.3 dey
|
||||
lda (ZPVarDataPtr),y
|
||||
>PUSHA
|
||||
dey
|
||||
tya
|
||||
bne .3
|
||||
|
||||
lda #'<'
|
||||
>SYSCALL putchar
|
||||
>PUSHW L.MSG.DBGPL
|
||||
>PUSHW ZPVarDataPtr
|
||||
|
||||
ldy #3
|
||||
|
||||
.20 >PUSHB (ZPVarDataPtr),y
|
||||
dey
|
||||
bpl .20
|
||||
|
||||
>PUSHBI 6
|
||||
>SYSCALL printf
|
||||
>DEBUG
|
||||
ldx ZPVarType
|
||||
clc X = Var Type
|
||||
.9 rts
|
||||
|
||||
.99
|
||||
CSH.TMISMATCH lda #CSH.E.TMISMATCH
|
||||
.99 lda #CSH.E.TMISMATCH
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -1059,11 +1112,14 @@ CSH.TMISMATCH lda #CSH.E.TMISMATCH
|
|||
*--------------------------------------
|
||||
CSH.IsValue0 cpx #CSH.T.FLOAT
|
||||
bcc .1 char,int,long
|
||||
|
||||
ldy CSH.TYPESIZE,x
|
||||
lda ZPVarData,y
|
||||
lda (ZPVarDataPtr),y
|
||||
bne .9
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
|
||||
.1 jsr CSH.SIZEOF
|
||||
tax
|
||||
|
||||
|
@ -1073,8 +1129,10 @@ CSH.IsValue0 cpx #CSH.T.FLOAT
|
|||
inc pStack
|
||||
dex
|
||||
bne .2
|
||||
|
||||
tax
|
||||
beq .8
|
||||
|
||||
.9 sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
|
|
@ -22,21 +22,24 @@ ZPFileBufPtr .BS 2
|
|||
ZPFileBufPtrBak .BS 2
|
||||
|
||||
ZPCSHConst .BS 2
|
||||
ZPCSHData .BS 2
|
||||
ZPCSHStack .BS 2
|
||||
|
||||
ZPPtr1 .BS 2
|
||||
ZPPtr2 .BS 2
|
||||
ZPPtr3 .BS 2
|
||||
|
||||
ZPVarID .BS 2
|
||||
|
||||
ZPVarData .BS 6
|
||||
ZPVarType .BS 1
|
||||
ZPVarDef .EQ *
|
||||
ZPVarType .BS 2
|
||||
ZPVarSizeOf .BS 2
|
||||
ZPVarDataPtr .BS 2
|
||||
|
||||
ZPhMacro .BS 1
|
||||
|
||||
ArgIndex .BS 1
|
||||
|
||||
ZPPtr1 .BS 2
|
||||
ZPPtr2 .BS 2
|
||||
ZPPtr3 .BS 2
|
||||
|
||||
ZS.END .ED
|
||||
*--------------------------------------
|
||||
* File Header (16 Bytes)
|
||||
|
@ -64,6 +67,7 @@ L.MSG.USAGE .DA MSG.USAGE
|
|||
L.MSG.ECHOCRLF .DA MSG.ECHOCRLF
|
||||
L.MSG.DEBUG .DA MSG.DEBUG
|
||||
L.MSG.ERR .DA MSG.ERR
|
||||
L.MSG.DBGPL .DA MSG.DBGPL
|
||||
.INB USR/SRC/BIN/CSH.R
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
|
@ -299,6 +303,7 @@ MSG.USAGE .AS "Usage : CSH <option> file\r\n"
|
|||
MSG.ECHOCRLF .AZ "\r\n"
|
||||
MSG.DEBUG .AZ "pStack=%H"
|
||||
MSG.ERR .AZ "^\r\nLine #%D:"
|
||||
MSG.DBGPL .AZ "P=%H, V=%L\r\n"
|
||||
*--------------------------------------
|
||||
OptionList .AS "DdTt"
|
||||
OptionVars .DA #bDebug,#bDebug,#bTrace,#bTrace
|
||||
|
|
|
@ -98,7 +98,7 @@ K.SPrintf stz PrintF.hFILE
|
|||
sec Format & buffer
|
||||
jsr STDIO.GetFormat
|
||||
*--------------------------------------
|
||||
K.PrintF.1 sty PrintF.Exit.Cnt+1 Total bytes to POP
|
||||
K.PrintF.1 sty STDIO.Exit.Cnt+1 Total bytes to POP
|
||||
|
||||
stz PrintF.Cnt
|
||||
stz PrintF.Cnt+1
|
||||
|
@ -182,7 +182,7 @@ K.PrintF.1 sty PrintF.Exit.Cnt+1 Total bytes to POP
|
|||
.20 jsr PrintF.COut
|
||||
bcc .11
|
||||
*--------------------------------------
|
||||
.99 bra PrintF.Exit
|
||||
.99 jmp STDIO.Exit
|
||||
*--------------------------------------
|
||||
.8 ldx PrintF.hFILE
|
||||
beq .80 Writing to buffer, append \0
|
||||
|
@ -197,22 +197,13 @@ K.PrintF.1 sty PrintF.Exit.Cnt+1 Total bytes to POP
|
|||
bne .99
|
||||
|
||||
>RET 4 0=BLOCKING
|
||||
|
||||
.80 ldy PrintF.Cnt A=0, Writing to buffer, append \0
|
||||
sta (pIOBuf),y
|
||||
|
||||
.81 >LDYA PrintF.Cnt
|
||||
* clc
|
||||
*--------------------------------------
|
||||
PrintF.Exit php
|
||||
pha
|
||||
lda pStack
|
||||
sec +Bytecount byte
|
||||
PrintF.Exit.Cnt adc #$ff SELF MODIFIED
|
||||
sta pStack
|
||||
pla
|
||||
plp
|
||||
PrintF.Exit.RTS
|
||||
rts
|
||||
jmp STDIO.Exit
|
||||
*--------------------------------------
|
||||
PrintFTBL1 .AS "bdDuefhHiILsS"
|
||||
PrintFTBL1.Cnt .EQ *-PrintFTBL1
|
||||
|
@ -230,7 +221,7 @@ PrintF.ESC jmp (.1,x)
|
|||
.DA PrintF.I,PrintF.II,PrintF.L
|
||||
.DA PrintF.S,PrintF.SS
|
||||
*--------------------------------------
|
||||
PrintF.B jsr PrintF.LocalGetByte
|
||||
PrintF.B jsr STDIO.GetStackByte
|
||||
bcs PrintF.B.RTS
|
||||
ldy #8
|
||||
|
||||
|
@ -270,7 +261,7 @@ PrintF.U clc unsigned long (DWORD)
|
|||
|
||||
PrintF.NUM ror ACC32.Sign
|
||||
jsr MATH.ACC32ZERO
|
||||
.1 jsr PrintF.LocalGetByte
|
||||
.1 jsr STDIO.GetStackByte
|
||||
bcs PrintF.B.RTS
|
||||
|
||||
sta ACC32-1,y
|
||||
|
@ -326,10 +317,10 @@ PrintF.SS ldy #$00 PSTR
|
|||
|
||||
sty .1+1
|
||||
|
||||
jsr PrintF.LocalGetByte
|
||||
jsr STDIO.GetStackByte
|
||||
bcs .9
|
||||
sta ZPPtr1+1
|
||||
jsr PrintF.LocalGetByte
|
||||
jsr STDIO.GetStackByte
|
||||
bcs .9
|
||||
sta ZPPtr1
|
||||
|
||||
|
@ -367,10 +358,10 @@ PrintF.SS ldy #$00 PSTR
|
|||
* clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
PrintF.HH jsr PrintF.LocalGetByte
|
||||
PrintF.HH jsr STDIO.GetStackByte
|
||||
bcs PrintF.COut.RTS
|
||||
pha LO byte
|
||||
jsr PrintF.LocalGetByte
|
||||
jsr STDIO.GetStackByte
|
||||
plx
|
||||
bcs PrintF.COut.RTS
|
||||
pha
|
||||
|
@ -381,7 +372,7 @@ PrintF.HH jsr PrintF.LocalGetByte
|
|||
txa
|
||||
bra PrintF.H.1
|
||||
*--------------------------------------
|
||||
PrintF.H jsr PrintF.LocalGetByte
|
||||
PrintF.H jsr STDIO.GetStackByte
|
||||
bcs PrintF.COut.RTS
|
||||
PrintF.H.1 jsr MATH.AToHexAX
|
||||
jsr PrintF.COut
|
||||
|
@ -473,7 +464,7 @@ K.SScanF stz PrintF.hFILE
|
|||
sec Format & buffer
|
||||
jsr STDIO.GetFormat
|
||||
*--------------------------------------
|
||||
K.SScanF.1 sty PrintF.Exit.Cnt+1 Total bytes to POP
|
||||
K.SScanF.1 sty STDIO.Exit.Cnt+1 Total bytes to POP
|
||||
|
||||
.1 jsr SHARED.GetCharPtr2 End Of format?
|
||||
beq .8
|
||||
|
@ -514,12 +505,15 @@ K.SScanF.1 sty PrintF.Exit.Cnt+1 Total bytes to POP
|
|||
|
||||
.9 lda #MLI.E.EOF
|
||||
sec
|
||||
jmp PrintF.Exit
|
||||
jmp STDIO.Exit
|
||||
|
||||
.4 jsr PrintF.LocalGetPtr
|
||||
.4 jsr STDIO.GetStackByte
|
||||
bcs .9
|
||||
sta ZPPtr3
|
||||
jsr STDIO.GetStackByte
|
||||
bcs .9
|
||||
sty ZPPtr3
|
||||
sta ZPPtr3+1
|
||||
|
||||
jsr .5
|
||||
bcs .9 out of Ptr on stack
|
||||
|
||||
|
@ -528,7 +522,7 @@ K.SScanF.1 sty PrintF.Exit.Cnt+1 Total bytes to POP
|
|||
|
||||
.8 lda #$ff SELF MODIFIED Arg processed
|
||||
clc
|
||||
jmp PrintF.Exit
|
||||
jmp STDIO.Exit
|
||||
*--------------------------------------
|
||||
.5 jmp (K.SScanFJMP,x)
|
||||
*--------------------------------------
|
||||
|
@ -589,12 +583,34 @@ K.SScanF.S ldy #$ff
|
|||
|
||||
K.SScanF.Fwd jmp SHARED.AddYToPtr1 Y=char count parsed
|
||||
*--------------------------------------
|
||||
PrintF.LocalGetPtr
|
||||
jsr PrintF.LocalGetByte
|
||||
bcs PrintF.LocalGetByte.RTS
|
||||
STDIO.GetFormat lda (pStack) Bytecount
|
||||
inc
|
||||
tay
|
||||
|
||||
lda (pStack),y format LO
|
||||
sta ZPPtr2
|
||||
iny
|
||||
lda (pStack),y format HI
|
||||
sta ZPPtr2+1
|
||||
|
||||
bcc .1
|
||||
|
||||
iny
|
||||
lda (pStack),y str LO
|
||||
sta pIOBuf
|
||||
iny
|
||||
lda (pStack),y str HI
|
||||
sta pIOBuf+1
|
||||
rts
|
||||
|
||||
.1 lda #K.IOBuf
|
||||
sta pIOBuf
|
||||
lda /K.IOBuf
|
||||
sta pIOBuf+1
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
PrintF.LocalGetByte
|
||||
STDIO.GetStackByte
|
||||
lda (pStack)
|
||||
beq .9
|
||||
|
||||
|
@ -612,34 +628,18 @@ PrintF.LocalGetByte
|
|||
|
||||
.9 lda #E.STACK
|
||||
sec
|
||||
PrintF.LocalGetByte.RTS
|
||||
STDIO.GetStackByte.RTS
|
||||
rts
|
||||
*--------------------------------------
|
||||
STDIO.GetFormat bcs .1
|
||||
|
||||
>LDYAI K.IOBuf
|
||||
>STYA pIOBuf
|
||||
|
||||
.1 lda (pStack) Bytecount
|
||||
inc
|
||||
tay
|
||||
|
||||
lda (pStack),y format LO
|
||||
sta ZPPtr2
|
||||
iny
|
||||
lda (pStack),y format HI
|
||||
sta ZPPtr2+1
|
||||
|
||||
bcc .8
|
||||
|
||||
iny
|
||||
lda (pStack),y str LO
|
||||
sta pIOBuf
|
||||
iny
|
||||
lda (pStack),y str HI
|
||||
sta pIOBuf+1
|
||||
|
||||
.8 rts
|
||||
STDIO.Exit php
|
||||
pha
|
||||
lda pStack
|
||||
sec +Bytecount byte
|
||||
STDIO.Exit.Cnt adc #$ff SELF MODIFIED
|
||||
sta pStack
|
||||
pla
|
||||
plp
|
||||
rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/SYS/KERNEL.S.STDIO2
|
||||
|
|
Loading…
Reference in New Issue