mirror of https://github.com/A2osX/A2osX.git
KERNEL:VT100 fixes
CC:comment,scopes fixes DAN2ETH:fixes for IIgs
This commit is contained in:
parent
104360d2fa
commit
07172d7359
Binary file not shown.
|
@ -18,7 +18,7 @@ CODE.Init stz ZPCCConst
|
||||||
|
|
||||||
ldy #SCOPE-1
|
ldy #SCOPE-1
|
||||||
lda #0
|
lda #0
|
||||||
|
|
||||||
.1 sta (ScopeStk),y reset initial Scope ID, LocalPtr, FrameSize
|
.1 sta (ScopeStk),y reset initial Scope ID, LocalPtr, FrameSize
|
||||||
dey
|
dey
|
||||||
bpl .1
|
bpl .1
|
||||||
|
@ -58,12 +58,12 @@ CODE.PUSHAXI pha
|
||||||
txa
|
txa
|
||||||
jsr CODE.PUSHI
|
jsr CODE.PUSHI
|
||||||
bcs CODE.LDAXI.RTS
|
bcs CODE.LDAXI.RTS
|
||||||
|
|
||||||
pla
|
pla
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CODE.PUSHI jsr CODE.LDAI
|
CODE.PUSHI jsr CODE.LDAI
|
||||||
bcs CODE.LDAXI.RTS
|
bcs CODE.LDAXI.RTS
|
||||||
|
|
||||||
bra CODE.PUSHA
|
bra CODE.PUSHA
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CODE.LDYAI pha
|
CODE.LDYAI pha
|
||||||
|
@ -71,15 +71,15 @@ CODE.LDYAI pha
|
||||||
lda #$A0 LDY #imm
|
lda #$A0 LDY #imm
|
||||||
jsr CODE.EmitByte
|
jsr CODE.EmitByte
|
||||||
bcs CODE.LDAXI.RTS
|
bcs CODE.LDAXI.RTS
|
||||||
|
|
||||||
tya
|
tya
|
||||||
jsr CODE.EmitByte
|
jsr CODE.EmitByte
|
||||||
bcs CODE.LDAXI.RTS
|
bcs CODE.LDAXI.RTS
|
||||||
|
|
||||||
lda #$A9 LDA #imm
|
lda #$A9 LDA #imm
|
||||||
jsr CODE.EmitByte
|
jsr CODE.EmitByte
|
||||||
bcs CODE.LDAXI.RTS
|
bcs CODE.LDAXI.RTS
|
||||||
|
|
||||||
pla
|
pla
|
||||||
|
|
||||||
jmp CODE.EmitByte
|
jmp CODE.EmitByte
|
||||||
|
@ -151,23 +151,23 @@ CODE.INCPSTACK lda #$E6 INC zp
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CODE.SYSCALL jsr CODE.LDXI
|
CODE.SYSCALL jsr CODE.LDXI
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda #$20 JSR
|
lda #$20 JSR
|
||||||
ldx #A2osX.SYSCALL
|
ldx #A2osX.SYSCALL
|
||||||
ldy /A2osX.SYSCALL
|
ldy /A2osX.SYSCALL
|
||||||
bra CODE.TOABSYX
|
bra CODE.TOABSYX
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CODE.FPUCALL jsr CODE.LDXI
|
CODE.FPUCALL jsr CODE.LDXI
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda #$20 JSR
|
lda #$20 JSR
|
||||||
ldx #A2osX.FPUCALL
|
ldx #A2osX.FPUCALL
|
||||||
ldy /A2osX.FPUCALL
|
ldy /A2osX.FPUCALL
|
||||||
bra CODE.TOABSYX
|
bra CODE.TOABSYX
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CODE.LIBCALL jsr CODE.LDXI
|
CODE.LIBCALL jsr CODE.LDXI
|
||||||
bcs .9
|
bcs .9
|
||||||
|
@ -187,7 +187,7 @@ CODE.LIBCALL jsr CODE.LDXI
|
||||||
lda #$20 JSR
|
lda #$20 JSR
|
||||||
bra CODE.TOABSYX
|
bra CODE.TOABSYX
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CODE.TOABSYX jsr CODE.EmitByte A=opcode : JMP, JSR .....
|
CODE.TOABSYX jsr CODE.EmitByte A=opcode : JMP, JSR .....
|
||||||
bcs .9
|
bcs .9
|
||||||
|
@ -199,7 +199,7 @@ CODE.TOABSYX jsr CODE.EmitByte A=opcode : JMP, JSR .....
|
||||||
tya
|
tya
|
||||||
bra CODE.EmitByte
|
bra CODE.EmitByte
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CODE.DEBUG >LDYA L.PCC.DEBUG
|
CODE.DEBUG >LDYA L.PCC.DEBUG
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -208,7 +208,7 @@ CODE.EmitPCC >STYA ZPLookupPtr
|
||||||
lda (ZPLookupPtr)
|
lda (ZPLookupPtr)
|
||||||
tax
|
tax
|
||||||
dex
|
dex
|
||||||
|
|
||||||
ldy #1
|
ldy #1
|
||||||
|
|
||||||
.1 lda (ZPLookupPtr),y
|
.1 lda (ZPLookupPtr),y
|
||||||
|
@ -230,16 +230,16 @@ CODE.EmitByte clc if Pass 1...
|
||||||
pha
|
pha
|
||||||
|
|
||||||
.DO _DBG_OUT=1
|
.DO _DBG_OUT=1
|
||||||
|
|
||||||
lda ZPCCCode
|
lda ZPCCCode
|
||||||
and #$1F
|
and #$1F
|
||||||
bne .11
|
bne .11
|
||||||
|
|
||||||
>PUSHW L.MSG.DEBUG.CSOUT
|
>PUSHW L.MSG.DEBUG.CSOUT
|
||||||
>PUSHW ZPCCCode
|
>PUSHW ZPCCCode
|
||||||
>PUSHBI 2
|
>PUSHBI 2
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
.11 >PUSHW L.MSG.DEBUG.OUT
|
.11 >PUSHW L.MSG.DEBUG.OUT
|
||||||
pla
|
pla
|
||||||
pha
|
pha
|
||||||
|
@ -248,7 +248,7 @@ CODE.EmitByte clc if Pass 1...
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
.FIN
|
.FIN
|
||||||
|
|
||||||
>PUSHB.G CC.hOutFile
|
>PUSHB.G CC.hOutFile
|
||||||
pla
|
pla
|
||||||
|
|
||||||
|
@ -289,37 +289,37 @@ CODE.EmitDATA clc
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CODE.EmitTail jsr CODE.DSSelect
|
CODE.EmitTail jsr CODE.DSSelect
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
stz ArgIndex
|
stz ArgIndex
|
||||||
|
|
||||||
.1 lda ArgIndex
|
.1 lda ArgIndex
|
||||||
>CMP.G LibCount
|
>CMP.G LibCount
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
clc
|
clc
|
||||||
adc #hLibNs
|
adc #hLibNs
|
||||||
tay
|
tay
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
pha
|
pha
|
||||||
|
|
||||||
>PUSHB.G CC.hOutFile
|
>PUSHB.G CC.hOutFile
|
||||||
pla
|
pla
|
||||||
>SYSCALL ArgV
|
>SYSCALL ArgV
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>SYSCALL fputs
|
>SYSCALL fputs
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
jsr .8
|
jsr .8
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
inc ArgIndex
|
inc ArgIndex
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.8 >PUSHB.G CC.hOutFile
|
.8 >PUSHB.G CC.hOutFile
|
||||||
lda #0
|
lda #0
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>SYSCALL fputc
|
>SYSCALL fputc
|
||||||
|
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CODE.CSSelect clc
|
CODE.CSSelect clc
|
||||||
|
|
|
@ -18,7 +18,7 @@ CORE.Init lda #SL._
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>STA.G CC.hSyms
|
>STA.G CC.hSyms
|
||||||
|
|
||||||
>LDYAI 256
|
>LDYAI 256
|
||||||
>SYSCALL GetMem
|
>SYSCALL GetMem
|
||||||
bcs .9
|
bcs .9
|
||||||
|
@ -34,7 +34,7 @@ CORE.Init lda #SL._
|
||||||
>STYA ScopeStk
|
>STYA ScopeStk
|
||||||
txa
|
txa
|
||||||
>STA.G CC.hScopeStk
|
>STA.G CC.hScopeStk
|
||||||
|
|
||||||
>LDYAI 256
|
>LDYAI 256
|
||||||
>SYSCALL GetMem
|
>SYSCALL GetMem
|
||||||
bcs .9
|
bcs .9
|
||||||
|
@ -82,7 +82,7 @@ CORE.Quit jsr FIO.FClose
|
||||||
|
|
||||||
>LDA.G CC.hScopeStk
|
>LDA.G CC.hScopeStk
|
||||||
jsr .7
|
jsr .7
|
||||||
|
|
||||||
>LDA.G CC.hStmtStk
|
>LDA.G CC.hStmtStk
|
||||||
|
|
||||||
.7 beq .8
|
.7 beq .8
|
||||||
|
@ -118,7 +118,7 @@ CORE.CompileFile
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CORE.CompileLine
|
CORE.CompileLine
|
||||||
jsr CC.GetCharNB
|
jsr CC.GetCharNB
|
||||||
bcs .9
|
bcs .99
|
||||||
|
|
||||||
cmp #C.CR EOL....
|
cmp #C.CR EOL....
|
||||||
beq .8
|
beq .8
|
||||||
|
@ -132,37 +132,49 @@ CORE.CompileLine
|
||||||
bne .2 comments ...
|
bne .2 comments ...
|
||||||
|
|
||||||
jmp CORE.Comments
|
jmp CORE.Comments
|
||||||
|
*--------------------------------------
|
||||||
.2 cmp #'}' End of CPStmt ?
|
.2 cmp #'}' End of CPStmt ?
|
||||||
|
beq .5
|
||||||
|
|
||||||
|
jsr CORE.CompileStmt
|
||||||
|
bcs .99
|
||||||
|
|
||||||
|
jsr CC.GetCharNB
|
||||||
|
bcs .98
|
||||||
|
|
||||||
|
cmp #'{'
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
jsr CORE.GetNCharNBNL Skip '}'
|
jsr CORE.GetNCharNBNL Skip '{'
|
||||||
|
|
||||||
jsr STMT.CPStmt.END
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
jsr CORE.GetCharNBNL
|
|
||||||
bcc CORE.CompileLine
|
bcc CORE.CompileLine
|
||||||
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
.3 cmp #';' End of Stmt ?
|
.3 cmp #';' End of Stmt ?
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
jsr CORE.GetNCharNBNL Skip ';'
|
jsr CORE.GetNCharNBNL Skip ';'
|
||||||
|
|
||||||
jsr STMT.Stmt.END
|
jsr STMT.Stmt.END
|
||||||
bcs .9
|
bcs .99
|
||||||
|
|
||||||
bra CORE.CompileLine
|
jsr CC.GetCharNB
|
||||||
|
|
||||||
.4 jsr CORE.CompileStmt
|
.4 cmp #'}' End of CPStmt ?
|
||||||
bcs .9
|
bne CORE.CompileLine
|
||||||
|
|
||||||
bra CORE.CompileLine
|
.5 jsr CORE.GetNCharNBNL Skip '}'
|
||||||
|
|
||||||
|
jsr STMT.CPStmt.END
|
||||||
|
bcs .99
|
||||||
|
|
||||||
|
jsr CC.GetCharNB
|
||||||
|
bcc .3
|
||||||
|
|
||||||
|
.98 lda #E.CSYN
|
||||||
|
sec
|
||||||
|
.99 rts
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
.9 rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* keyword : for, while ....
|
* keyword : for, while ....
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -199,11 +211,26 @@ CORE.CompileStmt
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CORE.Comments jsr CC.GetNextChar TODO : /* ... */
|
CORE.Comments jsr CC.GetNextChar TODO : /* ... */
|
||||||
cmp #'/'
|
cmp #'/'
|
||||||
bne .90
|
beq CORE.SkipLine // skip line.....
|
||||||
|
|
||||||
|
cmp #'*'
|
||||||
|
bne .9 /* ....
|
||||||
|
|
||||||
|
.1 jsr CORE.GetNCharNBNL
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
cmp #'*' ....*/
|
||||||
|
bne .1
|
||||||
|
|
||||||
jmp CORE.SkipLine skip line.....
|
jsr CC.GetNextChar
|
||||||
|
bcs .9
|
||||||
|
|
||||||
.90 lda #E.CSYN
|
cmp #'/'
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
jmp CC.GetNextChar
|
||||||
|
|
||||||
|
.9 lda #E.CSYN
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -418,10 +445,16 @@ CORE.GetCharNBNL
|
||||||
|
|
||||||
jsr FIO.FGetS
|
jsr FIO.FGetS
|
||||||
bcc CORE.GetCharNBNL
|
bcc CORE.GetCharNBNL
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CORE.GetNCharNBNL
|
CORE.GetNCharNBNL
|
||||||
|
jsr CC.GetChar
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
cmp #C.CR
|
||||||
|
beq .1
|
||||||
|
|
||||||
jsr CORE.GetNCharNB
|
jsr CORE.GetNCharNB
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
@ -429,7 +462,7 @@ CORE.GetNCharNBNL
|
||||||
clc
|
clc
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
jsr FIO.FGetS
|
.1 jsr FIO.FGetS
|
||||||
bcc CORE.GetCharNBNL
|
bcc CORE.GetCharNBNL
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
|
|
|
@ -15,10 +15,10 @@ DECL.TYPEDEF jsr CORE.GetNCharNB
|
||||||
>LDYA L.CC.TYPEQUAL
|
>LDYA L.CC.TYPEQUAL
|
||||||
jsr CC.LookupID
|
jsr CC.LookupID
|
||||||
bcs .98
|
bcs .98
|
||||||
|
|
||||||
cpx #4 no const nor volatile
|
cpx #4 no const nor volatile
|
||||||
bcc .98
|
bcc .98
|
||||||
|
|
||||||
jsr TYPE.GetTQInYA
|
jsr TYPE.GetTQInYA
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
|
@ -26,15 +26,15 @@ DECL.TYPEDEF jsr CORE.GetNCharNB
|
||||||
sec Reset Buffer
|
sec Reset Buffer
|
||||||
jsr SYM.New Y,A=T/Q,storage class TYPEDEF
|
jsr SYM.New Y,A=T/Q,storage class TYPEDEF
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
jsr CC.GetCharNB
|
jsr CC.GetCharNB
|
||||||
bcs .98
|
bcs .98
|
||||||
|
|
||||||
cmp #';'
|
cmp #';'
|
||||||
bne .98
|
bne .98
|
||||||
|
|
||||||
jsr CORE.GetNCharNB skip ';'
|
jsr CORE.GetNCharNB skip ';'
|
||||||
|
|
||||||
jmp SYM.Store
|
jmp SYM.Store
|
||||||
|
|
||||||
.98 lda #E.CSYN
|
.98 lda #E.CSYN
|
||||||
|
@ -45,20 +45,20 @@ DECL.TYPEDEF jsr CORE.GetNCharNB
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DECL.X jsr TYPE.GetTQInYA
|
DECL.X jsr TYPE.GetTQInYA
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
cpy #SYM.T.SU
|
cpy #SYM.T.SU
|
||||||
bne .7
|
bne .7
|
||||||
|
|
||||||
tax save Q
|
tax save Q
|
||||||
jsr CC.GetCharNB
|
jsr CC.GetCharNB
|
||||||
bcs .98
|
bcs .98
|
||||||
|
|
||||||
cmp #';' from a tag def
|
cmp #';' from a tag def
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
jsr CC.IsLetter
|
jsr CC.IsLetter
|
||||||
bcs .98
|
bcs .98
|
||||||
|
|
||||||
.1 clc reuse buffer
|
.1 clc reuse buffer
|
||||||
ldy #SYM.T.SU
|
ldy #SYM.T.SU
|
||||||
txa restore Q
|
txa restore Q
|
||||||
|
@ -79,11 +79,11 @@ DECL.X jsr TYPE.GetTQInYA
|
||||||
bne .98
|
bne .98
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.98 lda #E.CSYN
|
.98 lda #E.CSYN
|
||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
|
|
||||||
.7 sec Reset Buffer
|
.7 sec Reset Buffer
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -99,14 +99,14 @@ DECL.YAC ldx #SYM.SC.STATIC Y,A = Type/Qual
|
||||||
|
|
||||||
jsr SYM.GetTQInYA Y,A = T/Q
|
jsr SYM.GetTQInYA Y,A = T/Q
|
||||||
bit #SYM.Q.FUNC
|
bit #SYM.Q.FUNC
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
jsr CC.GetCharNB
|
jsr CC.GetCharNB
|
||||||
bcs .98
|
bcs .98
|
||||||
|
|
||||||
cmp #';' no initializer...store SYM
|
cmp #';' no initializer...store SYM
|
||||||
beq .28
|
beq .28
|
||||||
|
|
||||||
cmp #'=' type var = value ?
|
cmp #'=' type var = value ?
|
||||||
bne .98
|
bne .98
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@ DECL.YAC ldx #SYM.SC.STATIC Y,A = Type/Qual
|
||||||
|
|
||||||
jsr SYM.GetAddr1
|
jsr SYM.GetAddr1
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
jsr SYM.GetTQInYA Y,A = T/Q
|
jsr SYM.GetTQInYA Y,A = T/Q
|
||||||
jsr SYM.PopValue Set value to this var
|
jsr SYM.PopValue Set value to this var
|
||||||
.29 bcs .99
|
.29 bcs .99
|
||||||
|
@ -130,7 +130,7 @@ DECL.YAC ldx #SYM.SC.STATIC Y,A = Type/Qual
|
||||||
jsr CC.GetCharNB
|
jsr CC.GetCharNB
|
||||||
cmp #';'
|
cmp #';'
|
||||||
bne .98
|
bne .98
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ DIR jsr CORE.GetNCharNB
|
||||||
DIR.DEFINE clc
|
DIR.DEFINE clc
|
||||||
bit bPass2
|
bit bPass2
|
||||||
bmi .8
|
bmi .8
|
||||||
|
|
||||||
jsr CC.CheckSpace
|
jsr CC.CheckSpace
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
|
@ -84,7 +84,7 @@ DIR.INCLUDE lda #0 >STZ.G PathBuf
|
||||||
>PUSHW pData >PUSHEA.G PathBuf
|
>PUSHW pData >PUSHEA.G PathBuf
|
||||||
>SYSCALL GetEnv
|
>SYSCALL GetEnv
|
||||||
bcs .90
|
bcs .90
|
||||||
|
|
||||||
lda #'>'
|
lda #'>'
|
||||||
|
|
||||||
.1 sta ArgIndex
|
.1 sta ArgIndex
|
||||||
|
@ -116,7 +116,7 @@ DIR.INCLUDE lda #0 >STZ.G PathBuf
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
sta (pData),y terminate string
|
sta (pData),y terminate string
|
||||||
|
|
||||||
>LDYA pData
|
>LDYA pData
|
||||||
jmp FIO.FOpen
|
jmp FIO.FOpen
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -288,7 +288,7 @@ EXP.GetIntegral jsr CC.GetCharNB
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
jsr CORE.GetNCharNB skip '
|
jsr CORE.GetNCharNB skip '
|
||||||
|
|
||||||
lda #0 Y,A = integral
|
lda #0 Y,A = integral
|
||||||
|
|
||||||
clc
|
clc
|
||||||
|
|
|
@ -3,7 +3,7 @@ NEW
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
F.Decl jsr SCOPE.New
|
F.Decl jsr SCOPE.New
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
lda (ZPSymBufPtr) #SYM.T
|
lda (ZPSymBufPtr) #SYM.T
|
||||||
pha
|
pha
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ F.Decl jsr SCOPE.New
|
||||||
ply
|
ply
|
||||||
cpy #SYM.T.VOID
|
cpy #SYM.T.VOID
|
||||||
bne .10
|
bne .10
|
||||||
|
|
||||||
tax
|
tax
|
||||||
beq .11 function is void
|
beq .11 function is void
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ F.Decl jsr SCOPE.New
|
||||||
|
|
||||||
jsr F.NewArg will update LocalPtr,FrameSize
|
jsr F.NewArg will update LocalPtr,FrameSize
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
.2 jsr CC.GetCharNB
|
.2 jsr CC.GetCharNB
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ F.Decl jsr SCOPE.New
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.5 jsr CC.GetCharNB
|
.5 jsr CC.GetCharNB
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
cmp #')'
|
cmp #')'
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ F.Decl jsr SCOPE.New
|
||||||
jsr SYM.Update Store this declaration & exit
|
jsr SYM.Update Store this declaration & exit
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
jsr CORE.GetNCharNBNL Skip ';'
|
* jsr CORE.GetNCharNBNL Skip ';'
|
||||||
|
|
||||||
clc no error even if EOF
|
clc no error even if EOF
|
||||||
rts
|
rts
|
||||||
|
@ -146,7 +146,7 @@ F.Def >LDA.G CC.bInitCode
|
||||||
F.Def.END lda #'X' define EXIT Label
|
F.Def.END lda #'X' define EXIT Label
|
||||||
jsr SYM.NewLabelA
|
jsr SYM.NewLabelA
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jsr STMT.Close
|
jsr STMT.Close
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
@ -156,7 +156,7 @@ F.Def.END lda #'X' define EXIT Label
|
||||||
|
|
||||||
jsr SCOPE.Close
|
jsr SCOPE.Close
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
F.DeclGetTQ lda (ZPLineBufPtr)
|
F.DeclGetTQ lda (ZPLineBufPtr)
|
||||||
|
@ -253,12 +253,12 @@ F.CallRetV sec
|
||||||
|
|
||||||
ror ZPPtr1+1 bRetV
|
ror ZPPtr1+1 bRetV
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
jsr EXP.GetYASizeOfInAX
|
jsr EXP.GetYASizeOfInAX
|
||||||
txa
|
txa
|
||||||
jsr CODE.AddLocal
|
jsr CODE.AddLocal
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.1 jsr CORE.GetNCharNB skip '('
|
.1 jsr CORE.GetNCharNB skip '('
|
||||||
|
|
|
@ -4,7 +4,7 @@ NEW
|
||||||
FIO.LoadLIB.o >LDA.G LibCount
|
FIO.LoadLIB.o >LDA.G LibCount
|
||||||
cmp #LIBS.MAX
|
cmp #LIBS.MAX
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
lda #E.OOH
|
lda #E.OOH
|
||||||
sec
|
sec
|
||||||
.9 rts
|
.9 rts
|
||||||
|
@ -12,7 +12,7 @@ FIO.LoadLIB.o >LDA.G LibCount
|
||||||
.1 clc
|
.1 clc
|
||||||
adc #hLibNs
|
adc #hLibNs
|
||||||
tay
|
tay
|
||||||
|
|
||||||
lda ArgIndex
|
lda ArgIndex
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
|
@ -20,18 +20,18 @@ FIO.LoadLIB.o >LDA.G LibCount
|
||||||
>PUSHW pData >PUSHEA.G PathBuf
|
>PUSHW pData >PUSHEA.G PathBuf
|
||||||
>SYSCALL GetEnv
|
>SYSCALL GetEnv
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>PUSHW pData
|
>PUSHW pData
|
||||||
|
|
||||||
lda ArgIndex
|
lda ArgIndex
|
||||||
>SYSCALL ArgV
|
>SYSCALL ArgV
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>SYSCALL strcat
|
>SYSCALL strcat
|
||||||
|
|
||||||
>PUSHW pData
|
>PUSHW pData
|
||||||
>PUSHW L.LIB.O
|
>PUSHW L.LIB.O
|
||||||
>SYSCALL strcat
|
>SYSCALL strcat
|
||||||
|
|
||||||
>PUSHW L.MSG.READING
|
>PUSHW L.MSG.READING
|
||||||
>PUSHW pData
|
>PUSHW pData
|
||||||
>PUSHBI 2
|
>PUSHBI 2
|
||||||
|
@ -43,14 +43,14 @@ FIO.LoadLIB.o >LDA.G LibCount
|
||||||
>PUSHWZ Aux type
|
>PUSHWZ Aux type
|
||||||
>SYSCALL loadfile
|
>SYSCALL loadfile
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
>LDA.G LibCount
|
>LDA.G LibCount
|
||||||
clc
|
clc
|
||||||
adc #hLibOs
|
adc #hLibOs
|
||||||
tay
|
tay
|
||||||
txa
|
txa
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
>INC.G LibCount
|
>INC.G LibCount
|
||||||
clc
|
clc
|
||||||
|
|
||||||
|
@ -163,18 +163,18 @@ FIO.FCreate lda ZPCCCode+1
|
||||||
sec
|
sec
|
||||||
sbc #$20
|
sbc #$20
|
||||||
sta PCC.FH+PCC.FH.CSSIZE+1
|
sta PCC.FH+PCC.FH.CSSIZE+1
|
||||||
|
|
||||||
lda ZPCCCode
|
lda ZPCCCode
|
||||||
sta PCC.FH+PCC.FH.CSSIZE
|
sta PCC.FH+PCC.FH.CSSIZE
|
||||||
sta PCC.FH+PCC.FH.CONST
|
sta PCC.FH+PCC.FH.CONST
|
||||||
clc
|
clc
|
||||||
adc ZPCCConst
|
adc ZPCCConst
|
||||||
sta PCC.FH+PCC.FH.LIBS
|
sta PCC.FH+PCC.FH.LIBS
|
||||||
|
|
||||||
lda ZPCCCode+1
|
lda ZPCCCode+1
|
||||||
adc ZPCCConst+1
|
adc ZPCCConst+1
|
||||||
sta PCC.FH+PCC.FH.LIBS+1
|
sta PCC.FH+PCC.FH.LIBS+1
|
||||||
|
|
||||||
lda ZPCCData
|
lda ZPCCData
|
||||||
sta PCC.FH+PCC.FH.DSSIZE
|
sta PCC.FH+PCC.FH.DSSIZE
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ NEW
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Built in Keywords
|
* Built in Keywords
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.IF jsr SCOPE.New
|
KW.IF jsr SCOPE.New IF {
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
jsr CC.GetCharNB
|
jsr CC.GetCharNB
|
||||||
|
@ -54,7 +54,7 @@ KW.IF.END jsr STMT.Close
|
||||||
jsr SYM.NewLabelA
|
jsr SYM.NewLabelA
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
jmp SCOPE.Close
|
jmp SCOPE.Close } IF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.2 lda #'X'
|
.2 lda #'X'
|
||||||
jsr SYM.LookupLabelA
|
jsr SYM.LookupLabelA
|
||||||
|
@ -91,7 +91,7 @@ KW.ELSE.END jsr STMT.Close
|
||||||
jsr SYM.NewLabelA
|
jsr SYM.NewLabelA
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
jmp SCOPE.Close
|
jmp SCOPE.Close } IF
|
||||||
|
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -168,6 +168,10 @@ KW.DO jsr SCOPE.New
|
||||||
jsr SYM.NewLabelA
|
jsr SYM.NewLabelA
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
|
>LDYA L.PCC.SLEEP
|
||||||
|
jsr CODE.EmitPCC
|
||||||
|
bcs .99
|
||||||
|
|
||||||
jsr STMT.New00
|
jsr STMT.New00
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
|
@ -248,7 +252,7 @@ KW.FOR jsr CC.GetCharNB
|
||||||
jsr CORE.GetNCharNB skip '('
|
jsr CORE.GetNCharNB skip '('
|
||||||
bcs .29
|
bcs .29
|
||||||
|
|
||||||
jsr SCOPE.New
|
jsr SCOPE.New for (
|
||||||
bcs .19
|
bcs .19
|
||||||
|
|
||||||
>LDYA L.CC.TYPEQUAL
|
>LDYA L.CC.TYPEQUAL
|
||||||
|
@ -342,7 +346,11 @@ KW.FOR jsr CC.GetCharNB
|
||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.FOR.END lda #$60
|
KW.FOR.END >LDYA L.PCC.SLEEP
|
||||||
|
jsr CODE.EmitPCC
|
||||||
|
bcs .99
|
||||||
|
|
||||||
|
lda #$60
|
||||||
|
|
||||||
jsr CODE.EmitByte set RTS for JSR code;
|
jsr CODE.EmitByte set RTS for JSR code;
|
||||||
bcs .99
|
bcs .99
|
||||||
|
@ -354,7 +362,7 @@ KW.FOR.END lda #$60
|
||||||
jsr SYM.NewLabelA
|
jsr SYM.NewLabelA
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
jmp SCOPE.Close FOR ()
|
jmp SCOPE.Close FOR )
|
||||||
|
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -55,9 +55,9 @@ CC.Link >LDYA L.MSG.LINKING
|
||||||
|
|
||||||
.9 >LDA.G bVerbose
|
.9 >LDA.G bVerbose
|
||||||
bmi .90
|
bmi .90
|
||||||
|
|
||||||
jsr CC.Link.Dump
|
jsr CC.Link.Dump
|
||||||
|
|
||||||
.90 lda #E.FUNDEF
|
.90 lda #E.FUNDEF
|
||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
|
@ -183,7 +183,7 @@ CC.Link.Dump ldy #$ff
|
||||||
.1 iny
|
.1 iny
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
iny
|
iny
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
sta ZPPtr3
|
sta ZPPtr3
|
||||||
|
|
|
@ -10,7 +10,7 @@ SCOPE.New lda ScopePtr
|
||||||
sta ScopePtr
|
sta ScopePtr
|
||||||
|
|
||||||
dec bLocalScope
|
dec bLocalScope
|
||||||
|
|
||||||
iny
|
iny
|
||||||
iny #SCOPE.LocalPtr
|
iny #SCOPE.LocalPtr
|
||||||
lda (ScopeStk),y
|
lda (ScopeStk),y
|
||||||
|
@ -24,23 +24,23 @@ SCOPE.New lda ScopePtr
|
||||||
iny
|
iny
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
adc #0
|
adc #0
|
||||||
|
|
||||||
ldy ScopePtr
|
ldy ScopePtr
|
||||||
iny
|
iny
|
||||||
sta (ScopeStk),y #SCOPE.ID Hi
|
sta (ScopeStk),y #SCOPE.ID Hi
|
||||||
txa
|
txa
|
||||||
dey
|
dey
|
||||||
sta (ScopeStk),y #SCOPE.ID Lo
|
sta (ScopeStk),y #SCOPE.ID Lo
|
||||||
|
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
pla
|
pla
|
||||||
sta (ScopeStk),y #SCOPE.LocalPtr
|
sta (ScopeStk),y #SCOPE.LocalPtr
|
||||||
|
|
||||||
iny
|
iny
|
||||||
lda #0
|
lda #0
|
||||||
sta (ScopeStk),y #SCOPE.FrameSize
|
sta (ScopeStk),y #SCOPE.FrameSize
|
||||||
|
|
||||||
lda #'F'
|
lda #'F'
|
||||||
jsr SYM.LookupLabelA
|
jsr SYM.LookupLabelA
|
||||||
bcs .99
|
bcs .99
|
||||||
|
@ -49,21 +49,21 @@ SCOPE.New lda ScopePtr
|
||||||
|
|
||||||
jsr CODE.AddLocal
|
jsr CODE.AddLocal
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
.DO _DBG_SCOPE=1
|
.DO _DBG_SCOPE=1
|
||||||
>PUSHW L.MSG.DEBUG.SCIN
|
>PUSHW L.MSG.DEBUG.SCIN
|
||||||
jsr SCOPE.Push
|
jsr SCOPE.Push
|
||||||
|
|
||||||
lda ScopePtr
|
lda ScopePtr
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
|
||||||
tay
|
tay
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
>PUSHB (ScopeStk),y
|
>PUSHB (ScopeStk),y
|
||||||
iny
|
iny
|
||||||
>PUSHB (ScopeStk),y
|
>PUSHB (ScopeStk),y
|
||||||
|
|
||||||
>PUSHBI 5
|
>PUSHBI 5
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
* >DEBUG
|
* >DEBUG
|
||||||
|
@ -74,28 +74,28 @@ SCOPE.New lda ScopePtr
|
||||||
|
|
||||||
.9 lda #E.OOH
|
.9 lda #E.OOH
|
||||||
sec
|
sec
|
||||||
.99
|
.99
|
||||||
SCOPE.New.RTS rts
|
SCOPE.New.RTS rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SCOPE.Close lda #'F' define FRAME SIZE
|
SCOPE.Close lda #'F' define FRAME SIZE
|
||||||
jsr SYM.NewLabelA
|
jsr SYM.NewLabelA
|
||||||
bcs SCOPE.New.RTS
|
bcs SCOPE.New.RTS
|
||||||
|
|
||||||
ldy ScopePtr
|
ldy ScopePtr
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
lda (ScopeStk),y #SCOPE.FrameSize
|
lda (ScopeStk),y #SCOPE.FrameSize
|
||||||
|
|
||||||
jsr CODE.RemLocal
|
jsr CODE.RemLocal
|
||||||
bcs SCOPE.New.RTS
|
bcs SCOPE.New.RTS
|
||||||
|
|
||||||
.DO _DBG_SCOPE=1
|
.DO _DBG_SCOPE=1
|
||||||
>PUSHW L.MSG.DEBUG.SCOUT
|
>PUSHW L.MSG.DEBUG.SCOUT
|
||||||
jsr SCOPE.Push
|
jsr SCOPE.Push
|
||||||
lda ScopePtr
|
lda ScopePtr
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
|
||||||
tay
|
tay
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
|
@ -106,7 +106,7 @@ SCOPE.Close lda #'F' define FRAME SIZE
|
||||||
>PUSHBI 5
|
>PUSHBI 5
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
.FIN
|
.FIN
|
||||||
|
|
||||||
lda ScopePtr
|
lda ScopePtr
|
||||||
beq *
|
beq *
|
||||||
|
|
||||||
|
@ -119,10 +119,10 @@ SCOPE.Close lda #'F' define FRAME SIZE
|
||||||
.DO _DBG_SCOPE=1
|
.DO _DBG_SCOPE=1
|
||||||
>PUSHW L.MSG.DEBUG.SC
|
>PUSHW L.MSG.DEBUG.SC
|
||||||
jsr SCOPE.Push
|
jsr SCOPE.Push
|
||||||
|
|
||||||
lda ScopePtr
|
lda ScopePtr
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
|
||||||
tay
|
tay
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
|
@ -134,7 +134,7 @@ SCOPE.Close lda #'F' define FRAME SIZE
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
* >DEBUG
|
* >DEBUG
|
||||||
.FIN
|
.FIN
|
||||||
|
|
||||||
clc
|
clc
|
||||||
|
|
||||||
.99 rts
|
.99 rts
|
||||||
|
|
|
@ -123,28 +123,33 @@ STMT.SetVar stz ExpState
|
||||||
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STMT.Stmt.END ldy StmtPtr
|
STMT.Stmt.END ldy StmtPtr
|
||||||
beq STMT.POP.8 Global context
|
beq STMT.End.8 Global context
|
||||||
|
|
||||||
lda (StmtStk),y
|
lda (StmtStk),y
|
||||||
bmi STMT.POP.8 local F context
|
bmi STMT.End.8 local F context
|
||||||
* in an instruction ...
|
* in an instruction ...
|
||||||
iny STMT.TERM
|
iny STMT.TERM
|
||||||
lda (StmtStk),y
|
lda (StmtStk),y
|
||||||
cmp #'}'
|
cmp #'}'
|
||||||
beq STMT.POP.8 in a STMT...
|
beq STMT.End.8 in a STMT...
|
||||||
|
|
||||||
cmp #';' must be ';' on stack....
|
cmp #';' must be ';' on stack....
|
||||||
beq STMT.End
|
bne STMT.End.9
|
||||||
|
|
||||||
|
jsr STMT.End
|
||||||
|
bcc STMT.Stmt.END
|
||||||
|
|
||||||
STMT.POP.9 lda #E.STACKERROR
|
rts
|
||||||
|
|
||||||
|
STMT.End.9 lda #E.STACKERROR
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
STMT.POP.8 clc
|
STMT.End.8 clc
|
||||||
STMT.POP.99 rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STMT.CPStmt.END ldy StmtPtr
|
STMT.CPStmt.END ldy StmtPtr
|
||||||
beq STMT.POP.9
|
beq STMT.End.9
|
||||||
|
|
||||||
lda (StmtStk),y
|
lda (StmtStk),y
|
||||||
bpl .1
|
bpl .1
|
||||||
|
@ -155,7 +160,7 @@ STMT.CPStmt.END ldy StmtPtr
|
||||||
lda (StmtStk),y STMT.TERM
|
lda (StmtStk),y STMT.TERM
|
||||||
|
|
||||||
cmp #'}' must be '}' on stack....
|
cmp #'}' must be '}' on stack....
|
||||||
bne STMT.POP.9
|
bne STMT.End.9
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STMT.End ldy StmtPtr STMT.KW
|
STMT.End ldy StmtPtr STMT.KW
|
||||||
lda (StmtStk),y
|
lda (StmtStk),y
|
||||||
|
@ -187,10 +192,7 @@ STMT.SetType jsr CORE.GetNCharNBNL
|
||||||
cmp #'{'
|
cmp #'{'
|
||||||
bne STMT.SetType.1
|
bne STMT.SetType.1
|
||||||
|
|
||||||
STMT.SetTypeCP jsr CORE.GetNCharNBNL skip '{'
|
STMT.SetTypeCP jsr SCOPE.New
|
||||||
bcs STMT.SetType.9
|
|
||||||
|
|
||||||
jsr SCOPE.New
|
|
||||||
bcs STMT.New.RTS
|
bcs STMT.New.RTS
|
||||||
|
|
||||||
ldx #'}'
|
ldx #'}'
|
||||||
|
@ -215,7 +217,7 @@ STMT.Close lda StmtPtr
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
>SYSCALL FreeMem
|
>SYSCALL FreeMem
|
||||||
|
|
||||||
.1 ldy StmtPtr STMT.KW
|
.1 ldy StmtPtr STMT.KW
|
||||||
iny STMT.TERM
|
iny STMT.TERM
|
||||||
lda (StmtStk),y
|
lda (StmtStk),y
|
||||||
|
|
|
@ -77,7 +77,7 @@ SYM.New.2 jsr CC.GetCharNB
|
||||||
lda (ZPSymBufPtr),y
|
lda (ZPSymBufPtr),y
|
||||||
ora #SYM.Q.FUNC
|
ora #SYM.Q.FUNC
|
||||||
sta (ZPSymBufPtr),y
|
sta (ZPSymBufPtr),y
|
||||||
|
|
||||||
jsr SYM.Store Store this f() with no prototype...
|
jsr SYM.Store Store this f() with no prototype...
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
|
@ -627,7 +627,7 @@ SYM.NewLabelA bit bPass2
|
||||||
bcs .98
|
bcs .98
|
||||||
|
|
||||||
>STYA.G CC.LabelID
|
>STYA.G CC.LabelID
|
||||||
|
|
||||||
ldy #CC.LabelBuf+SYM.DefSize
|
ldy #CC.LabelBuf+SYM.DefSize
|
||||||
lda #SYM.Def
|
lda #SYM.Def
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
@ -650,11 +650,11 @@ SYM.NewLabelA bit bPass2
|
||||||
lda #SYM.Q.POINTER
|
lda #SYM.Q.POINTER
|
||||||
iny
|
iny
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
iny
|
iny
|
||||||
lda #SYM.SC.STATIC
|
lda #SYM.SC.STATIC
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
ldy #CC.LabelBuf+SYM.Addr
|
ldy #CC.LabelBuf+SYM.Addr
|
||||||
lda ZPCCCode
|
lda ZPCCCode
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
@ -686,7 +686,7 @@ SYM.NewLabelF lda #SYM.T.UCHAR
|
||||||
lda #0
|
lda #0
|
||||||
iny
|
iny
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
iny
|
iny
|
||||||
lda #SYM.SC.AUTO
|
lda #SYM.SC.AUTO
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
@ -696,7 +696,7 @@ SYM.NewLabelF lda #SYM.T.UCHAR
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
lda (ScopeStk),y #SCOPE.FrameSize
|
lda (ScopeStk),y #SCOPE.FrameSize
|
||||||
|
|
||||||
ldy #CC.LabelBuf+SYM.Addr
|
ldy #CC.LabelBuf+SYM.Addr
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
rts
|
rts
|
||||||
|
@ -705,13 +705,13 @@ SYM.NewLabelR ldy #SYM.Q
|
||||||
lda (ZPSymBufPtr),y
|
lda (ZPSymBufPtr),y
|
||||||
and #$F8 strip off SYM.Q.FUNC...
|
and #$F8 strip off SYM.Q.FUNC...
|
||||||
pha
|
pha
|
||||||
|
|
||||||
lda (ZPSymBufPtr)
|
lda (ZPSymBufPtr)
|
||||||
>STA.G CC.LabelBuf
|
>STA.G CC.LabelBuf
|
||||||
pla
|
pla
|
||||||
iny
|
iny
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
iny
|
iny
|
||||||
lda #SYM.SC.AUTO
|
lda #SYM.SC.AUTO
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
@ -720,7 +720,7 @@ SYM.NewLabelR ldy #SYM.Q
|
||||||
SYM.LookupLabelA
|
SYM.LookupLabelA
|
||||||
cmp #'R'
|
cmp #'R'
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
bit bPass2
|
bit bPass2
|
||||||
bmi .1
|
bmi .1
|
||||||
|
|
||||||
|
@ -770,7 +770,7 @@ SYM.LookupLabelA
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
phx
|
phx
|
||||||
|
|
||||||
txa
|
txa
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>STYA ZPLookupPtr
|
>STYA ZPLookupPtr
|
||||||
|
@ -1024,14 +1024,14 @@ SYM.DEBUGU >PUSHW L.MSG.DEBUG.SYMU
|
||||||
iny
|
iny
|
||||||
lda (ZPSymBufPtr),y
|
lda (ZPSymBufPtr),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
|
||||||
ldy #SYM.Addr+1
|
ldy #SYM.Addr+1
|
||||||
lda (ZPSymBufPtr),y
|
lda (ZPSymBufPtr),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
dey
|
dey
|
||||||
lda (ZPSymBufPtr),y
|
lda (ZPSymBufPtr),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
|
||||||
>PUSHBI 7
|
>PUSHBI 7
|
||||||
>SYSCALL Printf
|
>SYSCALL Printf
|
||||||
rts
|
rts
|
||||||
|
@ -1053,7 +1053,7 @@ SYM.DEBUGS >PUSHW L.MSG.DEBUG.SYMS
|
||||||
dey
|
dey
|
||||||
lda (ZPSymBufPtr),y
|
lda (ZPSymBufPtr),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
|
||||||
>PUSHBI 7
|
>PUSHBI 7
|
||||||
>SYSCALL Printf
|
>SYSCALL Printf
|
||||||
>DEBUG
|
>DEBUG
|
||||||
|
|
|
@ -27,10 +27,10 @@ TYPE.GetTQInYA >ENTER 2
|
||||||
TYPE.GetTQInYA2 >ENTER 2
|
TYPE.GetTQInYA2 >ENTER 2
|
||||||
lda (ZPLookupSymPtr)
|
lda (ZPLookupSymPtr)
|
||||||
sta (pStack) Type
|
sta (pStack) Type
|
||||||
|
|
||||||
ldy #SYM.Q
|
ldy #SYM.Q
|
||||||
lda (ZPLookupSymPtr),y
|
lda (ZPLookupSymPtr),y
|
||||||
|
|
||||||
* ldy #1
|
* ldy #1
|
||||||
sta (pStack),y Qual
|
sta (pStack),y Qual
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ TYPE.GetTQInYA2 >ENTER 2
|
||||||
clc
|
clc
|
||||||
|
|
||||||
.99 >LEAVE
|
.99 >LEAVE
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Type Declaration keywords
|
* Type Declaration keywords
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -67,9 +67,9 @@ TYPE.VOLATILE.1 ldy #1
|
||||||
>LDYA L.CC.TYPESPEC
|
>LDYA L.CC.TYPESPEC
|
||||||
jsr CC.LookupID
|
jsr CC.LookupID
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jmp (J.CC.TYPESPEC,x)
|
jmp (J.CC.TYPESPEC,x)
|
||||||
|
|
||||||
.9 lda #E.CSYN
|
.9 lda #E.CSYN
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
@ -81,7 +81,7 @@ TYPE.UNION sec
|
||||||
ror ZPPtr2+1 bStrucUnion
|
ror ZPPtr2+1 bStrucUnion
|
||||||
|
|
||||||
stz ZPPtr2 bNewTagDef
|
stz ZPPtr2 bNewTagDef
|
||||||
|
|
||||||
bit bPass2
|
bit bPass2
|
||||||
bpl TYPE.SU.1 Pass 1: create def
|
bpl TYPE.SU.1 Pass 1: create def
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -131,7 +131,7 @@ TYPE.SU.1 ldy #SYM.T.SU
|
||||||
|
|
||||||
jsr TYPE.NewTag
|
jsr TYPE.NewTag
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
sec
|
sec
|
||||||
ror ZPPtr2 bNewTagDef
|
ror ZPPtr2 bNewTagDef
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -140,7 +140,7 @@ TYPE.SU.1 ldy #SYM.T.SU
|
||||||
|
|
||||||
cmp #'{'
|
cmp #'{'
|
||||||
beq .30
|
beq .30
|
||||||
|
|
||||||
bit ZPPtr2 bNewTagDef
|
bit ZPPtr2 bNewTagDef
|
||||||
bmi .98
|
bmi .98
|
||||||
|
|
||||||
|
@ -190,7 +190,7 @@ TYPE.SU.1 ldy #SYM.T.SU
|
||||||
|
|
||||||
jsr TYPE.StoreTag
|
jsr TYPE.StoreTag
|
||||||
bcs .99
|
bcs .99
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.38 lda #SYM.T.SU
|
.38 lda #SYM.T.SU
|
||||||
jmp TYPE.GetQ
|
jmp TYPE.GetQ
|
||||||
|
|
||||||
|
@ -210,34 +210,34 @@ TYPE.SU.AddYAX jsr SYM.AddWord add T/Q
|
||||||
iny
|
iny
|
||||||
lda (ZPSymBufPtr),y
|
lda (ZPSymBufPtr),y
|
||||||
ply
|
ply
|
||||||
|
|
||||||
jsr SYM.AddWord Add Y/A Offset
|
jsr SYM.AddWord Add Y/A Offset
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
txa
|
txa
|
||||||
|
|
||||||
ldy #SYM.SizeOf
|
ldy #SYM.SizeOf
|
||||||
* clc
|
* clc
|
||||||
adc (ZPSymBufPtr),y
|
adc (ZPSymBufPtr),y
|
||||||
sta (ZPSymBufPtr),y
|
sta (ZPSymBufPtr),y
|
||||||
bcc .99
|
bcc .99
|
||||||
|
|
||||||
iny
|
iny
|
||||||
lda #0
|
lda #0
|
||||||
adc (ZPSymBufPtr),y
|
adc (ZPSymBufPtr),y
|
||||||
sta (ZPSymBufPtr),y
|
sta (ZPSymBufPtr),y
|
||||||
|
|
||||||
* clc
|
* clc
|
||||||
|
|
||||||
.99 rts
|
.99 rts
|
||||||
|
|
||||||
.1 txa
|
.1 txa
|
||||||
ldy #SYM.SizeOf
|
ldy #SYM.SizeOf
|
||||||
cmp (ZPSymBufPtr),y
|
cmp (ZPSymBufPtr),y
|
||||||
bcs .2
|
bcs .2
|
||||||
|
|
||||||
sta (ZPSymBufPtr),y
|
sta (ZPSymBufPtr),y
|
||||||
|
|
||||||
.2 jmp SYM.Add0000 Add Y/A Offset (always 0 for union)
|
.2 jmp SYM.Add0000 Add Y/A Offset (always 0 for union)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TYPE.ENUM
|
TYPE.ENUM
|
||||||
|
@ -254,7 +254,7 @@ TYPE.NewTag >LDA.G CC.hTags
|
||||||
|
|
||||||
jsr CC.SkipX
|
jsr CC.SkipX
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TYPE.GetTag >PUSHB.G CC.hTags
|
TYPE.GetTag >PUSHB.G CC.hTags
|
||||||
>PUSHW ZPLineBufPtr
|
>PUSHW ZPLineBufPtr
|
||||||
|
@ -304,7 +304,7 @@ TYPE.UNSIGNED clc
|
||||||
|
|
||||||
cpx #SYM.T.UCHAR
|
cpx #SYM.T.UCHAR
|
||||||
bcc .9 void
|
bcc .9 void
|
||||||
|
|
||||||
cpx #SYM.T.SLONG+1 only char int long allowed
|
cpx #SYM.T.SLONG+1 only char int long allowed
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
@ -323,18 +323,18 @@ TYPE.UNSIGNED clc
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TYPE.SHORT jsr CC.CheckSpace
|
TYPE.SHORT jsr CC.CheckSpace
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>LDYA L.CC.TYPES
|
>LDYA L.CC.TYPES
|
||||||
jsr CC.LookupID
|
jsr CC.LookupID
|
||||||
|
|
||||||
bcs TYPE.UCHAR
|
bcs TYPE.UCHAR
|
||||||
|
|
||||||
cpx #4 only int allowed
|
cpx #4 only int allowed
|
||||||
beq TYPE.SCHAR
|
beq TYPE.SCHAR
|
||||||
|
|
||||||
.9 lda #E.CSYN
|
.9 lda #E.CSYN
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TYPE.VOID lda #SYM.T.VOID
|
TYPE.VOID lda #SYM.T.VOID
|
||||||
bra TYPE.GetQ
|
bra TYPE.GetQ
|
||||||
|
@ -377,10 +377,10 @@ TYPE.GetQ2 jsr CC.GetCharNB
|
||||||
bcs .9 more than ***
|
bcs .9 more than ***
|
||||||
|
|
||||||
sta (pStack),y
|
sta (pStack),y
|
||||||
|
|
||||||
jsr CORE.GetNCharNB
|
jsr CORE.GetNCharNB
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
.9 lda #E.CSYN
|
.9 lda #E.CSYN
|
||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
|
@ -391,7 +391,7 @@ TYPE.GetQ2 jsr CC.GetCharNB
|
||||||
>LDYA L.CC.FTYPES int fastcall f() ?
|
>LDYA L.CC.FTYPES int fastcall f() ?
|
||||||
jsr CC.LookupID
|
jsr CC.LookupID
|
||||||
bcs .8 next char is an identifier
|
bcs .8 next char is an identifier
|
||||||
|
|
||||||
ldy #1
|
ldy #1
|
||||||
lda (pStack),y
|
lda (pStack),y
|
||||||
ora #SYM.Q.FUNC+SYM.Q.FASTCALL
|
ora #SYM.Q.FUNC+SYM.Q.FASTCALL
|
||||||
|
@ -399,9 +399,9 @@ TYPE.GetQ2 jsr CC.GetCharNB
|
||||||
|
|
||||||
jsr CORE.GetNCharNB
|
jsr CORE.GetNCharNB
|
||||||
bcs .9 next char is an identifier, ",", "(",")"
|
bcs .9 next char is an identifier, ",", "(",")"
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* in : Y,A = type/qual
|
* in : Y,A = type/qual
|
||||||
* out : X = size
|
* out : X = size
|
||||||
|
|
14
BIN/CC.S.txt
14
BIN/CC.S.txt
|
@ -541,17 +541,17 @@ PrintVerboseMsg
|
||||||
.DO _DBG_SCOPE=1
|
.DO _DBG_SCOPE=1
|
||||||
>PUSHW L.MSG.DEBUG.SC
|
>PUSHW L.MSG.DEBUG.SC
|
||||||
jsr SCOPE.Push
|
jsr SCOPE.Push
|
||||||
|
|
||||||
lda ScopePtr
|
lda ScopePtr
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
|
||||||
tay
|
tay
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
>PUSHB (ScopeStk),y
|
>PUSHB (ScopeStk),y
|
||||||
iny
|
iny
|
||||||
>PUSHB (ScopeStk),y
|
>PUSHB (ScopeStk),y
|
||||||
|
|
||||||
>PUSHBI 5
|
>PUSHBI 5
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
* >DEBUG
|
* >DEBUG
|
||||||
|
@ -670,12 +670,12 @@ MSG.DEBUG.SYMNL .CZ "New (%s) ID=%H[%H],T=%h,Q=%h,SC=%h "
|
||||||
MSG.DEBUG.SYMSL .CZ "Sto ID=%H,T=%h,Q=%h,SC=%h\r\n"
|
MSG.DEBUG.SYMSL .CZ "Sto ID=%H,T=%h,Q=%h,SC=%h\r\n"
|
||||||
.FIN
|
.FIN
|
||||||
.DO _DBG_SCOPE=1
|
.DO _DBG_SCOPE=1
|
||||||
MSG.DEBUG.SCIN .CZ "Scope { %H (%d:%h:%h)\r\n"
|
MSG.DEBUG.SCIN .CZ "Scope { %H (%h:%h:%h)\r\n"
|
||||||
MSG.DEBUG.SC .CZ "Scope = %H (%d:%h:%h)\r\n"
|
MSG.DEBUG.SC .CZ "Scope = %H (%h:%h:%h)\r\n"
|
||||||
MSG.DEBUG.SCOUT .CZ "Scope } %H (%d:%h:%h) -> "
|
MSG.DEBUG.SCOUT .CZ "Scope } %H (%h:%h:%h) -> "
|
||||||
.FIN
|
.FIN
|
||||||
.DO _DBG_OUT=1
|
.DO _DBG_OUT=1
|
||||||
MSG.DEBUG.CSOUT .CZ "\r\n%H-"
|
MSG.DEBUG.CSOUT .CZ "\r\n%H-"
|
||||||
MSG.DEBUG.OUT .CZ "%h"
|
MSG.DEBUG.OUT .CZ "%h"
|
||||||
.FIN
|
.FIN
|
||||||
MSG.VERBOSE .CZ "%5D> %s\r\n"
|
MSG.VERBOSE .CZ "%5D> %s\r\n"
|
||||||
|
|
|
@ -28,15 +28,15 @@ IO.8255.S.ByteRcvd .EQ %00100000
|
||||||
IO.8255.Mode .EQ $C083-$88
|
IO.8255.Mode .EQ $C083-$88
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.MA READBYTE
|
.MA READBYTE
|
||||||
lda #IO.8255.S.ByteRcvd
|
:1 lda IO.8255.S,x
|
||||||
:1 bit IO.8255.S,x
|
and #IO.8255.S.ByteRcvd
|
||||||
beq :1
|
beq :1
|
||||||
lda IO.8255.Data,x
|
lda IO.8255.Data,x
|
||||||
.EM
|
.EM
|
||||||
|
|
||||||
.MA WRITEBYTE
|
.MA WRITEBYTE
|
||||||
sta IO.8255.Data,x
|
sta IO.8255.Data,x
|
||||||
:1 bit IO.8255.S,x
|
:1 lda IO.8255.S,x
|
||||||
bpl :1
|
bpl :1
|
||||||
.EM
|
.EM
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -435,11 +435,13 @@ WRITE php
|
||||||
ldy #S.IOCTL.BYTECNT
|
ldy #S.IOCTL.BYTECNT
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
>WRITEBYTE
|
>WRITEBYTE
|
||||||
|
lda (ZPIOCTL),y
|
||||||
eor #$ff
|
eor #$ff
|
||||||
sta Counter
|
sta Counter
|
||||||
iny
|
iny
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
>WRITEBYTE
|
>WRITEBYTE
|
||||||
|
lda (ZPIOCTL),y
|
||||||
eor #$ff
|
eor #$ff
|
||||||
sta Counter+1
|
sta Counter+1
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ NEW
|
||||||
int testf1() {
|
int testf1() {
|
||||||
puts("testf1 called!");
|
puts("testf1 called!");
|
||||||
int r = 1029;
|
int r = 1029;
|
||||||
if (r == 1029) {
|
if (r == 1029) {
|
||||||
printf("testf1 will return %D...\r\n", r);
|
printf("testf1 will return %D...\r\n", r);
|
||||||
}
|
}
|
||||||
return r;
|
return r;
|
||||||
|
@ -19,7 +19,7 @@ int testf2() {
|
||||||
void testf3(char *msg)
|
void testf3(char *msg)
|
||||||
{
|
{
|
||||||
puts(msg);
|
puts(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
int testf4(int arg1, int arg2) {
|
int testf4(int arg1, int arg2) {
|
||||||
printf("arg1=%D, arg2=%D\r\n", arg1, arg2);
|
printf("arg1=%D, arg2=%D\r\n", arg1, arg2);
|
||||||
|
@ -36,23 +36,23 @@ int main(int argc, char *argv[]) {
|
||||||
|
|
||||||
int r=testf1();
|
int r=testf1();
|
||||||
printf("testf1() returned %D\r\n", r);
|
printf("testf1() returned %D\r\n", r);
|
||||||
getchar();
|
getchar();
|
||||||
r=testf2();
|
r=testf2();
|
||||||
printf("testf2() returned %D\r\n", r);
|
printf("testf2() returned %D\r\n", r);
|
||||||
getchar();
|
getchar();
|
||||||
testf3("testf3() void function...");
|
testf3("testf3() void function...");
|
||||||
getchar();
|
getchar();
|
||||||
i = testf4(34, 43);
|
i = testf4(34, 43);
|
||||||
printf("testf4() returned %D\r\n", i);
|
printf("testf4() returned %D\r\n", i);
|
||||||
getchar();
|
|
||||||
printf("main() argc=%D\r\n", argc);
|
|
||||||
|
|
||||||
for(int i=0; i<=argc; i++) {
|
printf("main() argc=%D\r\n", argc);
|
||||||
printf(" argv[%I] : %s\r\n", i, argv[i]);
|
getchar();
|
||||||
}
|
|
||||||
|
for(int i=0; i<=argc; i++) printf(" argv[%D]=%s\r\n", i, argv[i]);
|
||||||
puts("set main() return code=0x73");
|
|
||||||
return 115; // return E_INUM
|
printf("i = %D\r\n", i);
|
||||||
|
puts("set main() return code=0x73");
|
||||||
|
return 115; // return E_INUM
|
||||||
}
|
}
|
||||||
MAN
|
MAN
|
||||||
TEXT root/ctest/testargs.c
|
TEXT root/ctest/testargs.c
|
||||||
|
|
|
@ -2,6 +2,9 @@ NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/* C-style comments....
|
||||||
|
...multi-lines */
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
puts("Press a key");
|
puts("Press a key");
|
||||||
|
@ -10,11 +13,16 @@ int main(int argc, char *argv[])
|
||||||
if (c == 13)
|
if (c == 13)
|
||||||
{
|
{
|
||||||
puts("ENTER");
|
puts("ENTER");
|
||||||
|
// C99 comments: skip LF
|
||||||
|
getchar();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
if (c == 32)
|
||||||
puts("Not ENTER");
|
{
|
||||||
}
|
puts("Not ENTER...but SPACE");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
puts("Some other key...");
|
||||||
|
|
||||||
int i=0;
|
int i=0;
|
||||||
while (i++ < 10) {
|
while (i++ < 10) {
|
||||||
|
|
|
@ -8,8 +8,8 @@ void *pBuf = malloc(256);
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
|
|
||||||
for (int i=0; i<=argc; i++) printf("argv[%I]=%s\r\n", i, argv[i]);
|
for (int i=0; i<=argc; i++) printf("argv[%D]=%s\r\n", i, argv[i]);
|
||||||
|
getchar();
|
||||||
strcpy(pBuf, argv[0]);
|
strcpy(pBuf, argv[0]);
|
||||||
strcat(pBuf, ".c");
|
strcat(pBuf, ".c");
|
||||||
printf("Filename=%s\r\n", pBuf);
|
printf("Filename=%s\r\n", pBuf);
|
||||||
|
|
|
@ -102,7 +102,7 @@ TERMX.OPEN jsr TERMX.ISOPENED
|
||||||
tax
|
tax
|
||||||
* lda ZPhFD
|
* lda ZPhFD
|
||||||
lda IO.hFD in ZPTMP
|
lda IO.hFD in ZPTMP
|
||||||
|
|
||||||
sta CLRWRITEAUX
|
sta CLRWRITEAUX
|
||||||
sta A2osX.SCRNDEVS,x
|
sta A2osX.SCRNDEVS,x
|
||||||
sta SETWRITEAUX
|
sta SETWRITEAUX
|
||||||
|
@ -124,7 +124,7 @@ TERMX.CONTROL lda (ZPDCBPtr) #S.DCB.TTY.DEVID
|
||||||
sta CLRMIXED
|
sta CLRMIXED
|
||||||
|
|
||||||
jsr TERMX.SCRCPY
|
jsr TERMX.SCRCPY
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
ldy #S.DCB.TTY.bTITLE
|
ldy #S.DCB.TTY.bTITLE
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
|
@ -376,6 +376,7 @@ TERMX.OUT.DEL ldy #S.DCB.TTY.CH
|
||||||
.1 ldy #S.DCB.TTY.CV
|
.1 ldy #S.DCB.TTY.CV
|
||||||
lda (ZPDCBPtr),y
|
lda (ZPDCBPtr),y
|
||||||
beq TERMX.OUT.BS.8
|
beq TERMX.OUT.BS.8
|
||||||
|
|
||||||
dec
|
dec
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
|
|
||||||
|
@ -536,7 +537,7 @@ TERMX.CSI.Exec stz CsiH
|
||||||
.DA Csi.Home H
|
.DA Csi.Home H
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* CRLF : ESC [ 20
|
* CRLF : ESC [ 20
|
||||||
* LINEWRAP : ESC [ ? 7
|
* LINEWRAP : ESC [ ? 7
|
||||||
* CUR : ESC [ ? 25
|
* CUR : ESC [ ? 25
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Csi.SetM sec
|
Csi.SetM sec
|
||||||
|
@ -569,7 +570,7 @@ Csi.ResetM clc
|
||||||
|
|
||||||
ldy #S.DCB.TTY.bLINEWRAP
|
ldy #S.DCB.TTY.bLINEWRAP
|
||||||
bra .8
|
bra .8
|
||||||
|
|
||||||
.2 cmp #25
|
.2 cmp #25
|
||||||
bne .98
|
bne .98
|
||||||
|
|
||||||
|
@ -579,7 +580,7 @@ Csi.ResetM clc
|
||||||
ror
|
ror
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
bmi .80
|
bmi .80
|
||||||
|
|
||||||
jsr TERMX.CUROFF
|
jsr TERMX.CUROFF
|
||||||
|
|
||||||
clc
|
clc
|
||||||
|
@ -588,7 +589,7 @@ Csi.ResetM clc
|
||||||
.8 plp
|
.8 plp
|
||||||
ror
|
ror
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
|
|
||||||
.80 clc
|
.80 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
@ -597,22 +598,20 @@ Csi.ResetM clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Csi.DispAttr ldx CsiPCnt
|
Csi.DispAttr ldx CsiPCnt
|
||||||
bne .10
|
beq .10
|
||||||
|
|
||||||
jmp RESETATTR
|
ldx #0
|
||||||
|
|
||||||
.10 ldx #0
|
|
||||||
|
|
||||||
.1 lda CsiP,x
|
.1 lda CsiP,x
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
jsr RESETATTR
|
jsr .10
|
||||||
bra .7
|
bra .7
|
||||||
|
|
||||||
.2 eor #7
|
.2 eor #7
|
||||||
bne .7
|
bne .7
|
||||||
|
|
||||||
.3 ldy #S.DCB.TTY.bNORMAL
|
ldy #S.DCB.TTY.bNORMAL
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
|
|
||||||
.7 inx
|
.7 inx
|
||||||
|
@ -621,15 +620,23 @@ Csi.DispAttr ldx CsiPCnt
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
.10 lda #$80
|
||||||
|
ldy #S.DCB.TTY.bNORMAL
|
||||||
|
sta (ZPDCBPtr),y
|
||||||
|
clc
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Csi.Query ldx CsiPCnt
|
Csi.Query ldx CsiPCnt
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
dex
|
dex
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
lda CsiP
|
lda CsiP
|
||||||
cmp #6
|
cmp #6
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
lda #C.ESC
|
lda #C.ESC
|
||||||
jsr TERMX.COUT
|
jsr TERMX.COUT
|
||||||
lda #'['
|
lda #'['
|
||||||
|
@ -650,20 +657,29 @@ Csi.Query ldx CsiPCnt
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Csi.Scroll ldy CsiPCnt
|
Csi.Scroll lda #0
|
||||||
bne .1
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
ldx #23
|
ldx #23
|
||||||
bra .8
|
|
||||||
|
|
||||||
.1 cpy #2
|
ldy CsiPCnt
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
cpy #2
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
lda CsiP
|
ldy CsiP
|
||||||
dec
|
dey
|
||||||
ldx CsiP+1
|
cpy #24
|
||||||
dex
|
bcs .9
|
||||||
|
|
||||||
|
tya
|
||||||
|
|
||||||
|
ldy CsiP+1
|
||||||
|
dey
|
||||||
|
cpy #24
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
phy
|
||||||
|
plx
|
||||||
|
|
||||||
.8 ldy #S.DCB.TTY.SCROLLTOP
|
.8 ldy #S.DCB.TTY.SCROLLTOP
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
|
@ -829,14 +845,19 @@ TERMX.IAC ldy #S.DCB.TTY.INBUF
|
||||||
|
|
||||||
cmp #SE
|
cmp #SE
|
||||||
bne Csi.Home.8 wait for ending SE....keep bIACMode
|
bne Csi.Home.8 wait for ending SE....keep bIACMode
|
||||||
|
|
||||||
bra COUT.IAC.SB
|
bra COUT.IAC.SB
|
||||||
|
|
||||||
ldy #S.DCB.TTY.INBUF+1
|
ldy #S.DCB.TTY.INBUF+1
|
||||||
lda (ZPDCBPtr),y get back CMD
|
lda (ZPDCBPtr),y get back CMD
|
||||||
|
|
||||||
.1 cmp #IAC
|
.1 cmp #IAC
|
||||||
beq COUT.IAC.SB.9
|
beq COUT.IAC.SB.9
|
||||||
|
|
||||||
sec
|
sec
|
||||||
sbc #WILL
|
sbc #WILL
|
||||||
bcc COUT.IAC.SB.9
|
bcc COUT.IAC.SB.9
|
||||||
|
|
||||||
asl
|
asl
|
||||||
tax
|
tax
|
||||||
|
|
||||||
|
@ -855,11 +876,14 @@ COUT.IAC.SB ldy #S.DCB.TTY.INBUF+2
|
||||||
|
|
||||||
cmp #TN.O.TTYPE
|
cmp #TN.O.TTYPE
|
||||||
bne COUT.IAC.SB.9
|
bne COUT.IAC.SB.9
|
||||||
|
|
||||||
iny
|
iny
|
||||||
lda (ZPDCBPtr),y
|
lda (ZPDCBPtr),y
|
||||||
cmp #SB.SEND
|
cmp #SB.SEND
|
||||||
bne COUT.IAC.SB.9
|
bne COUT.IAC.SB.9
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
|
|
||||||
.1 lda SB.IS.TTYPE,x
|
.1 lda SB.IS.TTYPE,x
|
||||||
jsr TERMX.COUT
|
jsr TERMX.COUT
|
||||||
inx
|
inx
|
||||||
|
@ -872,12 +896,15 @@ COUT.IAC.WILL ldx #WILLDO.CNT-1
|
||||||
|
|
||||||
.1 cmp WILLDO,x
|
.1 cmp WILLDO,x
|
||||||
beq .7
|
beq .7
|
||||||
|
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
ldx #WILLDONT.CNT-1
|
ldx #WILLDONT.CNT-1
|
||||||
|
|
||||||
.2 cmp WILLDONT,x
|
.2 cmp WILLDONT,x
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
dex
|
dex
|
||||||
bpl .2
|
bpl .2
|
||||||
|
|
||||||
|
@ -893,6 +920,7 @@ COUT.IAC.DO ldx #DOWILL.CNT-1
|
||||||
|
|
||||||
.1 cmp DOWILL,x
|
.1 cmp DOWILL,x
|
||||||
beq .7
|
beq .7
|
||||||
|
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
|
@ -900,6 +928,7 @@ COUT.IAC.DO ldx #DOWILL.CNT-1
|
||||||
|
|
||||||
.2 cmp DOWONT,x
|
.2 cmp DOWONT,x
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
dex
|
dex
|
||||||
bpl .2
|
bpl .2
|
||||||
|
|
||||||
|
@ -940,12 +969,6 @@ RESET ldy #S.DCB.TTY.M
|
||||||
|
|
||||||
jmp TERMX.CLRSCR
|
jmp TERMX.CLRSCR
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
RESETATTR lda #$80
|
|
||||||
ldy #S.DCB.TTY.bNORMAL
|
|
||||||
sta (ZPDCBPtr),y
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
ENQ ldx #0
|
ENQ ldx #0
|
||||||
|
|
||||||
.1 lda ENQ.String,x
|
.1 lda ENQ.String,x
|
||||||
|
@ -968,7 +991,7 @@ TERMX.OUT.LF.1 ldy #S.DCB.TTY.CV
|
||||||
lda (ZPDCBPtr),y
|
lda (ZPDCBPtr),y
|
||||||
ldy #S.DCB.TTY.SCROLLBOT
|
ldy #S.DCB.TTY.SCROLLBOT
|
||||||
cmp (ZPDCBPtr),y
|
cmp (ZPDCBPtr),y
|
||||||
beq SCROLL.UP
|
bcs SCROLL.UP
|
||||||
|
|
||||||
inc
|
inc
|
||||||
ldy #S.DCB.TTY.CV
|
ldy #S.DCB.TTY.CV
|
||||||
|
@ -1087,7 +1110,7 @@ TERMX.CBLNK jsr TERMX.CCheck
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
asl
|
asl
|
||||||
beq TERMX.CUROFF.1
|
beq TERMX.CUROFF.1
|
||||||
|
|
||||||
jsr GetCharAtCurPos
|
jsr GetCharAtCurPos
|
||||||
bcs TERMX.RTS Out of screen
|
bcs TERMX.RTS Out of screen
|
||||||
|
|
||||||
|
@ -1100,26 +1123,26 @@ TERMX.CUROFF jsr TERMX.CCheck
|
||||||
|
|
||||||
asl
|
asl
|
||||||
beq TERMX.RTS already off
|
beq TERMX.RTS already off
|
||||||
|
|
||||||
TERMX.CUROFF.1 jsr GetCharAtCurPos
|
TERMX.CUROFF.1 jsr GetCharAtCurPos
|
||||||
bcs TERMX.RTS Out of screen
|
bcs TERMX.RTS Out of screen
|
||||||
|
|
||||||
jmp SetCharAtY.SCR
|
jmp SetCharAtY.SCR
|
||||||
|
|
||||||
TERMX.RTS rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TERMX.CCheck sec
|
TERMX.CCheck sec
|
||||||
|
|
||||||
bit bActive
|
bit bActive
|
||||||
bpl .9
|
bpl .9
|
||||||
|
|
||||||
ldy #S.DCB.TTY.bCURON
|
ldy #S.DCB.TTY.bCURON
|
||||||
lda (ZPDCBPtr),y
|
lda (ZPDCBPtr),y
|
||||||
bpl .9
|
bpl .9
|
||||||
|
|
||||||
clc
|
clc
|
||||||
|
|
||||||
.9 rts
|
.9
|
||||||
|
|
||||||
|
TERMX.RTS rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DecOut jsr MATH.A2STR10NP
|
DecOut jsr MATH.A2STR10NP
|
||||||
|
|
||||||
|
@ -1537,7 +1560,7 @@ RESET.VALUES .DA #0 MODE
|
||||||
.DA #S.DCB.TTY.OUTBUF OUTHEAD
|
.DA #S.DCB.TTY.OUTBUF OUTHEAD
|
||||||
.DA #S.DCB.TTY.INBUF INBUFFER
|
.DA #S.DCB.TTY.INBUF INBUFFER
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TERMX.DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ
|
TERMX.DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ
|
||||||
.DA #0,#0,#0
|
.DA #0,#0,#0
|
||||||
.PS "A2osX VT100 term"
|
.PS "A2osX VT100 term"
|
||||||
.DA #S.DIB.T.CHAR
|
.DA #S.DIB.T.CHAR
|
||||||
|
|
Loading…
Reference in New Issue