This commit is contained in:
burniouf 2022-12-13 07:55:13 +01:00
parent 6a46b55ff8
commit cdd2a24149
15 changed files with 333 additions and 278 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -223,10 +223,31 @@ CODE.EmitByte clc if Pass 1...
phx
phy
tax
pha
.DO _DBG_OUT=1
lda ZPCCCode
and #$1F
bne .11
>PUSHW L.MSG.DEBUG.CSOUT
>PUSHW ZPCCCode
>PUSHBI 2
>SYSCALL PrintF
.11 >PUSHW L.MSG.DEBUG.OUT
pla
pha
>PUSHA
>PUSHBI 1
>SYSCALL PrintF
.FIN
>PUSHB.G CC.hOutFile
txa
pla
>PUSHA
>SYSCALL fputc
@ -247,9 +268,9 @@ CODE.EmitDATA clc
phx
phy
tax
>PUSHB.G CC.hOutFile
txa
>PUSHA
>SYSCALL fputc
ply

View File

@ -135,10 +135,10 @@ CORE.CompileLine
jsr CORE.GetNCharNB Skip '}'
jsr STMT.CPStmt.END
bcs .9
bra CORE.CompileLine
bcc CORE.CompileLine
rts
*--------------------------------------
.3 cmp #';' End of Stmt ?
bne .4
@ -333,21 +333,6 @@ CC.SListLookup >PUSHA hSList
*--------------------------------------
* CT Stack
*--------------------------------------
CC.PushTQ ldy #SYM.Q
lda (ZPSymBufPtr),y
and #$FC ignore SYM.Q.FUNC+SYM.Q.FASTCALL
jsr CC.Push
bcs CC.Push.RTS
lda (ZPSymBufPtr) SYM.T
bra CC.Push
*--------------------------------------
CC.PushCS lda ZPCCCode+1
jsr CC.Push
bcs CC.Push.RTS
lda ZPCCCode
*--------------------------------------
CC.Push ldy CStackPtr
dey
beq .9
@ -360,50 +345,6 @@ CC.Push ldy CStackPtr
.9 lda #E.STKOVERFLOW
sec
CC.Push.RTS rts
*--------------------------------------
CC.PopYA ldy CStackPtr
beq .9
lda (ZPCCStack),y
pha
iny
beq .90
lda (ZPCCStack),y
iny
sty CStackPtr
ply
clc
rts
.90 pla
.9 lda #E.STACKERROR
sec
rts
*--------------------------------------
CC.Pop jsr CC.Get
inc CStackPtr
* clc
.9 rts
*--------------------------------------
CC.Get ldy CStackPtr
beq .9
lda (ZPCCStack),y
clc
rts
.9 lda #E.STACKERROR
sec
rts
*--------------------------------------
* ZPLineBufPtr related Subs.....

View File

@ -117,18 +117,7 @@ DIR.INCLUDE lda #0 >STZ.G PathBuf
lda #0
sta (pData),y terminate string
dey
lda (pData),y
cmp #'h'
bne .5
bit bPass2
bpl .5
clc
rts
.5 >LDYA pData
>LDYA pData
jmp FIO.FOpen
*--------------------------------------
DIR.IFDEF

View File

@ -83,27 +83,25 @@ F.Decl ldy #SYM.Q
bcs .99
jsr SCOPE.Close discard local scope
bcs .99
stz LocalPtr reset for DEBUG Message
clc
* clc
rts
*--------------------------------------
.7 cmp #'{'
bne .9
>DEBUG
*--------------------------------------
F.Def bit bInitCode
bmi .1
dec bInitCode
lda #$60 RTS
jsr CODE.EmitByte Close INIT code
bcs .99
.1 >LDYA ZPCCCode f() Code starts HERE
jsr SYM.SetAddrYA
dec bInitCode
.1 jsr SYM.SetAddrCCode f() Code starts HERE
jsr SYM.Update
bcs .99
@ -114,7 +112,12 @@ F.Def bit bInitCode
jsr STMT.NewCPS00
bcs .99
lda LocalPtr
lda #'F'
jsr SYM.LookupLabelA
bcs .99
txa
jsr CODE.LDAI A = f() ARGS size
bcs .99
@ -123,6 +126,21 @@ F.Def bit bInitCode
.99 rts
*--------------------------------------
F.Def.END lda #'X' define EXIT Label
jsr SYM.NewLabelA
bcs .9
>LDYA L.PCC.LEAVE
jsr CODE.EmitPCC
bcs .9
jsr SCOPE.Close
bcs .9
jmp STMT.Close
.9 rts
*--------------------------------------
F.DeclGetTQ lda (ZPLineBufPtr)
cmp #'.'
bne .5
@ -195,7 +213,7 @@ F.NewArg >LDYA.G CC.SymID
>LDYA ZPPtr2
ldx #SYM.SC.AUTO
sec Reset Buffer
* >DEBUG
jsr SYM.New
bcs .9
@ -211,18 +229,6 @@ F.NewArg >LDYA.G CC.SymID
.9 rts
*--------------------------------------
F.Def.END >LDYA L.PCC.LEAVE
jsr CODE.EmitPCC
bcs .9
jsr SCOPE.Close
stz LocalPtr back to global
* >DEBUG
clv pop context
clc
.9 rts
*--------------------------------------
* in : ZPSymPtr
* Y,A = Expected T/Q
*--------------------------------------
@ -245,16 +251,8 @@ F.CallRetV sec
>STYA ZPPtr2
ror ZPPtr1+1 bRetV
* bpl .20 no return value on stack
* ldy #SYM.Addr+1
* lda (ZPLookupSymPtr),y
* beq .20 SYS/LIB/FPU call, no ret value space
jsr EXP.GetSymSizeOfInAXC
jsr CODE.nAddLocal
* >DEBUG
.20 jsr CORE.GetNCharNB skip '('
jsr CORE.GetNCharNB skip '('
bcs .90
jsr SYM.LookupCheckTQ
@ -273,9 +271,9 @@ F.CallRetV sec
lda #0 Expected T/Q = 0 if VARIADIC
tay
* >DEBUG
.4 and #$F0 CONST+VOLATILE+FUNC+FASTCALL
* >DEBUG
jsr EXP.Eval
bcs .93

View File

@ -3,9 +3,9 @@ NEW
*--------------------------------------
* Built in Keywords
*--------------------------------------
KW.IF jsr STMT.NewCPS00
KW.IF jsr SCOPE.New
bcs .99
jsr CC.GetCharNB
bcs .9
@ -34,6 +34,9 @@ KW.IF jsr STMT.NewCPS00
cmp #')'
bne .9
jsr STMT.NewCPS00
bcs .99
jmp STMT.SetCPSType
.9 lda #E.CSYN
@ -54,7 +57,11 @@ KW.IF.END jsr CORE.GetCharNBNL
jsr SYM.NewLabelA
bcs .99
clv pop context
jsr SCOPE.Close
bcs .99
jmp STMT.Close
rts
*--------------------------------------
.2 lda #'X'
@ -73,11 +80,7 @@ KW.IF.END jsr CORE.GetCharNBNL
ldy CStackPtr
sta (ZPCCStack),y
jsr STMT.SetCPSType
bcs .99
bit .99 set V : DONT pop context
rts
jmp STMT.SetCPSType reuse IF STMT
.9 lda #E.CSYN
sec
@ -91,7 +94,11 @@ KW.ELSE.END lda #'X' define EXIT Label
jsr SYM.NewLabelA
bcs .99
jsr SCOPE.Close
bcs .99
clv pop context
* clc
.99 rts
*--------------------------------------
KW.WHILE jsr SCOPE.New
@ -129,10 +136,10 @@ KW.WHILE jsr SCOPE.New
cmp #')'
bne .9
clc
rts
* jmp STMT.SetCPSType
jsr STMT.NewCPS00
bcs .99
jmp STMT.SetCPSType
.9 lda #E.CSYN
sec
@ -154,19 +161,23 @@ KW.WHILE.END >LDYA L.PCC.SLEEP
jsr SYM.NewLabelA
bcs .99
* clv pop context
bit .99
jsr SCOPE.Close
bcs .99
jmp STMT.Close
.99 rts
*--------------------------------------
KW.DO jsr STMT.NewCPS00
KW.DO jsr SCOPE.New
bcs .99
lda #'C' define CONT Label
jsr SYM.NewLabelA
bcs .99
jsr STMT.NewCPS00
bcs .99
jmp STMT.SetCPSType
.99 rts
@ -209,10 +220,11 @@ KW.DO.END >LDYA L.CC.KW2.DO Check allowed KW for DO....
jsr CORE.GetNCharNB
bcs .9
clv pop context
clc
rts
jsr SCOPE.Close
bcs .99
jmp STMT.Close
.9 lda #E.CSYN
sec
@ -235,17 +247,17 @@ KW.DO.END >LDYA L.CC.KW2.DO Check allowed KW for DO....
* }
*--------------------------------------
KW.FOR jsr CC.GetCharNB
bcs .29
bcs .19
cmp #'('
bne .29
jsr STMT.NewCPS00
bcs .29
jsr CORE.GetNCharNB skip '('
bcs .29
jsr SCOPE.New
bcs .19
>LDYA L.CC.TYPEQUAL
jsr CC.LookupID
bcs .1
@ -255,26 +267,28 @@ KW.FOR jsr CC.GetCharNB
.19 rts
.29 lda #E.CSYN
sec
rts
*--------------------------------------
.1 jsr STMT.Get get s1
bcs .19
* jsr KW.StackDiscard
.2 jsr CC.GetCharNB
bcs .9
bcs .29
cmp #';'
bne .9
bne .29
jsr CORE.GetNCharNB skip ';'
bcs .9
bcs .29
*--------------------------------------
lda #'L' LOOP Label
jsr SYM.NewLabelA
bcs .99
jsr EXP.Eval00 get e2
.29 bcs .99
bcs .99
jsr KW.TestZero
bcs .99
@ -309,8 +323,6 @@ KW.FOR jsr CC.GetCharNB
jsr STMT.Get get s3
bcs .99
* jsr KW.StackDiscard
jsr CC.GetCharNB
bcs .9
@ -328,6 +340,9 @@ KW.FOR jsr CC.GetCharNB
jsr SYM.NewLabelA
bcs .99
jsr STMT.NewCPS00
bcs .9
jmp STMT.SetCPSType
.9 lda #E.CSYN
@ -343,8 +358,11 @@ KW.FOR.END lda #$60
jsr SYM.NewLabelA
bcs .99
clv pop context
jsr SCOPE.Close
bcs .99
jmp STMT.Close
.99 rts
*--------------------------------------
KW.SWITCH jsr CC.GetCharNB
@ -494,7 +512,7 @@ KW.SWITCH.END lda #'J' define JMP Label
lda (ZPCCStack),y
>SYSCALL FreeMem
clv pop context
jmp STMT.Close
.99 rts
*--------------------------------------
@ -593,26 +611,26 @@ KW.DEFAULT ldy CStackPtr
KW.BREAK lda #'B'
jsr SYM.LookupLabelA
bcs .9
bcs .99
lda #$4C emit JMP break
jmp CODE.TOABSYX
.9 lda #E.CSYN
sec
rts
.99 rts
*--------------------------------------
KW.CONTINUE lda #'C'
jsr SYM.LookupLabelA
bcs .9
bcs .99
lda #$4C emit JMP cont
jmp CODE.TOABSYX
.9 lda #E.CSYN
sec
rts
.99 rts
*--------------------------------------
KW.RETURN ldx ZPLineBufPtr
phx
@ -646,8 +664,16 @@ KW.RETURN ldx ZPLineBufPtr
jsr CODE.SetRetValue
bcs .99
>LDYA L.PCC.LEAVE
jmp CODE.EmitPCC
lda #'X'
jsr SYM.LookupLabelA
bcs .9
lda #$4C emit JMP exit
jmp CODE.TOABSYX
.9 lda #E.CSYN
sec
rts
.99 rts
*--------------------------------------

View File

@ -33,8 +33,7 @@ CC.Link >LDYA L.MSG.LINKING
.2 ldy #SYM.SC
lda (ZPSymBufPtr),y
cmp #SYM.SC.TYPEDEF
bcs .7
bne .7 SYM.SC.STATIC
ldy #SYM.Addr+1
lda (ZPSymBufPtr),y
@ -55,7 +54,7 @@ CC.Link >LDYA L.MSG.LINKING
rts
.9 >LDA.G bTrace
bmi .2
bmi .90
jsr CC.Link.Dump
@ -163,9 +162,19 @@ CC.Link.Update ldy #SYM.Addr
>PUSHW ZPPtr1 SymID
>PUSHW ZPSymBufPtr
>PUSHBI 0
ldy #SYM.Q
lda (ZPSymBufPtr),y
and #SYM.Q.FUNC
bne .1
ldy #SYM.DefSize
lda (ZPSymBufPtr),y
>PUSHA
bra .2
.1 lda #SYM.F.MAX
.2 >PUSHA
>SYSCALL SListSetData
rts
*--------------------------------------

View File

@ -145,7 +145,7 @@ PCC.FH.RUN lda #0
>PUSHA int ARGC (lo byte)
>PUSHW pData *char[] ARGV
* >DEBUG
>DEBUG
PCC.FH.MAIN .EQ *-PCC.FH.ORG+1
jsr $FFFF jsr main
>PULLA

View File

@ -23,6 +23,15 @@ SCOPE.New ldy ScopeIdx
sta (pData),y
dec bLocalScope
.DO _DBG_SCOPE=1
>PUSHW L.MSG.DEBUG.SCIN
jsr SCOPE.Push
>PUSHB LocalPtr
>PUSHBI 3
>SYSCALL PrintF
.FIN
clc
rts
@ -30,7 +39,16 @@ SCOPE.New ldy ScopeIdx
sec
.99 rts
*--------------------------------------
SCOPE.Close ldy ScopeIdx
SCOPE.Close lda #'F' define FRAME SIZE
jsr SYM.NewLabelA
bcs .99
.DO _DBG_SCOPE=1
>PUSHW L.MSG.DEBUG.SCOUT
jsr SCOPE.Push
.FIN
ldy ScopeIdx
cpy #CC.ScopeIDs
beq *
@ -40,7 +58,18 @@ SCOPE.Close ldy ScopeIdx
inc bLocalScope
rts
.DO _DBG_SCOPE=1
>PUSHB LocalPtr
jsr SCOPE.Push
>PUSHBI 5
>SYSCALL PrintF
* >DEBUG
.FIN
clc
.99 rts
*--------------------------------------
SCOPE.Push ldy ScopeIdx

View File

@ -123,70 +123,71 @@ STMT.SetVar stz ExpState
*--------------------------------------
STMT.Stmt.END ldy CStackPtr
beq STMT.POP.8
beq STMT.POP.8 Global context
lda (ZPCCStack),y
bmi STMT.POP.8 local F context
* in an istruction ...
iny CPS.TERM
lda (ZPCCStack),y
cmp #'}'
beq STMT.POP.8
beq STMT.POP.8 in a CPS...
cmp #';' must be ';' on stack....
beq STMT.POP
beq STMT.End
STMT.POP.9 lda #E.STACKERROR
sec
rts
STMT.POP.8 clc
rts
STMT.POP.99 rts
*--------------------------------------
STMT.CPStmt.END ldy CStackPtr
beq STMT.POP.9
iny
lda (ZPCCStack),y
bpl .1
jmp F.Def.END local F context
.1 iny
lda (ZPCCStack),y CPS.TERM
cmp #'}' must be '}' on stack....
bne STMT.POP.9
STMT.POP dey CPS.KW
jsr SCOPE.Close
bcs STMT.POP.99
*--------------------------------------
STMT.End ldy CStackPtr CPS.KW
lda (ZPCCStack),y
jsr STMT.End
bcs .99
bvs .8 DONT POP reused context (ELSE....)
ldy #CPS.LOCAL
tax
jmp (J.CC.KW.END,x)
*--------------------------------------
STMT.Close ldy CStackPtr
iny
iny CPS.LOCAL
lda (ZPCCStack),y
sta LocalPtr
lda CStackPtr
* clc
clc
adc #CPS
sta CStackPtr
.8 clc
.99 rts
*--------------------------------------
STMT.End tax
bmi .8
jmp (J.CC.KW.END,x)
.8 jmp F.Def.END
*--------------------------------------
STMT.NewCPS00 lda #0
jsr CC.Push no T/Q
jsr CC.Push
bcs STMT.NewCPS.RTS
jsr CC.Push
bcs STMT.NewCPS.RTS
STMT.NewCPS lda LocalPtr Locals
jsr CC.Push
bcs .99
lda #0 bState
jsr CC.Push
bcs .99

View File

@ -11,7 +11,7 @@ SYM.New >STYA ZPPtr2 T/Q
bit bPass2
bpl SYM.New.1
* PASS 2
>PUSHB.G CC.hSyms
>PUSHW ZPLineBufPtr
jsr SCOPE.Push
@ -43,7 +43,7 @@ SYM.New.1 jsr SYM.BufInitYAXC set buf according C
>STYA.G CC.SymID Y,A = KeyID
jsr CC.SkipX X = KeyLen
.DO DBG_SYM=1
.DO _DBG_SYM=1
jsr SYM.DEBUG0
.FIN
*--------------------------------------
@ -185,22 +185,21 @@ SYM.SetAddrL ldy #SYM.SizeOf+1
lda (ZPSymBufPtr),y
bne .9
dey SYM.SizeOf
lda (ZPSymBufPtr),y
lda LocalPtr
tax
clc
adc LocalPtr
sta LocalPtr
dey SYM.SizeOf
adc (ZPSymBufPtr),y
bcs .9
sta LocalPtr
txa
ldy #SYM.Addr
sta (ZPSymBufPtr),y
ldy #SYM.SizeOf
lda (ZPSymBufPtr),y
jsr CODE.nAddLocal
clc
rts
@ -226,10 +225,10 @@ SYM.BufInitYAXC pha
.1 iny
sta (ZPSymBufPtr),y
cpy #SYM.DefSize-1
bne .1
cpy #SYM
bcc .1
iny #SYM.DefSize
ldy #SYM.DefSize
lda #SYM.Def
sta (ZPSymBufPtr),y
@ -453,52 +452,6 @@ SYM.AddByte pha
sec
rts
*--------------------------------------
SYM.NewLabelA bit bPass2
bmi .8
>STA.G CC.Label+1 _A = "B"reak, "C"ontinue...
>PUSHB.G CC.hSyms
>PUSHEA.G CC.Label
jsr SCOPE.Push
>SYSCALL SListNewKey
bcs .99
>STYA.G CC.SymID Y,A = KeyID
lda #SYM.T.VOID
sta (ZPSymBufPtr) #SYM.T
lda #SYM.Q.POINTER
ldy #SYM.Q
sta (ZPSymBufPtr),y
lda #SYM.SC.STATIC
iny #SYM.SC
sta (ZPSymBufPtr),y
lda #0
.1 iny
sta (ZPSymBufPtr),y
cpy #SYM.DefSize-1
bne .1
iny #SYM.DefSize
lda #SYM.Def
sta (ZPSymBufPtr),y
>LDYA ZPCCCode
jsr SYM.SetAddrYA
.DO DBG_SYM=1
jsr SYM.DEBUG0
.FIN
jmp SYM.Store
.8 clc
.99 rts
*--------------------------------------
SYM.Update sec
.HS 90 BCC
*--------------------------------------
@ -508,7 +461,7 @@ SYM.Store clc
php
.DO DBG_SYM=1
.DO _DBG_SYM=1
bcc .10
jsr SYM.DEBUG1
@ -613,6 +566,65 @@ SYM.Lookup >LDA.G CC.LookupIdx
* clc
rts
*--------------------------------------
* "B"reak
* "C"ontinue
* "D"efault
* "E"lse
* "F"rameSize
* "J"umptable
* "L"oop
* "S"statement
* e"X"it
*--------------------------------------
SYM.NewLabelA bit bPass2
bpl .10
clc
rts
.10 >STA.G CC.Label+1
>PUSHB.G CC.hSyms
>PUSHEA.G CC.Label
jsr SCOPE.Push
>SYSCALL SListNewKey
bcs .99
>STYA.G CC.SymID Y,A = KeyID
ldy #SYM.T.VOID
lda #SYM.Q.POINTER
ldx #SYM.SC.STATIC
sec
jsr SYM.BufInitYAXC
>LDA.G CC.Label+1
cmp #'F'
bne .1
lda LocalPtr
ldy #SYM.Addr
sta (ZPSymBufPtr),y
bra .2
.1 jsr SYM.SetAddrCCode
.2 .DO _DBG_SYM=1
jsr SYM.DEBUG0
.FIN
>PUSHB.G CC.hSyms
>PUSHW.G CC.SymID
>PUSHW ZPSymBufPtr
>PUSHBI 0
ldy #SYM.DefSize
lda (ZPSymBufPtr),y
>PUSHA
>SYSCALL SListAddData
.99 rts
*--------------------------------------
SYM.LookupLabelA
bit bPass2
bmi .1
@ -626,9 +638,9 @@ SYM.LookupLabelA
>PUSHB.G CC.hSyms ...for SListGetData
lda ScopeIdx
ldy ScopeIdx
.2 pha
.2 phy
>PUSHB.G CC.hSyms
>PUSHEA.G CC.Label
ply
@ -637,12 +649,12 @@ SYM.LookupLabelA
>SYSCALL SListLookup
bcc .8
pla
cmp #CC.ScopeIDs
ply
cpy #CC.ScopeIDs
beq .9
dec
dec
dey
dey
bra .2
.9 inc pStack discard CC.hSyms
@ -651,7 +663,9 @@ SYM.LookupLabelA
sec
rts
.8 >PUSHA KeyID.HI
.8 plx
>PUSHA KeyID.HI
tya
>PUSHA KeyID.LO
@ -859,6 +873,8 @@ SYM.SetSizeOf ldy #SYM.SizeOf
pla
rts
*--------------------------------------
SYM.SetAddrCCode
>LDYA ZPCCCode
SYM.SetAddrYA phy
ldy #SYM.Addr+1
@ -871,7 +887,7 @@ SYM.SetAddrYA phy
rts
*--------------------------------------
.DO DBG_SYM=1
.DO _DBG_SYM=1
SYM.DEBUG0 >PUSHW L.MSG.DEBUG.SYM0
>PUSHW.G CC.SymID
jsr SCOPE.Push

View File

@ -10,7 +10,9 @@ NEW
.INB inc/mli.i
.INB inc/mli.e.i
*--------------------------------------
DBG_SYM .EQ 1
_DBG_SYM .EQ 0
_DBG_SCOPE .EQ 1
_DBG_OUT .EQ 0
*--------------------------------------
FILES.MAX .EQ 4
LIBS.MAX .EQ 4
@ -48,16 +50,17 @@ SYM.SC.EXTERN .EQ 6
SYM.SC.TYPEDEF .EQ 8
SYM.SC.DEFINE .EQ 10
SYM.SC.TAG .EQ 12
* .EQ 3
SYM.DefSize .EQ 3
SYM.SizeOf .EQ 4
SYM.Addr .EQ 6
SYM.BitO .EQ 8
SYM.BitW .EQ 9
SYM.DefSize .EQ 10
*
SYM.Def .EQ 12 Funtions : fTQ,a1TQ,a2TQ....
*
SYM .EQ 14
*
SYM.Def .EQ 14 Funtions : fTQ,a1TQ,a2TQ....
*
SYM .EQ 16
SYM.F.MAX .EQ 64
*--------------------------------------
SU.F.T .EQ 0
@ -67,18 +70,13 @@ SU.F.BitO .EQ 4
SU.F.BitW .EQ 5
SU.F.Name .EQ 6
*--------------------------------------
CPS.hMEM .EQ 5 switch/case
CPS.Ptr .EQ 4
CPS.Q .EQ 5 f
CPS.T .EQ 4
CPS.LOCAL .EQ 3
CPS.STATE .EQ 2
CPS.hMEM .EQ 4 switch/case
CPS.Ptr .EQ 3
CPS.LOCAL .EQ 2
CPS.TERM .EQ 1
CPS.KW .EQ 0
*
CPS .EQ 6
CPS .EQ 5
*--------------------------------------
*--------------------------------------
@ -146,11 +144,20 @@ L.MSG.LINKING .DA MSG.LINKING
L.MSG.LINKING2 .DA MSG.LINKING2
L.MSG.GENERATING .DA MSG.GENERATING
L.MSG.DEBUG .DA MSG.DEBUG
.DO DBG_SYM=1
.DO _DBG_SYM=1
L.MSG.DEBUG.SYM0 .DA MSG.DEBUG.SYM0
L.MSG.DEBUG.SYM1 .DA MSG.DEBUG.SYM1
L.MSG.DEBUG.SYM2 .DA MSG.DEBUG.SYM2
.FIN
.DO _DBG_SCOPE=1
L.MSG.DEBUG.SCIN .DA MSG.DEBUG.SCIN
L.MSG.DEBUG.SC .DA MSG.DEBUG.SC
L.MSG.DEBUG.SCOUT .DA MSG.DEBUG.SCOUT
.FIN
.DO _DBG_OUT=1
L.MSG.DEBUG.CSOUT .DA MSG.DEBUG.CSOUT
L.MSG.DEBUG.OUT .DA MSG.DEBUG.OUT
.FIN
L.MSG.TRACE .DA MSG.TRACE
L.MSG.RTSTK .DA MSG.RTSTK
L.MSG.ERROR .DA MSG.ERROR
@ -243,7 +250,7 @@ J.CC.STYPES .DA TYPE.SCHAR
.DA TYPE.SLONG
*--------------------------------------
L.CC.MAIN .DA CC.MAIN
L.CC._RETURN_ .DA CC._RETURN_
L.CC._RETURN_ .DA CC._RETURN_
L.CC.SYSCALL .DA CC.SYSCALL
L.CC.FPUCALL .DA CC.FPUCALL
*--------------------------------------
@ -384,7 +391,7 @@ CS.RUN.CLOOP jsr CORE.CompileFile
jsr CC.Link
bcs .99
* >DEBUG
>DEBUG
jsr CC.Link.CheckMain
bcs .99
@ -404,11 +411,11 @@ CS.RUN.CLOOP jsr CORE.CompileFile
cmp #MLI.E.EOF
bne .9
jsr CODE.EmitTail
bcs .9
jsr FIO.FClose
bne .2
jsr CODE.EmitTail
bcs .9
*--------------------------------------
>LDYA L.MSG.ALLDONE
>SYSCALL PutS
@ -526,6 +533,15 @@ CS.QUIT jsr CODE.Quit
rts
*--------------------------------------
PrintTraceMsg
.DO _DBG_SCOPE=1
>PUSHW L.MSG.DEBUG.SC
jsr SCOPE.Push
>PUSHB LocalPtr
>PUSHBI 3
>SYSCALL PrintF
* >DEBUG
.FIN
ldy #S.PS.hStdOut
* ldy #S.PS.hStdErr
lda (pPS),y
@ -676,11 +692,20 @@ MSG.LINKING2 .CZ "*** %H:%H:%18s T/Q=%h/%h, SC=%h, Def=%h, SizeOf=%H, @=%H\r\n"
MSG.GENERATING .CZ "*** Generating: %s\r\n"
MSG.DEBUG .CS "*** pCode=%H, pConst=%H, pData=%H, pStack=%H\r\n"
.CZ " LSP=%h, CSP=%H:%h>%h:%h, ScopeIdx=%h\r\n"
.DO DBG_SYM=1
.DO _DBG_SYM=1
MSG.DEBUG.SYM0 .CZ "New SymID=%H[%H],T=%h,Q=%h "
MSG.DEBUG.SYM1 .CZ "Upd SymID=%H\r\n"
MSG.DEBUG.SYM2 .CZ "Sto SymID=%H\r\n"
.FIN
.DO _DBG_SCOPE=1
MSG.DEBUG.SCIN .CZ "Scope { %H (%h)\r\n"
MSG.DEBUG.SC .CZ "Scope = %H (%h)\r\n"
MSG.DEBUG.SCOUT .CZ "Scope } %H (%h) -> %H\r\n"
.FIN
.DO _DBG_OUT=1
MSG.DEBUG.CSOUT .CZ "\r\n%H-"
MSG.DEBUG.OUT .CZ "%h"
.FIN
MSG.TRACE .CZ "%5D> %s\r\n"
MSG.RTSTK .CZ "<pBase=%H, pVar=%H, (pVar)=%H, pStack=%H>\r\n"
MSG.ERROR .CZ " %s^\r\n"
@ -815,13 +840,13 @@ CC.TYPES .PS "void"
.PS "float"
.HS 00
*--------------------------------------
CC.Type2FPU .DA #FPU.wMUL,#FPU.iMUL,#FPU.uMUL,#FPU.lMUL,#FPU.fMUL
CC.Type2FPU .DA #FPU.wMUL,#FPU.iMUL,#FPU.uMUL,#FPU.lMUL,#FPU.fMUL
*--------------------------------------
CC.FTYPES .PS "fastcall"
* .HS 00
*--------------------------------------
CC.TYPESIZE .HS 0001010202040405
CC.TYPESIGN .HS 0000FF00FF00FFFF
CC.TYPESIZE .HS 0001010202040405
CC.TYPESIGN .HS 0000FF00FF00FFFF
*--------------------------------------
CC.MAIN .AZ "main"
CC.MAIN.DEF .DA #SYM.T.SINT,#0,#SYM.T.SINT,#0,#SYM.T.UCHAR,#SYM.Q.PPOINTER,0

View File

@ -438,12 +438,12 @@ PRODOS.ERROR
CHECK.DOT.DIGIT.OR.LETTER
CMP #'.
BEQ CHECKS.OK
CMP #'_' allow underline in symbols too
BEQ CHECKS.OK
CHECK.DIGIT.OR.LETTER
JSR CHECK.DIGIT
BCS CHECKS.OK
CHECK.LETTER
CMP #'_' allow underline in symbols too
BEQ CHECKS.OK
CMP #'A
BCC CHECKS.NOT.OK
CMP #'Z+1