From 2cf7512e997d5d47a8b2b0d54792e59518f1e5db Mon Sep 17 00:00:00 2001 From: burniouf Date: Sun, 30 Jan 2022 22:47:08 +0100 Subject: [PATCH] SP tools --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes .Floppies/A2OSX.TEST.po | Bin 819200 -> 819200 bytes BIN/CC.S.CODE.txt | 217 ++++++- BIN/CC.S.CORE.txt | 1102 ++++++++++-------------------------- BIN/CC.S.DECL.txt | 10 + BIN/CC.S.DIR.txt | 2 +- BIN/CC.S.EXEC.txt | 114 +++- BIN/CC.S.EXP.txt | 497 +++++++++++----- BIN/CC.S.F.txt | 435 ++++++++++++++ BIN/CC.S.KW.txt | 478 +++++++++------- BIN/CC.S.STMT.txt | 53 ++ BIN/CC.S.SYM.txt | 556 ++++++++++++++++++ BIN/CC.S.TYPE.txt | 187 ++++++ BIN/CC.S.txt | 813 ++++++++++++++++---------- BIN/CSH.S.DIR.txt | 5 +- BIN/SPDIAG.S.txt | 272 +++++++++ DRV/SPTAPE.DRV.S.txt | 188 ++++++ INC/A2osX.I.txt | 1 + INCLUDE/math.h.txt | 2 + INCLUDE/stdio.h.txt | 2 +- ProDOS.FX/ProDOS.S.LDR.txt | 28 +- SYS/KERNEL.S.DEV.txt | 18 +- SYS/KERNEL.S.ERRORX.txt | 4 +- 23 files changed, 3422 insertions(+), 1562 deletions(-) create mode 100644 BIN/CC.S.DECL.txt create mode 100644 BIN/CC.S.F.txt create mode 100644 BIN/CC.S.STMT.txt create mode 100644 BIN/CC.S.SYM.txt create mode 100644 BIN/CC.S.TYPE.txt create mode 100644 BIN/SPDIAG.S.txt create mode 100644 DRV/SPTAPE.DRV.S.txt diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 71d93a61e6964ed36d051f90ebfcdb5d213a453d..bf6fd7d760c3a95c3cf188630352abbb56e960af 100644 GIT binary patch delta 91433 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 az|Y_p@GJNY{0{yL{s4cP9^>at;(q`!XRChz delta 99536 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

O_vR>ldt2@b*S^)mP5j0jT(XV^qzQ0R@# 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 diff --git a/.Floppies/A2OSX.TEST.po b/.Floppies/A2OSX.TEST.po index ff4bf5d1cc41fad781a8c179b80bdd871dc188b3..8b1c61f35d6e1333638ef9578d0c8df5b182edeb 100644 GIT binary patch delta 79330 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/F3HWlb;4?d%TOYd|;UZ@>-8<-?k#yK?IR4~qXb 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” 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 diff --git a/BIN/CC.S.CODE.txt b/BIN/CC.S.CODE.txt index badfeb68..dae0d6e5 100644 --- a/BIN/CC.S.CODE.txt +++ b/BIN/CC.S.CODE.txt @@ -2,12 +2,95 @@ NEW AUTO 3,1 .LIST OFF *-------------------------------------- -CODE.PushXFromYA - jsr CODE.LDXYAI +CODE.Debug ldx #PCC.DEBUG.L + ldy #0 +.1 lda PCC.DEBUG,y + jsr CODE.EmitByte + iny + dex + bne .1 + + rts +*-------------------------------------- +CODE.Enter ldx #PCC.ENTER.L + ldy #0 + +.1 lda PCC.ENTER,y + jsr CODE.EmitByte + iny + dex + bne .1 + + rts +*-------------------------------------- +CODE.nAddLocal eor #$FF + inc + +CODE.AddLocal pha + lda #$A9 LDA #imm + jsr CODE.EmitByte + pla + jsr CODE.EmitByte + + ldx #PCC.ADDLOCAL.L + ldy #0 + +.1 lda PCC.ADDLOCAL,y + jsr CODE.EmitByte + iny + dex + bne .1 + + rts +*-------------------------------------- +CODE.GetLocal lda #$A9 LDA #imm + jsr CODE.EmitByte + tya + eor #$FF + inc + jsr CODE.EmitByte + + ldx #PCC.GETLOCAL.L + ldy #0 + +.1 lda PCC.GETLOCAL,y + jsr CODE.EmitByte + iny + dex + bne .1 + + rts +*-------------------------------------- +CODE.SetRetValue + jsr CODE.LDXI + + ldx #PCC.SETRETVALUE.L + ldy #0 + +.1 lda PCC.SETRETVALUE,y + jsr CODE.EmitByte + iny + dex + bne .1 + + rts +*-------------------------------------- +CODE.Leave ldx #PCC.LEAVE.L + ldy #0 + +.1 lda PCC.LEAVE,y + jsr CODE.EmitByte + iny + dex + bne .1 + + rts +*-------------------------------------- +CODE.PushXFromYA ldx #PCC.PushXFromYA.L ldy #0 - + .1 lda PCC.PushXFromYA,y jsr CODE.EmitByte iny @@ -16,11 +99,9 @@ CODE.PushXFromYA rts *-------------------------------------- -CODE.PopXToYA jsr CODE.LDXYAI - - ldx #PCC.PopXToYA.L +CODE.PopXToYA ldx #PCC.PopXToYA.L ldy #0 - + .1 lda PCC.PopXToYA,y jsr CODE.EmitByte iny @@ -29,6 +110,93 @@ CODE.PopXToYA jsr CODE.LDXYAI rts *-------------------------------------- +CODE.SetXToYA ldx #PCC.SetXToYA.L + ldy #0 + +.1 lda PCC.SetXToYA,y + jsr CODE.EmitByte + iny + dex + bne .1 + + rts +*-------------------------------------- +CODE.Deref ldx #PCC.Deref.L + ldy #0 + +.1 lda PCC.Deref,y + jsr CODE.EmitByte + iny + dex + bne .1 + + rts +*-------------------------------------- +CODE.SETpBASEp1 ldx #PCC.SETpBASEp1.L + ldy #0 + +.1 lda PCC.SETpBASEp1,y + jsr CODE.EmitByte + iny + dex + bne .1 + + rts +*-------------------------------------- +CODE.SETpBASEpA ldx #PCC.SETpBASEpA.L + ldy #0 + +.1 lda PCC.SETpBASEpA,y + jsr CODE.EmitByte + iny + dex + bne .1 + + rts +*-------------------------------------- +CODE.PUSHpBASEp1 + ldx #PCC.PUSHpBASEp1.L + ldy #0 + +.1 lda PCC.PUSHpBASEp1,y + jsr CODE.EmitByte + iny + dex + bne .1 + + rts +*-------------------------------------- +CODE.PUSHpBASEpA + ldx #PCC.PUSHpBASEpA.L + ldy #0 + +.1 lda PCC.PUSHpBASEpA,y + jsr CODE.EmitByte + iny + dex + bne .1 + + rts +*-------------------------------------- +CODE.PushFromPtr + pha + lda #$A0 LDY #imm + jsr CODE.EmitByte + pla + dec BPL loop + jsr CODE.EmitByte + + ldx #PCC.PushFromPtr.L + ldy #0 + +.1 lda PCC.PushFromPtr,y + jsr CODE.EmitByte + iny + dex + bne .1 + + rts +*-------------------------------------- CODE.PUSHI pha lda #$A9 LDA #imm jsr CODE.EmitByte @@ -36,12 +204,7 @@ CODE.PUSHI pha jsr CODE.EmitByte bra CODE.PUSHA *-------------------------------------- -CODE.LDXYAI pha - - lda #$A2 LDX #imm - jsr CODE.EmitByte - txa - jsr CODE.EmitByte +CODE.LDYAI pha lda #$A0 LDY #imm jsr CODE.EmitByte @@ -50,8 +213,21 @@ CODE.LDXYAI pha lda #$A9 LDA #imm jsr CODE.EmitByte + pla - bra CODE.EmitByte + + jmp CODE.EmitByte +*-------------------------------------- +CODE.LDXI lda #$A2 LDX #imm + jsr CODE.EmitByte + txa + jmp CODE.EmitByte +*-------------------------------------- +CODE.LDAI pha + lda #$A9 LDA #imm + jsr CODE.EmitByte + pla + jmp CODE.EmitByte *-------------------------------------- CODE.PUSHYA jsr CODE.PUSHA lda #$AA TYA @@ -61,7 +237,7 @@ CODE.PUSHA lda #$C6 DEC zp jsr CODE.EmitByte lda #pStack jsr CODE.EmitByte - + lda #$92 STA (zp) jsr CODE.EmitByte lda #pStack @@ -84,15 +260,10 @@ CODE.INCPSTACK lda #$E6 INC zp lda #pStack bra CODE.EmitByte *-------------------------------------- -CODE.JMPYX lda #$4C - bra CODE.JSRYX.1 -*-------------------------------------- -CODE.JSRYX lda #$20 JSR - -CODE.JSRYX.1 jsr CODE.EmitByte - tya - jsr CODE.EmitByte +CODE.TOABSYX jsr CODE.EmitByte A=opcode : JMP, JSR ..... txa + jsr CODE.EmitByte + tya bra CODE.EmitByte *-------------------------------------- CODE.FPUCALL lda #$A2 LDX #imm diff --git a/BIN/CC.S.CORE.txt b/BIN/CC.S.CORE.txt index 326c7be3..59eae110 100644 --- a/BIN/CC.S.CORE.txt +++ b/BIN/CC.S.CORE.txt @@ -16,6 +16,7 @@ CC.Init >SYSCALL SListNew bcs .9 >STA.G CC.hSymbols + sty ScopePtr >LDYAI 4096 >SYSCALL GetMem @@ -41,7 +42,7 @@ CC.Init >SYSCALL SListNew txa >STA.G CC.hData - >LDYAI 1024 + >LDYAI 256 >SYSCALL GetMem bcs .9 @@ -49,22 +50,24 @@ CC.Init >SYSCALL SListNew txa >STA.G CC.hStack - >LDYAI 1024 - >SYSCALL GetMem - bcs .9 - - >STYA ZPCCfDecl - txa - >STA.G CC.hfDecl - * clc .9 rts *-------------------------------------- -CC.Quit >LDA.G CC.hSymbols +CC.Quit ldy ScopePtr beq .1 +.10 lda (pData),y + >SYSCALL SListFree + ldy ScopePtr + cpy #CC.hSymbols + beq .1 + + dec ScopePtr + dey + bra .10 + .1 >LDA.G CC.hTags beq .2 @@ -75,13 +78,13 @@ CC.Quit >LDA.G CC.hSymbols >SYSCALL SListFree -.4 lda hDefine +.4 lda hDefineBuf jsr .7 .5 jsr CS.RUN.FClose bne .5 - >LDA.G CC.hfDecl + lda hSymBuf jsr .7 >LDA.G CC.hStack @@ -97,18 +100,50 @@ CC.Quit >LDA.G CC.hSymbols .7 beq CC.Quit.RTS >SYSCALL FreeMem -CC.Quit.RTS rts +CC.Quit.RTS rts *-------------------------------------- -CC.Run jsr CC.GetCharNB +CC.CompileFile >SLEEP + + ldy #S.PS.hStdIn + lda (pPS),y + >SYSCALL FEOF + bcs .9 + + tay + bne .1 + + >SYSCALL GetChar + bcs .9 I/O err + + cmp #3 Ctrl-C + beq .9 + +.1 jsr CS.RUN.FGetS + bcs .9 + + jsr CC.CompileLine + bcs .9 + + >LDA.G bDebug + bpl CC.CompileFile + + jsr PrintDebugMsg + + bra CC.CompileFile + +.9 rts +*-------------------------------------- +CC.CompileLine jsr CC.GetCharNB bcs CC.Quit.RTS -CC.Run.1 cmp #C.CR empty line.... +CC.CompileLine.1 + cmp #C.CR empty line.... beq .2 cmp #'/' bne .3 comments ... - jmp CC.comments + jmp CC.Comments .2 clc rts @@ -118,18 +153,12 @@ CC.Run.1 cmp #C.CR empty line.... jmp CC.DIR -.4 cmp #'}' End of block ? +.4 cmp #'}' End of CPStmt ? bne .10 - jsr CC.CheckStack must be something on stack.... - bcs CC.Quit.RTS - jsr CC.GetNextCharNB Skip '}' - jsr CC.Pop was expected.... - jsr CC.Pop get stacked Cmd... - tax - jmp (J.CC.KW.END,x) + jmp CC.STMT.CPStmt.END *-------------------------------------- .10 jsr CC.IsLetter bcc .20 @@ -138,48 +167,82 @@ CC.Run.1 cmp #C.CR empty line.... bcs .29 *-------------------------------------- -.20 >LDYA L.CC.TMODS +.20 >LDYA L.CC.TYPEQUAL jsr CC.LookupID bcs .50 - jsr CC.tDecl + jsr CC.TYPE.Decl bcs .59 - >STYA ZPSymType Type/Qual + ldx #SYM.SC.STATIC Y,A = Type/Qual + bit ScopenCnt + bpl .25 - jsr CC.AddSymbol add with undef value... + bit #SYM.Q.FUNC someone wants to add a local f() ? + sec + bne .29 + + ldx #SYM.SC.AUTO + +.25 jsr CC.SYM.New Y,A=T/Q, add with undef value... bcs .29 OOM or DUP - lda ZPSymQual - bit #CC.Q.FUNC - bne .21 - jsr CC.GetCharNB - bcs .27 + bcs .69 cmp #';' - beq .69 + beq .28 - cmp #'=' - bne .99 + cmp #'{' + bne .26 + jsr CC.GetNextCharNB skip '{' + bcs .69 + + jsr CC.SYM.Store + bcs .29 + + jmp CC.SYM.FreeBuf +*-------------------------------------- + +* TODO: AOPS + +*-------------------------------------- +.26 cmp #'=' + sec + bne .69 +*-------------------------------------- jsr CC.GetNextCharNB skip '=' -.27 bcs .99 + bcs .69 - >LDYA ZPSymType expected T/Q - jsr CC.ExpEval - bcs .9 + jsr CC.SYM.GetTypeInYA expected T/Q + jsr CC.EXP.Eval + bcs .59 - jsr CC.SetValue Y,A = T/Q, Set value to this var + jsr CC.SYM.PopValue Y,A = T/Q, Set value to this var .29 bcs .9 - bra .68 - -.21 jsr CC.fDecl +.28 jsr CC.SYM.Store bcs .9 + jsr CC.SYM.FreeBuf + bra .68 *-------------------------------------- +.21 jsr CC.GetCharNB + bcs .99 + + cmp #';' + beq .8 + + cmp #'{' + bne .99 + + jsr CC.GetNextCharNB skip '{' + bcs .99 + + jmp CC.CompileLine.1 +*-------------------------------------- .50 >LDYA L.CC.KW jsr CC.LookupID bcs .6 not an internal CC keyword.... @@ -189,26 +252,25 @@ CC.Run.1 cmp #C.CR empty line.... bra .8 *-------------------------------------- -.6 jsr CC.GetVar var= or func() ? - bcs .99 +.6 jsr CC.SYM.Lookup var= or func() ? +.69 bcs .99 - >STYA ZPSymID - jsr CC.GetSymDef Get Type & qual... - bcs .9 - - lda ZPSymQual - bit #CC.Q.FUNC + ldy #SYM.Q + lda (ZPSymBufPtr),y + bit #SYM.Q.FUNC beq .60 ldy #0 func( ... ); lda #0 - jsr CC.fExecNoRetV + jsr CC.F.CallNoRetV bcs .9 + jsr CC.SYM.FreeBufPop + bra .8 *-------------------------------------- -.60 jsr CC.GetCharNB - bcs .9 +.60 jsr CC.GetCharNB var = ? + bcs .99 cmp #'=' TODO: all AOPS bne .99 @@ -216,16 +278,18 @@ CC.Run.1 cmp #C.CR empty line.... jsr CC.GetNextChar Skip = bcs .99 - >LDYA ZPSymType T/Q - jsr CC.ExpEval + jsr CC.SYM.GetTypeInYA + jsr CC.EXP.Eval bcs .9 - jsr CC.SetValue + jsr CC.SYM.PopValue bcs .9 + jsr CC.SYM.FreeBufPop +*-------------------------------------- .68 jsr CC.GetCharNB cmp #';' -.69 beq .8 + beq .8 .99 lda #E.CSYN sec @@ -237,12 +301,12 @@ CC.Run.1 cmp #C.CR empty line.... cmp #C.CR beq .80 - jmp CC.Run.1 + jmp CC.CompileLine.1 .80 clc rts *-------------------------------------- -CC.comments jsr CC.GetNextChar +CC.Comments jsr CC.GetNextChar cmp #'/' bne .90 @@ -262,27 +326,27 @@ CC.SkipLine jsr CC.GetNextChar .9 rts *-------------------------------------- -CC.LookupID >STYA ZPPtr1 +CC.LookupID >STYA ZPLookupPtr jsr CC.GetIDLen bra CC.Lookup -CC.LookupOP >STYA ZPPtr1 +CC.LookupOP >STYA ZPLookupPtr jsr CC.GetOPLen CC.Lookup phy Y = len ldx #0 -.1 lda (ZPPtr1) +.1 lda (ZPLookupPtr) beq .9 Ending 0, not found.... pla pha Get Back Len - cmp (ZPPtr1) Same Len ? + cmp (ZPLookupPtr) Same Len ? bne .4 tay -.2 lda (ZPPtr1),y +.2 lda (ZPLookupPtr),y .3 dey cmp (ZPLineBufPtr),y @@ -292,43 +356,73 @@ CC.Lookup phy Y = len bne .2 pla Found keyword... - clc - adc ZPLineBufPtr ..advance Ptr to char after it.. - sta ZPLineBufPtr - bcc .31 + jsr CC.SkipA ..advance Ptr to char after it.. - inc ZPLineBufPtr+1 - -.31 lda ZPPtr1 + lda ZPLookupPtr sec - adc (ZPPtr1) + adc (ZPLookupPtr) tay - lda ZPPtr1+1 + lda ZPLookupPtr+1 adc #0 clc Y,A = F() def, X = F() index .8 rts .4 inx inx - lda (ZPPtr1) - jsr CC.ZPPtr1AddAp1 + lda (ZPLookupPtr) + jsr CC.ZPLookupPtrAddAp1 bra .1 .9 pla sec rts *-------------------------------------- +CC.SListLookup >PUSHA hSList + >PUSHA ...for SListGetData + >PUSHW ZPLineBufPtr + >SYSCALL SListLookup + bcs .99 + + pha save KeyID + phy + + >PUSHA KeyID.HI + tya + >PUSHA KeyID.LO + + jsr CC.SkipX + +.1 >PUSHWZ allocate + >PUSHWI 65535 all + >PUSHWZ From Start + >SYSCALL SListGetData + bcs .9 + + ply + pla X = hSymScope, Y,A = SymID +* clc + rts + +.9 plx + plx + rts + +.99 inc pStack + rts +*-------------------------------------- * int main(int argc, char *argv[]) ; *-------------------------------------- -CC.MainExec lda #0 +CC.MainExec lda #$EEEE >PUSHA + >PUSHA int ret value + lda #0 + >PUSHA ldy #S.PS.ARGC lda (pPS),y + >PUSHA push int ARGC (int) - >PUSHA push int ARGC - - >PUSHW ZPCCConst push int ARGV + >PUSHW ZPCCConst push int ARGV *char[] stz ArgIndex @@ -356,673 +450,63 @@ CC.MainExec lda #0 inc ZPCCConst+1 bra .1 -.2 +.2 >PUSHB.G CC.hSymbols - - clc - rts -*-------------------------------------- -CC.ZPPtr1GetNextW - jsr CC.ZPPtr1NextW -*-------------------------------------- -CC.ZPPtr1GetW lda (ZPPtr1) - beq .8 - - pha - - ldy #1 - lda (ZPPtr1),y - ply - -.8 rts -*-------------------------------------- -CC.ZPPtr1NextW jsr .1 - -.1 inc ZPPtr1 - bne .8 - - inc ZPPtr1+1 - -.8 rts -*-------------------------------------- -CC.ZPPtr1AddAp1 - sec - adc ZPPtr1 - sta ZPPtr1 - bcc .1 - - inc ZPPtr1+1 -.1 rts -*-------------------------------------- -* Input : ZPLineBufPtr -* Output : Y,A = VarID -*-------------------------------------- -CC.AddSymbol >PUSHB.G CC.hSymbols - >PUSHW ZPLineBufPtr - >SYSCALL SListNewKey + >PUSHW L.CC.MAIN + >SYSCALL SListLookup bcs .9 - >STYA ZPSymID Y,A = KeyID, X = KeyLen - stx ZPPtr2 - - lda ZPLineBufPtr - sta ZPPtr1 -* clc - adc ZPPtr2 - sta ZPLineBufPtr - - lda ZPLineBufPtr+1 - sta ZPPtr1+1 - adc #0 - sta ZPLineBufPtr+1 - - jsr CC.GetCharNB - bcs .6 - - cmp #'(' - bne .6 - -.7 lda #CC.Q.FUNC - tsb ZPSymQual - - lda ZPCCfDecl - sta ZPSymDefPtr - - lda ZPCCfDecl+1 - sta ZPSymDefPtr+1 - - >LDYA ZPPtr1 - jsr CC.Link - bra .8 - -* lda #E.FUNDEF -* sec -.9 rts -*-------------------------------------- -.6 >LDYA ZPSymType - jsr CC.GetVarSize CS if pointer - stx ZPSymSizeOf - -* clc / sec - - lda ZPCCData - sta ZPSymDataPtr - adc ZPSymSizeOf - sta ZPCCData - - lda ZPCCData+1 - sta ZPSymDataPtr+1 - adc ZPSymSizeOf+1 - sta ZPCCData+1 - - >LDA.G CC.DataSize - clc - adc ZPSymSizeOf - sta (pData),y - bcs .99 - - lda ZPSymQual - and #CC.Q.FUNC - bne .98 - -.8 >PUSHB.G CC.hSymbols - >PUSHW ZPSymID - >PUSHWI ZPSymDef - >PUSHWI SYMDEFSIZE - >SYSCALL SListAddData - rts - -.98 lda #E.CSYN - sec - rts - -.99 lda #E.OOM -* sec - rts -*-------------------------------------- -* ZPSymDataPtr = fDef -*-------------------------------------- -CC.fExecNoRetV clc - .HS B0 BCS -CC.fExecRetV sec - - ldx ZPPtr1 - phx - ldx ZPPtr1+1 local : fdef Ptr - phx - ldx ZPPtr2 local : type - phx - ldx ZPPtr2+1 local : qual - phx - ldx ZPPtr3 local : variadic size - phx - ldx ZPPtr3+1 local : bRetV - phx - - >STYA ZPPtr2 save expected Type/qual - - >LDYA ZPSymDefPtr - bcc .11 - - >LDYA.G CC.VarDefPtr - -.11 >STYA ZPPtr1 - - ror ZPPtr3+1 bRetV - - stz ZPPtr3 Reset VARIADIC byte count - - jsr CC.GetNextCharNB skip '(' - bcs .10 - - jsr CC.ZPPtr1GetW Y,A = f() Return value T/Q - - ldx ZPPtr2 expected T - beq .1 no check required - - cpy ZPPtr2 - bne .91 - - tax save full Q - - and #$fC ignore CC.Q.FUNC,CC.Q.FASTCALL - cmp ZPPtr2+1 - bne .91 - - txa - -.1 >STYA ZPPtr2 save full T/Q for later - - jsr CC.ZPPtr1GetNextW advance to arg list type - beq .7 end of list, go check ending ')' -*-------------------------------------- -.3 cpy #CC.T.VARIADIC if VARIADIC, don't advance to next arg and assume type = 0 - bne .4 - - ldy #0 - lda #0 - -.4 jsr CC.ExpEval Y,A = 0 if VARIADIC - bcs .93 - - jsr CC.GetVarSize Y,A = Var Type/Qual - - lda (ZPPtr1) - cmp #CC.T.VARIADIC - bne .50 - - txa X=VarSize - - clc make sure pointer only 2 bytes - adc ZPPtr3 - sta ZPPtr3 Add to byte count - bra .5 - -.50 jsr CC.ZPPtr1NextW - -.5 jsr CC.GetCharNB - -.10 bcs .90 - - cmp #',' - bne .6 - - jsr CC.GetNextCharNB Skip ',' - - jsr CC.ZPPtr1GetW - bne .3 Another ARG.... - - bra .90 extra args....error - -.6 cmp #')' - bne .90 - - jsr CC.ZPPtr1GetW - beq .8 no more arg after ')', exit - - cpy #CC.T.VARIADIC - bne .90 missing arg - - lda ZPPtr3 push VARIADIC byte count - - jsr CODE.PUSHI - -.7 jsr CC.GetCharNB - bcs .90 - - cmp #')' - bne .90 - -.8 jsr CC.GetNextCharNB Skip ) - - jsr CC.fExec2 X = LASTVAR sizeof (fastcall) - bra .93 - -.90 lda #E.CSYN - bra .92 - -.91 lda #E.TMISMATCH - -.92 sec - -.93 plx - stx ZPPtr3+1 - plx - stx ZPPtr3 - - plx - stx ZPPtr2+1 - plx - stx ZPPtr2 - - plx - stx ZPPtr1+1 - plx - stx ZPPtr1 - -.99 rts -*-------------------------------------- -* X = last var size -*-------------------------------------- -CC.fExec2 -* >LDYA ZPPtr2 function T/Q -* jsr CC.GetVarSize -* stx ZPPtr1 last var size - - bit ZPPtr3+1 bRetV - bmi .5 - -* NO Return Value : call & discard stack if not in Y,A - - lda ZPPtr2+1 - bit #CC.Q.FASTCALL - beq .1 - -* ldx ZPPtr1 var size - dex - bne .19 - - jsr CODE.PULLA - bra .1 - -.19 jsr CODE.PULLYA - -.1 lda ZPSymDataPtr+1 - beq .9 - - ldy ZPSymDataPtr - >STYA ZPPtr3 - - jsr CC.fExec3 - - >LDYA ZPPtr2 function T/Q - jsr CC.GetVarSize - txa - beq .11 void - - cpx #3 A or Y,A - bcc .11 - -.10 jsr CODE.INCPSTACK - dex - bne .10 - -.11 clc - rts - -.9 lda #E.FUNDEF - sec - rts - -* Return Value : call & put result on stack if in Y,A - -.5 lda ZPPtr2+1 - bit #CC.Q.FASTCALL - beq .6 - -* ldx ZPPtr1 - dex - bne .64 - - jsr CODE.PULLA - bra .6 - -.64 jsr CODE.PULLYA - -.6 >LDA.G CC.VarDataPtr+1 - beq .9 - - sta ZPPtr3+1 - dey - lda (pData),y - sta ZPPtr3 - - jsr CC.fExec3 - - >LDYA ZPPtr2 function T/Q - jsr CC.GetVarSize - cpx #3 - bcs .8 leave on stack - - dex - bne .60 - - jsr CODE.PUSHA push ONE byte one stack - bra .8 - -.60 jsr CODE.PUSHYA push TWO bytes one stack - -.8 >LDYA ZPPtr2 T/Q - and #$FC ignore CC.Q.FUNC+CC.Q.FASTCALL - clc - rts -*-------------------------------------- -CC.fExec3 lda (ZPPtr3) - bne .1 - - ldy #1 - lda (ZPPtr3),y - tax - -* cpx #SYS.FClose -* bne .57 -* >DEBUG -* ldy #0 -*.56 lda PCC.DEBUG,y -* jsr CODE.EmitByte -* iny -* cpy #PCC.DEBUG.L -* bne .56 -*.57 - jsr CODE.SYSCALL - rts - -.1 ldy #1 - lda (ZPPtr3),y - tax - jsr CODE.FPUCALL - - rts -*-------------------------------------- -CC.fDecl >ENTER 2 - - lda #0 - sta (pStack) hLocal - - lda ZPSymType - jsr CC.fDeclAddA - lda ZPSymQual - jsr CC.fDeclAddA - - jsr CC.GetNextCharNB Skip ( - bcs .9 - -.1 cmp #')' - beq .6 - -.2 jsr CC.fDeclGetArg - bcs .99 - - pha - - tya - jsr CC.fDeclAddA - - pla - jsr CC.fDeclAddA - - jsr CC.GetCharNB - bcs .9 - - jsr CC.IsLetter - bcs .5 - -* TODO: AddLocal - -.3 jsr CC.GetNextCharNB - bcs .9 - - jsr CC.IsLetterOrDigit - bcc .3 - - - -.5 cmp #')' - beq .6 - - cmp #',' - bne .9 - - jsr CC.GetNextCharNB Skip , - bcs .9 - - bra .2 - -.6 jsr CC.GetNextCharNB Skip ) - bcs .9 - - cmp #';' - beq .7 - - -* TODO: f() body - - bra .9 -*-------------------------------------- -.7 - -.8 lda #0 - jsr CC.fDeclAddA - - >LDYA ZPSymType T/Q - clc - bra .99 - -.9 lda #E.CSYN - sec - -.99 >LEAVE - rts -*-------------------------------------- -CC.fDeclGetArg lda (ZPLineBufPtr) - cmp #'.' - bne .5 - - ldx #2 - -.1 jsr CC.GetNextChar - bcs .9 - - cmp #'.' - bne .9 - - dex - bne .1 - - jsr CC.GetNextCharNB - bcs .9 - - eor #')' - bne .9 - - ldy #CC.T.VARIADIC Type -* lda #0 Qual -* clc - rts - -.5 >LDYA L.CC.TMODS - jsr CC.LookupID - bcs .9 - - jsr CC.tDecl - bcs .9 - -* Y,A = Type/Qual - - bra .8 - -.9 lda #E.CSYN - sec - -.8 rts -*-------------------------------------- -CC.fDeclAddA sta (ZPCCfDecl) - inc ZPCCfDecl - bne .8 - - inc ZPCCfDecl+1 - -.8 rts -*-------------------------------------- -CC.Link >STYA ZPPtr2 - - >LDYA L.CC.LIBC - >STYA ZPPtr1 - - stz ZPSymDataPtr - stz ZPSymDataPtr+1 - - ldy #0 - -.11 iny - lda (ZPPtr2),y - beq .12 - - jsr CC.IsLetterOrDigit - bcc .11 - -.12 phy Y = len - - ldx #0 - -.1 lda (ZPPtr1) - beq .9 Ending 0, not found.... - - pla - pha Get Back Len - cmp (ZPPtr1) Same Len ? - bne .4 - - tay - -.2 lda (ZPPtr1),y - - dey - cmp (ZPPtr2),y - bne .4 - - tya - bne .2 - - pla Found keyword... - - lda (ZPPtr1) - jsr CC.ZPPtr1AddAp1 Skip LEN\Symbol - - >LDYA ZPPtr1 - iny - bne .5 - - inc Skip LEN - -.5 >STYA ZPSymDataPtr - - clc - rts - -.4 inx - inx - lda (ZPPtr1) - jsr CC.ZPPtr1AddAp1 Skip LEN\Symbol - lda (ZPPtr1) - jsr CC.ZPPtr1AddAp1 Skip LEN\definition - bra .1 - -.9 pla - sec - rts -*-------------------------------------- -CC.tDecl >ENTER 2 - lda #0 - sta (pStack) Type - ldy #1 - sta (pStack),y Qual - - jsr .7 - bcs .99 - - ldy #1 - lda (pStack),y - pha - lda (pStack) - tay Y = Type - pla A = Qual - - clc - -.99 >LEAVE - rts - -.7 jmp (J.CC.TMODS,x) -*-------------------------------------- -CC.NewKey >PUSHA - >PUSHW ZPLineBufPtr - >SYSCALL SListNewKey - bcs .9 - - pha - - txa -* clc - adc ZPLineBufPtr - sta ZPLineBufPtr - bcc .8 - - inc ZPLineBufPtr+1 - clc - -.8 pla Y,A = KeyID, X = KeyLen - -.9 rts -*-------------------------------------- -* Y,A = Type/Qual -*-------------------------------------- -CC.SetValue cpy ZPSymType - bne .99 - - cmp ZPSymQual - bne .99 - - ldx ZPSymSizeOf - >LDYA ZPSymDataPtr - jsr CODE.PopXToYA - - clc - rts - -.99 lda #E.TMISMATCH - sec - rts -*-------------------------------------- -CC.GetDefine >PUSHB.G CC.hDefines - - jsr CC.Get - bcs .9 - - pha phy - >PUSHB.G CC.hDefines - ply - pla - >PUSHYA KeyID + pha - >PUSHWZ Allocate.. - >PUSHWZ len = 0 (string mode) + >PUSHB.G CC.hSymbols + + pla + >PUSHA + pla + >PUSHA KeyID + + >PUSHWZ allocate + >PUSHWI 65535 all >PUSHWZ From Start >SYSCALL SListGetData bcs .9 - stx hDefine + stx hSymBuf + txa + >SYSCALL GetMemPtr + >STYA ZPSymBufPtr + + ldy #SYM.Addr + lda (ZPSymBufPtr),y + sta ZPCCCode + + iny + lda (ZPSymBufPtr),y + sta ZPCCCode+1 + + jsr .7 + + clc +.9 rts + +.7 jmp (ZPCCCode) +*-------------------------------------- +CC.ZPLookupPtrAddAp1 + sec + adc ZPLookupPtr + sta ZPLookupPtr + bcc .1 + + inc ZPLookupPtr+1 +.1 rts +*-------------------------------------- +CC.GetDefine >LDA.G CC.hDefines + + jsr CC.SListLookup + bcs .9 + + stx hDefineBuf >LDYA ZPLineBufPtr >STYA.G CC.SaveDefine @@ -1033,68 +517,27 @@ CC.GetDefine >PUSHB.G CC.hDefines .9 rts *-------------------------------------- -CC.GetVar >PUSHB.G CC.hSymbols - -CC.Get >PUSHW ZPLineBufPtr - >SYSCALL SListLookup - bcs .9 - - pha - - txa -* clc - adc ZPLineBufPtr - sta ZPLineBufPtr - bcc .1 - - inc ZPLineBufPtr+1 - clc - -.1 pla Y,A = VarID - -.9 rts +* CT Stack *-------------------------------------- -CC.GetSymDef phy - pha - >PUSHB.G CC.hSymbols +CC.PushTQ ldy #SYM.Q + lda (ZPSymBufPtr),y + jsr CC.Push + bcs CC.Push.RTS - pla - >PUSHA - pla - >PUSHA KeyID - - >PUSHWI ZPSymDef - >PUSHWI 8 8 bytes - >PUSHWZ From Start - >SYSCALL SListGetData - rts -*-------------------------------------- -* Stack -*-------------------------------------- -CC.CheckStack ldy StackPtr - beq .9 - - cmp (ZPCCStack),y - bne .9 - - clc - rts - -.9 lda #E.CSYN - sec - 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 StackPtr +CC.Push ldy CStackPtr dey beq .9 - sty StackPtr + sty CStackPtr sta (ZPCCStack),y clc @@ -1104,12 +547,36 @@ CC.Push ldy StackPtr sec CC.Push.RTS rts *-------------------------------------- -CC.Pop ldy StackPtr +CC.PopYA ldy CStackPtr beq .9 lda (ZPCCStack),y + pha + + iny + beq .90 + + lda (ZPCCStack),y + + iny + sty CStackPtr - inc StackPtr + ply + + clc + rts + +.90 pla +.9 lda #E.STACKERROR + sec + rts +*-------------------------------------- +CC.Pop ldy CStackPtr + beq .9 + + lda (ZPCCStack),y + + inc CStackPtr clc rts @@ -1118,7 +585,17 @@ CC.Pop ldy StackPtr sec rts *-------------------------------------- -* CHAR related Subs..... +* ZPLineBufPtr related Subs..... +*-------------------------------------- +CC.SkipX txa +CC.SkipA clc + adc ZPLineBufPtr + sta ZPLineBufPtr + bcc .8 + + inc ZPLineBufPtr+1 + +.8 rts *-------------------------------------- CC.GetOPLen ldy #0 @@ -1190,10 +667,10 @@ CC.GetNextChar inc ZPLineBufPtr CC.GetChar lda (ZPLineBufPtr) bne .8 - lda hDefine + lda hDefineBuf beq .1 - stz hDefine + stz hDefineBuf phx phy @@ -1205,7 +682,7 @@ CC.GetChar lda (ZPLineBufPtr) ply plx bra CC.GetChar - + .1 lda #C.CR .8 clc @@ -1215,7 +692,23 @@ CC.GetChar lda (ZPLineBufPtr) sec .99 rts *--------------------------------------- -CC.IsEndArg +CC.IsEndArg cmp #']' + beq .8 + + cmp #';' + beq .8 + + cmp #',' + beq .8 + + cmp #')' + beq .8 + + sec + rts + +.8 clc + rts *--------------------------------------- CC.IsOPChar ldx #CC.OPChars.Cnt-1 @@ -1266,21 +759,6 @@ CC.IsDigit10 cmp #'0' .9 sec rts *-------------------------------------- -* in : Y,A = type/qual -* out : X = size -*-------------------------------------- -CC.GetVarSize and #CC.Q.PPPOINTER - bne .2 - - ldx CC.TYPESIZE-1,y - - clc - rts - -.2 ldx #2 pointer - sec +1 for hMem Storage - rts -*-------------------------------------- MAN SAVE usr/src/bin/cc.s.core LOAD usr/src/bin/cc.s diff --git a/BIN/CC.S.DECL.txt b/BIN/CC.S.DECL.txt new file mode 100644 index 00000000..11252f8c --- /dev/null +++ b/BIN/CC.S.DECL.txt @@ -0,0 +1,10 @@ +NEW + AUTO 3,1 + .LIST OFF +*-------------------------------------- +CC.DECL. +*-------------------------------------- +MAN +SAVE usr/src/bin/cc.s.decl +LOAD usr/src/bin/cc.s +ASM diff --git a/BIN/CC.S.DIR.txt b/BIN/CC.S.DIR.txt index 36c6450c..eeccec48 100644 --- a/BIN/CC.S.DIR.txt +++ b/BIN/CC.S.DIR.txt @@ -27,7 +27,7 @@ CC.DIR.DEFINE jsr CC.CheckSpace bcs .90 >LDA.G CC.hDefines - jsr CC.NewKey + jsr CC.SYM.NewKey bcs .99 >STYA ZPSymID diff --git a/BIN/CC.S.EXEC.txt b/BIN/CC.S.EXEC.txt index 15a62d4f..95ce4a2d 100644 --- a/BIN/CC.S.EXEC.txt +++ b/BIN/CC.S.EXEC.txt @@ -4,27 +4,30 @@ NEW *-------------------------------------- CC.BOPS.bMUL CC.BOPS.cMUL + inc pStack clc rts *-------------------------------------- CC.BOPS.bDIV CC.BOPS.cDIV + inc pStack clc rts *-------------------------------------- CC.BOPS.bMOD CC.BOPS.cMOD + inc pStack clc rts *-------------------------------------- -CC.BOPS.ADD clc +CC.BOPS.ADD clc >PULLA adc (pStack) sta (pStack) clc rts *-------------------------------------- -CC.BOPS.SUB sec +CC.BOPS.SUB sec ldy #1 lda (pStack),y sbc (pStack) @@ -33,56 +36,113 @@ CC.BOPS.SUB sec clc rts *-------------------------------------- -CC.BOPS.SHL lda (pStack) +CC.BOPS.SHL >PULLA tax beq .8 - ldy #1 - lda (pStack),y + lda (pStack) .1 asl dex bne .1 - sta (pStack),y + sta (pStack) -.8 inc pStack - clc - rts +.8 rts *-------------------------------------- -CC.BOPS.SHR lda (pStack) +CC.BOPS.SHR >PULLA tax beq .8 - ldy #1 - lda (pStack),y + lda (pStack) .1 lsr dex bne .1 - sta (pStack),y + sta (pStack) -.8 inc pStack - clc +.8 rts +*-------------------------------------- +CC.BOPS.L >PULLA + cmp (pStack) + bcc .8 + + lda #0 + sta (pStack) + rts + +.8 lda #1 + sta (pStack) rts *-------------------------------------- -CC.BOPS.L -CC.BOPS.G -CC.BOPS.LE -CC.BOPS.GE -CC.BOPS.EQ -CC.BOPS.NE +CC.BOPS.G >PULLA + cmp (pStack) + beq .1 + bcs .8 -CC.BOPS.AND -CC.BOPS.OR -CC.BOPS.EOR +.1 lda #0 + sta (pStack) + rts + +.8 lda #1 + sta (pStack) + rts +*-------------------------------------- +CC.BOPS.LE >PULLA + cmp (pStack) + bcc .8 + beq .8 + lda #0 + sta (pStack) + rts + +.8 lda #1 + sta (pStack) + rts +*-------------------------------------- +CC.BOPS.GE >PULLA + cmp (pStack) + bcs .8 + + lda #0 + sta (pStack) + rts + +.8 lda #1 + sta (pStack) + rts +*-------------------------------------- +CC.BOPS.EQ >PULLA + cmp (pStack) + beq .8 + + lda #0 + sta (pStack) + +.8 rts +*-------------------------------------- +CC.BOPS.NE >PULLA + eor (pStack) + sta (pStack) + rts +*-------------------------------------- CC.BOPS.LAND +CC.BOPS.AND >PULLA + and (pStack) + sta (pStack) + rts +*-------------------------------------- CC.BOPS.LOR - - - clc +CC.BOPS.OR >PULLA + ora (pStack) + sta (pStack) + rts +*-------------------------------------- +CC.BOPS.EOR >PULLA + eor (pStack) + sta (pStack) rts *-------------------------------------- MAN diff --git a/BIN/CC.S.EXP.txt b/BIN/CC.S.EXP.txt index f3436fa8..274c398b 100644 --- a/BIN/CC.S.EXP.txt +++ b/BIN/CC.S.EXP.txt @@ -6,43 +6,46 @@ NEW * ZPLineBufPtr, Y,A = Expected type/qual * Output: * CS, A = EC -* CC, Y,A = type/qual, Value on Stack +* CC, Y,A = type/qual *-------------------------------------- -CC.ExpEval ldx ZPPtr1 - phx - ldx ZPPtr1+1 local : used by lookup - phx +CC.EXP.Eval00 lda #0 + tay - ldx ZPPtr2 local : expected T/Q +CC.EXP.Eval ldx ZPPtr2 local : expected T/Q phx ldx ZPPtr2+1 phx ldx ZPPtr3 local : BOP phx - - ldx ZPPtr3+1 local : PREOPS + ldx ZPPtr3+1 local : PREOP phx - >STYA ZPPtr2 + >STYA ZPPtr2 lda #$ff no previous OP pha *-------------------------------------- .10 jsr CC.GetCharNB bcs .19 - - jsr CC.ExpPreops - bcs .19 -.11 cmp #'(' + cmp #'(' bne .20 jsr CC.GetNextCharNB skip ( bcs .19 - >LDYA ZPPtr2 expected T/Q - jsr CC.ExpEval + >LDYA L.CC.TYPEQUAL + jsr CC.LookupID + bcs .12 + + jsr CC.EXP.Cast + bcs .19 + + bra .20 +*-------------------------------------- +.12 >LDYA ZPPtr2 expected T/Q + jsr CC.EXP.Eval bcs .19 >STYA ZPPtr2 update T/Q @@ -56,32 +59,44 @@ CC.ExpEval ldx ZPPtr1 jsr CC.GetNextCharNB skip ) bcc .31 -.19 jmp .90 +.19 jmp CC.EXP.Eval.ESYN *-------------------------------------- -.20 jsr CC.IsLetter define, f() or Var ? +.20 jsr CC.ExpPreops + bcs .29 + + jsr CC.IsLetter define, f() or Var ? bcs .22 jsr CC.GetDefine bcc .10 - jsr CC.SymLookup + jsr CC.SYM.Lookup bcs .22 - >LDA.G CC.VarDef+1 qual - and #CC.Q.FUNC + ldy #SYM.Q + lda (ZPSymBufPtr),y + and #SYM.Q.FUNC bne .21 - jsr CC.ExpGet Check T/Q & Get value on stack + jsr CC.EXP.CheckGetSymType bcs .29 + jsr CC.EXP.Get Check T/Q & Get value on stack + bcs .29 + + jsr CC.SYM.FreeBufPop + bra .30 *-------------------------------------- .21 >LDYA ZPPtr2 get expected T/Q - jsr CC.fExecRetV + jsr CC.F.CallRetV bcs .29 >STYA ZPPtr2 store real T/Q + + jsr CC.SYM.FreeBufPop + bra .30 *-------------------------------------- .22 jsr CC.IsDigit10 number ? @@ -90,148 +105,181 @@ CC.ExpEval ldx ZPPtr1 ldy ZPPtr2 bne .23 - ldy #CC.T.SINT + ldy #SYM.T.SINT sty ZPPtr2 stz ZPPtr2+1 -.23 jsr CC.GetNumOnStack +.23 jsr CC.EXP.GetNum bcs .29 bra .30 - +*-------------------------------------- .24 cmp #'"' String literal - bne .90 + bne CC.EXP.Eval.ESYN jsr CC.AddContCharP -.29 bcs .99 +.29 bcs CC.EXP.Eval.Err *-------------------------------------- .30 jsr CC.GetCharNB - bcs .90 + bcs CC.EXP.Eval.ESYN -.31 cmp #';' - beq .80 - - cmp #',' - beq .80 - - cmp #')' - beq .80 +.31 jsr CC.IsEndArg , ; ) ? + bcc CC.EXP.Eval.End jsr CC.IsOPChar - bcs .90 + bcs CC.EXP.Eval.ESYN - >LDYA L.CC.BOPS we are at V1 op1 V2 op2... + >LDYA L.CC.BOPS we are at V1 op1 V2 op2... jsr CC.LookupOP - bcs .90 + bcs CC.EXP.Eval.ESYN stx ZPPtr3 save OP(n) -.32 plx get OP(n-1) - bmi .33 $ff.... +.33 plx get OP(n-1) + bmi .38 $ff.... cpx ZPPtr3 - bcc .33 OP(n) has precedence, on stack : V1,V2 + bcc .38 OP(n) has precedence, on stack : V1,V2 >LDYA ZPPtr2 OP(n-1) has precedence... - jsr CC.ExpBops compute V(n-1) V(n) - bcc .32 + jsr CC.EXP.BOPS compute V(n-1) V(n) + bcc .33 - bcs .99 + bcs CC.EXP.Eval.Err -.33 phx push back OP(n-1) +.38 phx push back OP(n-1) lda ZPPtr3 get OP(n) pha push OP(n) on stack jmp .10 go check for next token *-------------------------------------- -.80 plx any OP on stack ? - bmi .88 +CC.EXP.Eval.End plx any OP on stack ? + bmi CC.EXP.Eval.Exit >LDYA ZPPtr2 Var Type - jsr CC.ExpBops - bcc .80 + jsr CC.EXP.BOPS + bcc CC.EXP.Eval.End - bcs .99 + bra CC.EXP.Eval.Err +*-------------------------------------- +CC.EXP.Eval.ESYN + lda #E.ESYN -.90 lda #E.ESYN - -.99 plx - bpl .99 +CC.EXP.Eval.Err + plx + bpl CC.EXP.Eval.Err sec - bra .89 + bra CC.EXP.Eval.ExitErr +*-------------------------------------- +CC.EXP.Eval.Exit + >LDYA ZPPtr2 Type/Qual + clc -.88 clc - - >LDYA ZPPtr2 Type/Qual - -.89 plx +CC.EXP.Eval.ExitErr + plx stx ZPPtr3+1 plx stx ZPPtr3 + plx stx ZPPtr2+1 plx stx ZPPtr2 - plx - stx ZPPtr1+1 - plx - stx ZPPtr1 rts *-------------------------------------- +CC.EXP.CheckGetSymType + lda ZPPtr2 + ora ZPPtr2+1 + bne .1 + + lda (ZPSymBufPtr) + sta ZPPtr2 + + ldy #SYM.Q + lda (ZPSymBufPtr),y + sta ZPPtr2+1 + + clc + rts + +.1 >LDYA ZPPtr2 + jmp CC.SYM.CheckTypeYA +*-------------------------------------- +CC.EXP.Cast jsr CC.TYPE.Decl + bcs .99 + + >STYA ZPPtr2 + + jsr CC.GetCharNB + bcs .9 + + cmp #')' + bne .9 + + jsr CC.GetNextCharNB skip ) + + clc + rts + +.9 lda #E.ESYN + sec +.99 rts +*-------------------------------------- CC.ExpPreops >LDYA L.CC.PREOPS jsr CC.LookupOP bcc .8 - + ldx #$ff .8 stx ZPPtr3+1 - + jmp CC.GetCharNB *-------------------------------------- * Y,A = Type/Qual, X = OP *-------------------------------------- -CC.ExpBops cpy #CC.T.UINT +CC.EXP.BOPS cpy #SYM.T.UINT bcs .3 - cpy #CC.T.UCHAR + cpy #SYM.T.UCHAR beq .1 - cpy #CC.T.SCHAR + cpy #SYM.T.SCHAR beq .2 lda #E.TMISMATCH sec rts -.1 ldy J.CC.bBOPS,x - lda J.CC.bBOPS+1,x +.1 lda J.CC.bBOPS,x + ldy J.CC.bBOPS+1,x tax - jsr CODE.JSRYX + lda #$20 JSR + jsr CODE.TOABSYX clc rts -.2 ldy J.CC.cBOPS,x - lda J.CC.cBOPS+1,x +.2 lda J.CC.cBOPS,x + ldy J.CC.cBOPS+1,x tax - jsr CODE.JSRYX + lda #$20 JSR + jsr CODE.TOABSYX clc rts .3 txa clc - adc CC.Type2FPU-CC.T.UINT,y + adc CC.Type2FPU-SYM.T.UINT,y tax jsr CODE.FPUCALL clc rts *-------------------------------------- -CC.AddContCharP - ldy #0 +CC.AddContCharP ldy #0 .1 jsr CC.GetNextChar bcs .9 @@ -270,8 +318,7 @@ CC.AddContCharP sec rts *-------------------------------------- -CC.GetNumOnStack - cpy #CC.T.FLOAT +CC.EXP.GetNum cpy #SYM.T.FLOAT bcc .1 beq .11 @@ -310,6 +357,11 @@ CC.GetNumOnStack .3 bcs .9 + ldy #1 anticipate 2 bytes if * + lda ZPPtr2+1 + and #SYM.Q.PPPOINTER + bne .5 + ldx ZPPtr2 lda CC.TYPESIZE-1,x @@ -325,96 +377,235 @@ CC.GetNumOnStack * clc .9 rts *-------------------------------------- -CC.SymLookup >PUSHB.G CC.hSymbols - - >PUSHW ZPLineBufPtr - >SYSCALL SListLookup - bcs .9 - - phy - pha - - txa -* clc - adc ZPLineBufPtr - sta ZPLineBufPtr - bcc .1 - - inc ZPLineBufPtr+1 - -.1 >PUSHB.G CC.hSymbols - - pla - >PUSHA - pla - >PUSHA KeyID - - >PUSHEA.G CC.VarDef - >PUSHWI SYMDEFSIZE - >PUSHWZ From Start - >SYSCALL SListGetData -.9 rts -*-------------------------------------- * ZPPtr2 = expected T/Q * ZPPtr3+1 = PREOPS *-------------------------------------- -CC.ExpGet ldx ZPPtr3+1 - bmi CC.ExpGet2 +CC.EXP.Get >LDYA L.CC.AOPS + jsr CC.LookupOP + bcs .20 - jmp (J.CC.PREOPS,x) + >LDYA ZPPtr2 get expected T/Q + jsr CC.EXP.Eval + bcs .99 + + jsr CC.SYM.SetValue + bcs .99 + + clc + rts +*-------------------------------------- +.20 >LDYA L.CC.POSTOPS + jsr CC.LookupOP + bcs .1 + + cpx #4 '[' + bne * + + jmp CC.EXP.Array +*-------------------------------------- +.1 ldx ZPPtr3+1 preop + bpl .8 + + lda ZPPtr2 target T + beq .3 + + lda (ZPSymBufPtr) SYM.T + cmp #SYM.T.VOID + beq .2 + + cmp ZPPtr2 T + bne .9 + +.2 lda ZPPtr2+1 Q + + ldy #SYM.Q + cmp (ZPSymBufPtr),y + bne .9 + +.3 lda (ZPSymBufPtr) SYM.T + sta ZPPtr2 T + pha + ldy #SYM.Q + lda (ZPSymBufPtr),y + sta ZPPtr2+1 Q + ply Y,A = T/Q + + jsr CC.SYM.PushValue + + clc +.99 rts + +.9 lda #E.TMISMATCH + sec + rts + +.8 jmp (J.CC.PREOPS,x) +*-------------------------------------- +CC.EXP.Array ldy #SYM.Q + lda (ZPSymBufPtr),y + and #SYM.Q.AAARRAY + beq .9 + + jsr CC.EXP.PushDeref push base address + + ldy #SYM.T.SINT + lda #0 + + jsr CC.EXP.Eval + bcs .99 int16 on stack + + jsr CC.GetCharNB + bcs .9 + + cmp #']' + bne .9 + + jsr CC.GetNextCharNB skip ']' + bcs .9 + + jsr CC.SYM.GetSymSizeOfInAXC + + pha + txa + jsr CODE.PUSHI + pla + jsr CODE.PUSHI sizeof on stack + + ldx #FPU.iMUL + jsr CODE.FPUCALL sizeof*int16 + + ldx #FPU.iAdd + jsr CODE.FPUCALL add to base address + + lda (ZPSymBufPtr) SYM.T + pha + + ldy #SYM.Q + lda (ZPSymBufPtr),y + sec + sbc #SYM.Q.ARRAY + ply + + jsr CC.SYM.GetYASizeOfInAXC + jsr CODE.PushFromPtr A = byte count + + clc + rts + +.9 lda #E.ESYN + sec +.99 rts +*-------------------------------------- +CC.EXP.PushAddr ldy #SYM.Addr+1 + lda (ZPSymBufPtr),y + bne .7 +* LOCAL + jsr CODE.PUSHpBASEp1 + + ldy #SYM.Addr + lda (ZPSymBufPtr),y + eor #$FF + inc + jsr CODE.LDAI + jsr CODE.PUSHpBASEpA + + clc + rts +* DATASEG +.7 jsr CODE.PUSHI + + ldy #SYM.Addr + lda (ZPSymBufPtr),y + jsr CODE.PUSHI + + clc + rts +*-------------------------------------- +CC.EXP.PushDeref + ldy #SYM.Addr+1 + lda (ZPSymBufPtr),y + bne .7 +* LOCAL + jsr CODE.SETpBASEp1 + + ldy #SYM.Addr + lda (ZPSymBufPtr),y + eor #$FF + inc + jsr CODE.LDAI + jsr CODE.SETpBASEpA + + jsr CODE.Deref -CC.ExpGet.Ref >LDA.G CC.VarDef+5 DataPtr+1 - jsr CODE.PUSHI - >LDA.G CC.VarDef+4 DataPtr - jsr CODE.PUSHI + clc + rts +* DATASEG +.7 jsr CODE.LDAI + lda #$85 STA zp + jsr CODE.EmitByte + lda #ZPPtr1+1 + jsr CODE.EmitByte + + ldy #SYM.Addr + lda (ZPSymBufPtr),y + jsr CODE.LDAI + + lda #$85 STA zp + jsr CODE.EmitByte + lda #ZPPtr1+1 + jsr CODE.EmitByte + + jsr CODE.Deref clc rts +*-------------------------------------- +CC.EXP.GetRef ldy #SYM.Addr+1 + lda (ZPSymBufPtr),y + jsr CODE.PUSHI -CC.ExpGet.Deref + ldy #SYM.Addr + lda (ZPSymBufPtr),y + jsr CODE.PUSHI + lda (ZPSymBufPtr) SYM.T + + sta ZPPtr2 T + + ldy #SYM.Q + lda (ZPSymBufPtr),y clc - rts + adc #SYM.Q.POINTER + bcs .9 more than *** - -CC.ExpGet2 lda ZPPtr2 target type - beq .1 - - >LDA.G CC.VarDef Type - cmp #CC.T.VOID - beq .11 - - cmp ZPPtr2 - bne .9 - -.11 lda ZPPtr2+1 qual - >CMP.G CC.VarDef+1 - bne .9 - -.1 >LDA.G CC.VarDef Type - sta ZPPtr2 - pha - iny - lda (pData),y - sta ZPPtr2+1 qual - ply - - jsr CC.GetVarSize X = size - - >LDA.G CC.VarDef+4 DataPtr - pha - iny - lda (pData),y - ply - -.3 jsr CODE.PushXFromYA - clc + sta ZPPtr2+1 Q +* clc rts .9 lda #E.TMISMATCH sec rts *-------------------------------------- +CC.EXP.GetDeref + + clc + rts +*-------------------------------------- +CC.EXP.IntConst >PUSHW ZPLineBufPtr + >PUSHWI ZPLineBufPtr + >PUSHBI 10 + >SYSCALL StrToUL + + >PULLA + tay + + >PULLA + + inc pStack + inc pStack + + rts +*-------------------------------------- MAN SAVE usr/src/bin/cc.s.exp LOAD usr/src/bin/cc.s diff --git a/BIN/CC.S.F.txt b/BIN/CC.S.F.txt new file mode 100644 index 00000000..57540cc3 --- /dev/null +++ b/BIN/CC.S.F.txt @@ -0,0 +1,435 @@ +NEW + AUTO 3,1 + .LIST OFF +*-------------------------------------- +CC.F.Decl stz LocalPtr + + jsr CC.PushTQ push T/Q for RETURN + bcs .99 + + ldy #SYM.Q + lda #SYM.Q.FUNC + ora (ZPSymBufPtr),y + sta (ZPSymBufPtr),y + + ldx #$80 CPStmt.fDef state + jsr CC.STMT.CPStmt + bcs .99 + + jsr CC.SYM.NewScope + bcs .99 + + jsr CC.GetNextCharNB Skip ( + bcs .9 + + cmp #')' func() + beq .6 +*-------------------------------------- +.1 jsr CC.F.DeclGetTQ + bcs .99 + + >STYA ZPPtr2 Save T/Q + + jsr CC.F.AddTQ + + jsr CC.GetCharNB + bcs .9 + + jsr CC.IsLetter + bcs .2 + + jsr CC.SYM.Push + bcs .99 + + >LDYA ZPPtr2 + ldx #SYM.SC.AUTO + jsr CC.SYM.New + bcs .99 + + jsr CC.SYM.Store Store f() Args in Local scope + bcs .99 + + jsr CC.SYM.FreeBufPop + bcs .99 + + jsr CC.GetCharNB + bcs .9 + +.2 cmp #')' + beq .6 + + cmp #',' + bne .9 + + jsr CC.GetNextCharNB Skip , + bcc .1 + +.9 lda #E.CSYN + sec +.99 rts +*-------------------------------------- +.6 ldy #0 + lda #0 + jsr CC.F.AddTQ + + jsr CC.GetNextCharNB Skip ) + bcs .9 + + cmp #';' + bne .7 + + jsr CC.SYM.FreeScope discard local scope + + lda CStackPtr + clc + adc #6 + sta CStackPtr discard this CPStmt + + stz LocalPtr reset for DEBUG Message + + clc + rts +*-------------------------------------- +.7 cmp #'{' + bne .9 + + ldy #SYM.Addr+1 + lda (ZPSymBufPtr),y + dey + ora (ZPSymBufPtr),y + bne .90 Already populated by LINK + + >LDYA ZPCCCode f() Code starts HERE + jsr CC.SYM.SetAddrYA + + lda LocalPtr + jsr CODE.LDAI A = f() ARGS size + jsr CODE.Enter + + clc Store f() Declaration / Start Definition + rts + +.90 lda #E.REDEF + sec + rts +*-------------------------------------- +CC.F.DeclGetTQ lda (ZPLineBufPtr) + cmp #'.' + bne .5 + + ldx #2 + +.1 jsr CC.GetNextChar + bcs .9 + + cmp #'.' + bne .9 + + dex + bne .1 + + jsr CC.GetNextCharNB + bcs .9 + + eor #')' + bne .9 + + ldy #SYM.T.VARIADIC Type +* lda #0 Qual +* clc + rts +*-------------------------------------- +.5 >LDYA L.CC.TYPEQUAL + jsr CC.LookupID + bcs .9 + + jsr CC.TYPE.Decl + bcs .9 + +* Y,A = Type/Qual + + bra .8 + +.9 lda #E.CSYN + sec + +.8 rts +*-------------------------------------- +CC.F.Def.END jsr CODE.Leave + + jsr CC.Pop T + jsr CC.Pop Q + + jsr CC.SYM.FreeScope + + stz LocalPtr back to global + + clc + rts +*-------------------------------------- +* in : ZPSymPtr +* Y,A = Expected T/Q +*-------------------------------------- +CC.F.CallNoRetV clc + .HS B0 BCS +CC.F.CallRetV sec + + ldx ZPPtr1 local : variadic size + phx + ldx ZPPtr1+1 local : bRetV + phx + + ldx ZPPtr2 local : expected T + phx + ldx ZPPtr2+1 local : expected Q + phx + + >STYA ZPPtr2 + + ror ZPPtr1+1 bRetV + bpl .20 no return value on stack + + ldy #SYM.Addr+1 + lda (ZPSymBufPtr),y + cmp #2 + bcc .20 SYS/FPU call, no ret value space + + jsr CC.SYM.GetSymSizeOfInAXC + jsr CODE.nAddLocal + +.20 stz ZPPtr1 Reset VARIADIC byte count + + jsr CC.GetNextCharNB skip '(' + bcs .10 + + jsr CC.SYM.GetTypeInYA Y,A = f() Return value T/Q + + ldx ZPPtr2 expected T + beq .1 no check required + + cpy ZPPtr2 + bne .91 + + tax save full Q + + and #$fC ignore SYM.Q.FUNC,SYM.Q.FASTCALL + cmp ZPPtr2+1 + bne .91 + + txa + +.1 >STYA ZPPtr2 save full T/Q for later + + lda #SYM.Def + sta ZPSymSize + + jsr CC.F.GetTQ get First Arg T/Q + beq .7 end of list, go check ending ')' +*-------------------------------------- +.3 cpy #SYM.T.VARIADIC + bne .4 + + lda #0 Expected T/Q = 0 if VARIADIC + tay + +.4 jsr CC.EXP.Eval + bcs .93 + + jsr CC.SYM.GetYASizeOfInAXC + tax save Sizeof in X + + jsr CC.F.GetTQ + cpy #SYM.T.VARIADIC + bne .50 if VARIADIC, don't advance to next arg + + txa + clc make sure pointer only 2 bytes + adc ZPPtr1 + sta ZPPtr1 Add to byte count + bra .5 + +.50 inc ZPSymSize + inc ZPSymSize + +.5 jsr CC.GetCharNB + +.10 bcs .90 + + cmp #',' + bne .6 + + jsr CC.GetNextCharNB Skip ',' + + jsr CC.F.GetTQ + bne .3 Another ARG.... + + bra .90 extra args....error + +.6 cmp #')' + bne .90 + + jsr CC.F.GetTQ + beq .8 no more arg after ')', exit + + cpy #SYM.T.VARIADIC + bne .90 missing arg + + lda ZPPtr1 push VARIADIC byte count + + jsr CODE.PUSHI + +.7 jsr CC.GetCharNB + bcs .90 + + cmp #')' + bne .90 + +.8 jsr CC.GetNextCharNB Skip ) + + jsr CC.F.Call2 + bra .93 + +.90 lda #E.CSYN + bra .92 + +.91 lda #E.TMISMATCH + +.92 sec + +.93 plx + stx ZPPtr2+1 + plx + stx ZPPtr2 + + plx + stx ZPPtr1+1 + plx + stx ZPPtr1 + +.99 rts +*-------------------------------------- +* X = last var size +*-------------------------------------- +CC.F.Call2 lda ZPPtr2+1 + bit #SYM.Q.FASTCALL + beq .1 + + ldy #SYM.Def Get first (only) argument + jsr CC.F.GetTQAtY + jsr CC.TYPE.SizeOf + + dex + bne .19 + + jsr CODE.PULLA + bra .1 + +.19 jsr CODE.PULLYA + +.1 jsr CC.F.Call3 + bcs .9 + + bit ZPPtr1+1 bRetV + bmi .5 + +* NO Return Value : call & discard stack if not in Y,A + + >LDYA ZPPtr2 function T/Q + jsr CC.TYPE.SizeOf + txa + beq .11 void + + cpx #3 A or Y,A + bcc .11 + +.10 jsr CODE.INCPSTACK + dex + bne .10 + +.11 clc +.9 rts + +* Return Value : call & put result on stack if in Y,A + +.5 ldy #SYM.Addr+1 + lda (ZPSymBufPtr),y + cmp #2 + bcs .8 not a SYS/FPU call...Ret value on stack + + >LDYA ZPPtr2 function T/Q + jsr CC.TYPE.SizeOf + cpx #3 + bcs .8 leave on stack + + dex + bne .60 + + jsr CODE.PUSHA push ONE byte one stack + bra .8 + +.60 jsr CODE.PUSHYA push TWO bytes one stack + +.8 >LDYA ZPPtr2 T/Q + and #$FC ignore SYM.Q.FUNC+SYM.Q.FASTCALL + clc + rts +*-------------------------------------- +CC.F.Call3 ldy #SYM.Addr+1 + lda (ZPSymBufPtr),y + beq .9 + + pha + + dey + lda (ZPSymBufPtr),y + tax + + ply + + cpy #1 + bne .1 + + jsr CODE.SYSCALL + clc + rts + +.1 cpy #2 + bne .2 + + jsr CODE.FPUCALL + clc + rts + +.2 lda #$20 JSR abs + jsr CODE.TOABSYX Y=HI,X=LO + clc + rts + +.9 lda #E.FUNDEF + sec + rts +*-------------------------------------- +CC.F.AddTQ pha + tya + ldy ZPSymSize + sta (ZPSymBufPtr),y + iny + pla + sta (ZPSymBufPtr),y + iny + sty ZPSymSize + rts +*-------------------------------------- +CC.F.GetTQ ldy ZPSymSize + +CC.F.GetTQAtY lda (ZPSymBufPtr),y + pha + iny + lda (ZPSymBufPtr),y + ply + rts +*-------------------------------------- +MAN +SAVE usr/src/bin/cc.s.f +LOAD usr/src/bin/cc.s +ASM diff --git a/BIN/CC.S.KW.txt b/BIN/CC.S.KW.txt index 59b2ce4e..d04847c7 100644 --- a/BIN/CC.S.KW.txt +++ b/BIN/CC.S.KW.txt @@ -8,12 +8,10 @@ CC.KW.JMP txa >STA.G CC.CmdSave jmp (J.CC.KW,x) *-------------------------------------- -CC.WHILE jsr CC.PushCS push Test location for WHILE loop - bcc CC.IF - - rts +CC.KW.WHILE jsr CC.PushCS push cont: for WHILE loop + bcs CC.KW.IF.RTS *-------------------------------------- -CC.IF jsr CC.GetCharNB +CC.KW.IF jsr CC.GetCharNB bcs .9 cmp #'(' @@ -22,12 +20,15 @@ CC.IF jsr CC.GetCharNB jsr CC.GetNextCharNB bcs .9 - ldy #0 Any var type - lda #0 - jsr CC.ExpEval + jsr CC.EXP.Eval00 Any var type bcs .99 - jsr CC.IsValue0 + jsr CC.KW.TestZero + + jsr CC.PushCS push place to set JMP false + bcs .99 + + jsr CC.KW.ZPCCCodeAdd2 jsr CC.GetCharNB bcs .99 @@ -35,44 +36,21 @@ CC.IF jsr CC.GetCharNB cmp #')' bne .9 - jsr CC.GetNextCharNB skip ')' - bcs .9 + jmp CC.KW.BEGIN - jsr CC.PushCS push place to set JMP if false - bcs .99 - - lda ZPCCCode - clc - adc #2 - sta ZPCCCode - bcc .5 - - inc ZPCCCode+1 - -.5 >LDA.G CC.CmdSave - jsr CC.Push push IF / WHILE - bcs .99 - - lda #'}' end block expected - jmp CC.Push - .9 lda #E.CSYN sec -.99 rts +.99 +CC.KW.IF.RTS rts *-------------------------------------- -CC.IF.END jsr CC.Pop - bcs .9 - - sta ZPPtr1 - - jsr CC.Pop +CC.KW.IF.END jsr CC.PopYA bcs .9 - sta ZPPtr1+1 - + >STYA ZPPtr1 set JMP false + lda ZPCCCode sta (ZPPtr1) - + ldy #1 lda ZPCCCode+1 sta (ZPPtr1),y @@ -81,36 +59,34 @@ CC.IF.END jsr CC.Pop .9 rts *-------------------------------------- -CC.ELSE +CC.KW.ELSE clc rts *-------------------------------------- -CC.WHILE.END jsr CC.Pop +CC.KW.ELSE.END + + clc + rts +*-------------------------------------- +CC.KW.WHILE.END jsr CC.PopYA Get JMP false location + bcs .9 + + >STYA ZPPtr1 + + jsr CC.PopYA Get cont: address bcs .9 - sta ZPPtr1 - - jsr CC.Pop - bcs .9 - - sta ZPPtr1+1 - - jsr CC.Pop - bcs .9 - - pha - - jsr CC.Pop - bcs .9 - - tax - ply - jsr CODE.JMPYX + phy + tay HI byte + plx + + lda #$4C JMP cont: + jsr CODE.TOABSYX lda ZPCCCode sta (ZPPtr1) - + ldy #1 lda ZPCCCode+1 sta (ZPPtr1),y @@ -119,25 +95,201 @@ CC.WHILE.END jsr CC.Pop .9 rts *-------------------------------------- -CC.DO -CC.FOR -CC.SWITCH -CC.CASE -CC.BREAK -CC.CONTINUE -CC.SIZEOF -*-------------------------------------- -CC.TYPEDEF lda #E.CSYN +CC.KW.DO + lda #E.CSYN sec rts *-------------------------------------- -CC.STRUCT >ENTER 4 +CC.KW.DO.END + clc + rts +*-------------------------------------- +* for (e1;e2;e3) s; +* +* e1; +* while (e2) +* { +* s; +* cont: +* e3; +* } +* break: +*-------------------------------------- +CC.KW.FOR jsr CC.GetCharNB + bcs .19 + + cmp #'(' + bne .19 + + jsr CC.GetNextCharNB + bcs .19 + + jsr CC.EXP.Eval00 get e1 + bcs .29 + + jsr CC.KW.StackDiscard + + jsr CC.GetCharNB + bcs .19 + + cmp #';' + bne .19 + + jsr CC.GetNextCharNB skip ';' +.19 bcs .9 +*-------------------------------------- + >LDYA ZPCCCode + >STYA ZPPtr2 save LOOP address + + jsr CC.EXP.Eval00 get e2 +.29 bcs .99 + + jsr CC.KW.TestZero + + jsr CC.PushCS push place to set JMP break: + bcs .99 + + jsr CC.KW.ZPCCCodeAdd2 + + lda #$20 emit JSR s; + jsr CODE.EmitByte + + >LDYA ZPCCCode + >STYA ZPPtr3 save place to set JSR s + + jsr CC.KW.ZPCCCodeAdd2 space for 2-bytes address + + jsr CC.GetCharNB + bcs .9 + + cmp #';' + bne .9 + + jsr CC.GetNextCharNB skip ';' + bcs .9 +*-------------------------------------- + jsr CC.PushCS push cont: address + + jsr CC.EXP.Eval00 get e3 + bcs .99 + + jsr CC.KW.StackDiscard + + jsr CC.GetCharNB + bcs .9 + + cmp #')' + bne .9 + + lda #$4C + ldx ZPPtr2 + ldy ZPPtr2+1 + jsr CODE.TOABSYX JMP e2 + + lda ZPCCCode setup JSR s; + sta (ZPPtr3) + + lda ZPCCCode+1 + ldy #1 + sta (ZPPtr3),y + + jmp CC.KW.BEGIN + +.9 lda #E.CSYN + sec +.99 rts +*-------------------------------------- +CC.KW.FOR.END lda #$60 + + jsr CODE.EmitByte set RTS for JSR s; + + jsr CC.Pop + bcs .9 + + jsr CC.Pop discard cont: location + bcs .9 + + jsr CC.PopYA + bcs .9 + + >STYA ZPPtr1 get JMP break: location + + lda ZPCCCode + sta (ZPPtr1) + + ldy #1 + lda ZPCCCode+1 + sta (ZPPtr1),y + + clc + +.9 rts +*-------------------------------------- +CC.KW.SWITCH +CC.KW.CASE +CC.KW.BREAK +CC.KW.CONTINUE + lda #E.CSYN + sec + rts +*-------------------------------------- +CC.KW.RETURN ldy CStackPtr + beq .9 + +.1 iny skip ; or } + beq .9 + + lda (ZPCCStack),y + bmi .7 f() + + tya + clc + adc #3 skip CPStmt (4 bytes) + tay + bcc .1 + +.9 lda #E.STACKERROR + sec +.99 rts + +.7 iny skip bState + iny skip Locals + + iny get SYM.T + lda (ZPCCStack),y + + pha + + iny get SYM.Q + lda (ZPCCStack),y + + ply + + jsr CC.EXP.Eval + bcs .99 + + jsr CC.SYM.GetYASizeOfInAXC Y,A=T/Q + tax X = sizeof + jsr CODE.SetRetValue + + jsr CODE.Leave + + clc + rts +*-------------------------------------- +CC.KW.SIZEOF +*-------------------------------------- +CC.KW.TYPEDEF lda #E.CSYN + sec + rts +*-------------------------------------- +CC.KW.STRUCT >ENTER 4 jsr CC.GetCharNB bcs .99 >LDA.G CC.hTags - jsr CC.NewKey + jsr CC.SYM.NewKey bcs .99 sta (pStack) Y,A = KeyID @@ -163,21 +315,32 @@ CC.STRUCT >ENTER 4 .99 >LEAVE rts *-------------------------------------- +CC.KW.BEGIN jsr CC.GetNextCharNB + bcs .9 + + cmp #'{' + bne .7 + + >LDA.G CC.CmdSave + tax + jmp CC.STMT.CPStmt + +.7 >LDA.G CC.CmdSave + jsr CC.Push + bcs .99 + + lda #';' + jmp CC.Push + +.9 lda #E.CSYN + sec +.99 rts +*-------------------------------------- * Input : Value on Stack, Y,A = Type/Qual * Output : CC = true, CS = false *-------------------------------------- -CC.IsValue0 and #CC.Q.PPPOINTER - beq .2 - - ldx #2 - bra .6 - -.2 cpy #CC.T.FLOAT - bcc .5 char,int,long - - ldx #5 -*-------------------------------------- -.5 jsr CC.GetVarSize +CC.KW.TestZero jsr CC.SYM.GetYASizeOfInAXC + tax .6 lda #$A2 LDX #imm jsr CODE.EmitByte @@ -186,7 +349,7 @@ CC.IsValue0 and #CC.Q.PPPOINTER ldx #PCC.Test0X.L ldy #0 - + .7 lda PCC.Test0X,y jsr CODE.EmitByte iny @@ -196,142 +359,29 @@ CC.IsValue0 and #CC.Q.PPPOINTER clc rts *-------------------------------------- -* Type Declaration keywords -*-------------------------------------- -CC.CONST ldy #1 - - lda (pStack),y - ora #CC.Q.CONST - sta (pStack),y - - jsr CC.CheckSpace - bcs .9 - - >LDYA L.CC.TMODS2 - jsr CC.LookupID - bcs .9 - - jmp (J.CC.TMODS2,x) - -.9 lda #E.CSYN - sec - rts -*-------------------------------------- -CC.SIGNED sec - .HS 90 BCC -*-------------------------------------- -CC.UNSIGNED clc - php - - jsr CC.CheckSpace - bcs .9 - - >LDYA L.CC.TYPES - jsr CC.LookupID - - bcs .9 - - cpx #CC.T.UCHAR - bcc .9 void - - cpx #CC.T.SLONG+1 only char int long allowed - bcs .9 - - plp - bcs .8 - - jmp (J.CC.UTYPES-2,x) - -.8 jmp (J.CC.STYPES-2,x) - -.9 plp - - lda #E.CSYN - sec - rts -*-------------------------------------- -CC.SHORT jsr CC.CheckSpace - bcs .9 - - >LDYA L.CC.TYPES - jsr CC.LookupID - - bcs CC.UCHAR - - cpx #4 only int allowed - beq CC.SCHAR - -.9 lda #E.CSYN - sec - rts -*-------------------------------------- -CC.VOID lda #CC.T.VOID - bra CC.TYPE - -CC.CHAR -CC.UCHAR lda #CC.T.UCHAR - bra CC.TYPE - -CC.SCHAR lda #CC.T.SCHAR - bra CC.TYPE - -CC.UINT lda #CC.T.UINT - bra CC.TYPE - -CC.INT -CC.SINT lda #CC.T.SINT - bra CC.TYPE - -CC.ULONG lda #CC.T.ULONG - bra CC.TYPE - -CC.LONG -CC.SLONG lda #CC.T.SLONG - bra CC.TYPE - -CC.FLOAT lda #CC.T.FLOAT - -CC.TYPE sta (pStack) - - jsr CC.GetCharNB - bcs .9 - - ldy #1 - -.1 cmp #'*' - bne .10 - - lda (pStack),y +CC.KW.ZPCCCodeAdd2 + lda ZPCCCode clc - adc #CC.Q.POINTER - bcs .9 more than *** + adc #2 + sta ZPCCCode + bcc .8 - sta (pStack),y - - jsr CC.GetNextCharNB - bcc .1 - -.9 lda #E.CSYN - sec -.99 rts + inc ZPCCCode+1 -.10 jsr CC.IsLetter - bcs .8 +.8 rts +*-------------------------------------- +* Input : Value on Stack, Y,A = Type/Qual +*-------------------------------------- +CC.KW.StackDiscard - >LDYA L.CC.FTYPES - jsr CC.LookupID - bcs .8 next char is an identifier - - ldy #1 - lda (pStack),y - ora #CC.Q.FUNC+CC.Q.FASTCALL - sta (pStack),y + jsr CC.TYPE.SizeOf + txa + beq .8 void + + jsr CODE.AddLocal - jsr CC.GetNextCharNB - bcs .9 next char is an identifier, ",", "(",")" - .8 clc - rts +.9 rts *-------------------------------------- MAN SAVE usr/src/bin/cc.s.kw diff --git a/BIN/CC.S.STMT.txt b/BIN/CC.S.STMT.txt new file mode 100644 index 00000000..baaf2062 --- /dev/null +++ b/BIN/CC.S.STMT.txt @@ -0,0 +1,53 @@ +NEW + AUTO 3,1 + .LIST OFF +*-------------------------------------- +* X = KW.ID +*-------------------------------------- +CC.STMT.CPStmt lda LocalPtr Locals + jsr CC.Push + bcs .99 + + lda #0 bState + jsr CC.Push + bcs .99 + + txa + jsr CC.Push + bcs .99 + + lda #'}' + jmp CC.Push + +.99 rts +*-------------------------------------- +CC.STMT.CPStmt.END + jsr CC.Pop + bcs .9 + + cmp #'}' must be '}' on stack.... + bne .9 + + jsr CC.Pop get stacked KW... + tax + + jsr CC.Pop bState + + jsr CC.Pop Locals + sta LocalPtr + + txa + bmi .5 + + jmp (J.CC.KW.END,x) + +.5 jmp CC.F.Def.END + +.9 lda #E.CSYN + sec + rts +*-------------------------------------- +MAN +SAVE usr/src/bin/cc.s.stmt +LOAD usr/src/bin/cc.s +ASM diff --git a/BIN/CC.S.SYM.txt b/BIN/CC.S.SYM.txt new file mode 100644 index 00000000..a56f2956 --- /dev/null +++ b/BIN/CC.S.SYM.txt @@ -0,0 +1,556 @@ +NEW + AUTO 3,1 + .LIST OFF +*-------------------------------------- +* Input : ZPLineBufPtr, Y,A = T/Q, X = SC +* Output : Y,A = VarID +*-------------------------------------- +CC.SYM.New >STYA ZPPtr2 T/Q + stx ZPPtr3 SC + + ldy ScopePtr + lda (pData),y + sta hSymScope + jsr CC.SYM.NewKey + bcs .9 + + >STYA ZPSymID Y,A = KeyID, X = KeyLen + + >LDYAI 256 + >SYSCALL GetMem + bcs .9 + + >STYA ZPSymBufPtr + stx hSymBuf + + >LDYA ZPPtr2 + jsr CC.SYM.SetTypeYA + + lda ZPPtr3 + ldy #SYM.SC + sta (ZPSymBufPtr),y + + lda #SYM.Def + sta ZPSymSize + stz ZPSymSize+1 + + jsr CC.GetCharNB + bcs CC.SYM.SetAddr + + cmp #'(' + bne CC.SYM.NewV + + jmp CC.F.Decl + +.9 rts +*-------------------------------------- +CC.SYM.NewV cmp #'[' + bne CC.SYM.SetAddr + + jsr CC.GetNextCharNB Skip [ + bcs .99 + + cmp #']' + bne .3 + +.2 ldy #SYM.Q + lda (ZPSymBufPtr),y + bit #SYM.Q.PPPOINTER + beq .99 + + and #SYM.Q.AAARRAY + cmp #SYM.Q.AAARRAY + bcs .99 + +* ldy #SYM.Q + lda (ZPSymBufPtr),y +* clc + adc #SYM.Q.ARRAY + sta (ZPSymBufPtr),y + + jsr CC.GetNextCharNB Skip ] + bcs CC.SYM.SetAddr + + cmp #'[' + beq .2 + + bra CC.SYM.SetAddr +*-------------------------------------- +.3 jsr CC.EXP.IntConst + bcs .9 + + jsr CC.SYM.SetSizeOf + + jsr CC.GetCharNB + bcs .99 + + cmp #']' + bne .99 + + jsr CC.GetNextCharNB Skip ] + bcs CC.SYM.SetAddr + +* cmp #'[' +* bne CC.SYM.SetAddr + + bra CC.SYM.SetAddr + +.99 lda #E.CSYN + sec + +.9 rts +*-------------------------------------- +CC.SYM.SetAddr ldy #SYM.Q + lda (ZPSymBufPtr),y + and #SYM.Q.FUNC + bne .9 + + ldy #SYM.SC + lda (ZPSymBufPtr),y + beq CC.SYM.SetAddrG SYM.SC.STATIC + + cmp #SYM.SC.AUTO + beq CC.SYM.SetAddrL + +.9 lda #E.TMISMATCH + sec + rts +*-------------------------------------- +CC.SYM.SetAddrG jsr CC.SYM.GetSymSizeOfInAXC + jsr CC.SYM.SetSizeOf + +* clc / sec A,X=Size, CS if pointer + + ldy #SYM.Addr + + lda ZPCCData + sta (ZPSymBufPtr),y + + adc ZPCCData + sta ZPCCData + + iny + + lda ZPCCData+1 + sta (ZPSymBufPtr),y + + txa + adc ZPCCData+1 + sta ZPCCData+1 + + clc + rts +*-------------------------------------- +CC.SYM.SetAddrL jsr CC.SYM.GetSymSizeOfInAXC + jsr CC.SYM.SetSizeOf + + ldy #SYM.SizeOf+1 + lda (ZPSymBufPtr),y + bne .9 + + dey SYM.SizeOf + + lda (ZPSymBufPtr),y + +* clc / sec A,X=Size, CS if pointer + clc + adc LocalPtr + sta LocalPtr + bcs .9 + + ldy #SYM.Addr + sta (ZPSymBufPtr),y + + jsr CC.SYM.GetSymSizeOfInAXC + jsr CODE.nAddLocal + + clc + rts + +.9 lda #E.BUF + sec + rts +*-------------------------------------- +CC.SYM.NewKey >PUSHA + >PUSHW ZPLineBufPtr + >SYSCALL SListNewKey + bcs .9 + + phy + pha + + lda #0 + ldy #SYM.Addr + sta (ZPSymBufPtr),y + iny + sta (ZPSymBufPtr),y + + jsr CC.SYM.Link + + jsr CC.SkipX + + clc + + pla Y,A = KeyID, X = KeyLen + ply + +.9 rts +*-------------------------------------- +* Input : ZPLineBufPtr, X = KeyLen +*-------------------------------------- +CC.SYM.Link >LDYA L.CC.LIBC + >STYA ZPLookupPtr + + phx + + ldx #0 + +.1 lda (ZPLookupPtr) + beq .9 Ending 0, not found.... + + pla + pha Get Back Len + cmp (ZPLookupPtr) Same Len ? + bne .4 + + tay + +.2 lda (ZPLookupPtr),y + + dey + cmp (ZPLineBufPtr),y + bne .4 + + tya + bne .2 + + lda (ZPLookupPtr) + jsr CC.ZPLookupPtrAddAp1 Skip LEN\Symbol + + ldy #2 Skip LEN + lda (ZPLookupPtr),y + pha + dey + lda (ZPLookupPtr),y + ply + + jsr CC.SYM.SetAddrYA + + plx + clc + rts + +.4 inx + inx + + lda (ZPLookupPtr) + jsr CC.ZPLookupPtrAddAp1 Skip LEN\Symbol + + lda (ZPLookupPtr) + jsr CC.ZPLookupPtrAddAp1 Skip LEN\definition + bra .1 + +.9 plx + sec + rts +*-------------------------------------- +CC.SYM.Store >PUSHB hSymScope + >PUSHW ZPSymID + >PUSHW ZPSymBufPtr + >PUSHBI 0 + >PUSHB ZPSymSize + >SYSCALL SListAddData + rts +*-------------------------------------- +CC.SYM.NewScope ldy ScopePtr + cpy #CC.hSymbols+SCOPE.MAX-1 + bcs .9 + + >SYSCALL SListNew + bcs .99 + + inc ScopePtr + ldy ScopePtr + sta (pData),y + + dec ScopenCnt + clc + rts + +.9 lda #E.OOH + sec +.99 rts +*-------------------------------------- +CC.SYM.FreeScope + ldy ScopePtr + cpy #CC.hSymbols + beq * + + lda (pData),y + >SYSCALL SListFree + + dec ScopePtr + inc ScopenCnt + + rts +*-------------------------------------- +CC.SYM.Lookup jsr CC.SYM.Push + bcs .99 + + >PUSHB ScopePtr + +.1 tay + lda (pData),y + jsr CC.SListLookup + bcc .8 + + lda (pstack) + cmp #CC.hSymbols + beq .9 CS + + dec + sta (pstack) + bra .1 + +.9 jsr CC.SYM.Pop + + inc pStack + + lda #E.NOKEY + rts + +.8 stx hSymBuf + + >PULLA + tay + lda (pData),y + sta hSymScope + + txa + >SYSCALL GetMemPtr + >STYA ZPSymBufPtr + +.99 rts +*-------------------------------------- +CC.SYM.Push ldx #7 + +.1 lda ZPSymID,x + jsr CC.Push + bcs .9 + + dex + bpl .1 + +.9 rts +*-------------------------------------- +CC.SYM.FreeBuf lda hSymBuf + + stz hSymBuf + >SYSCALL FreeMem + rts +*-------------------------------------- +CC.SYM.FreeBufPop + jsr CC.SYM.FreeBuf +*-------------------------------------- +CC.SYM.Pop ldx #0 + +.1 jsr CC.Pop + bcs .9 + + sta ZPSymID,x + inx + cpx #8 + bne .1 + + clc +.9 rts +*-------------------------------------- +* Y,A = value T/Q +*-------------------------------------- +CC.SYM.PushValue + jsr CC.SYM.CheckTypeYA + bcs .9 + + jsr CC.SYM.GetSymSizeOfInAXC + tax + jsr CODE.LDXI + + jsr CC.SYM.GetAddrInYA + beq .1 + + jsr CODE.LDYAI + jsr CODE.PushXFromYA + + clc + rts + +.1 jsr CODE.GetLocal Y = local address + jsr CODE.PushXFromYA + + clc +.9 rts +*-------------------------------------- +CC.SYM.PopValue jsr CC.SYM.CheckTypeYA + bcs .9 + + jsr CC.SYM.GetSymSizeOfInAXC + tax + jsr CODE.LDXI + + jsr CC.SYM.GetAddrInYA + beq .1 + + jsr CODE.LDYAI + jsr CODE.PopXToYA + + clc + rts + +.1 jsr CODE.GetLocal Y = local address + jsr CODE.PopXToYA + + clc +.9 rts +*-------------------------------------- +CC.SYM.SetValue jsr CC.SYM.CheckTypeYA + bcs .9 + + jsr CC.SYM.GetSymSizeOfInAXC + tax + jsr CODE.LDXI + + jsr CC.SYM.GetAddrInYA + beq .1 + + jsr CODE.LDYAI + jsr CODE.SetXToYA + + clc + rts + +.1 jsr CODE.GetLocal Y = local address + jsr CODE.SetXToYA + + clc +.9 rts +*-------------------------------------- +* in : Y,A = T/Q +* out : CC +* CS, A = E.TMISMATCH +*-------------------------------------- +CC.SYM.CheckTypeYA + pha + tya + cmp (ZPSymBufPtr) + bne .9 + + pla + phy + ldy #SYM.Q + cmp (ZPSymBufPtr),y + bne .9 + + ply + + clc + rts + +.9 pla + + lda #E.TMISMATCH + sec + rts +*-------------------------------------- +* out : Y,A = T/Q +*-------------------------------------- +CC.SYM.GetTypeInYA + ldy #SYM.Q + lda (ZPSymBufPtr),y + pha + lda (ZPSymBufPtr) + tay + pla + rts +*-------------------------------------- +* in : Y,A = T/Q +*-------------------------------------- +CC.SYM.SetTypeYA + phy + ldy #SYM.Q + sta (ZPSymBufPtr),y + pla + sta (ZPSymBufPtr) + rts +*-------------------------------------- +* out : A,X,C = size +*-------------------------------------- +CC.SYM.GetSymSizeOfInAXC + ldy #SYM.Q + lda (ZPSymBufPtr),y + pha + lda (ZPSymBufPtr) SYM.T + tay + pla + +CC.SYM.GetYASizeOfInAXC + + bit #SYM.Q.PPPOINTER + bne .1 + + lda CC.TYPESIZE-1,y + ldx #0 + + clc + rts + +.1 lda #2 pointer + ldx #0 + + sec +1 for hMem Storage + rts +*-------------------------------------- +* in/out : A,X,C = size +*-------------------------------------- +CC.SYM.SetSizeOf + ldy #SYM.SizeOf + sta (ZPSymBufPtr),y + + pha + + iny + txa + sta (ZPSymBufPtr),y + + pla + rts +*-------------------------------------- +CC.SYM.GetAddrInYA + ldy #SYM.Addr+1 + lda (ZPSymBufPtr),y + pha + + dey #SYM.Addr + lda (ZPSymBufPtr),y + tay + + pla Z if Local + + rts +*-------------------------------------- +CC.SYM.SetAddrYA + phy + + ldy #SYM.Addr+1 + sta (ZPSymBufPtr),y + + pla + + dey + sta (ZPSymBufPtr),y + + rts +*-------------------------------------- +MAN +SAVE usr/src/bin/cc.s.sym +LOAD usr/src/bin/cc.s +ASM diff --git a/BIN/CC.S.TYPE.txt b/BIN/CC.S.TYPE.txt new file mode 100644 index 00000000..b691bc93 --- /dev/null +++ b/BIN/CC.S.TYPE.txt @@ -0,0 +1,187 @@ +NEW + AUTO 3,1 + .LIST OFF +*-------------------------------------- +CC.TYPE.Decl >ENTER 2 + lda #0 + sta (pStack) Type + ldy #1 + sta (pStack),y Qual + + jsr .7 + bcs .99 + + ldy #1 + lda (pStack),y + pha + lda (pStack) + tay Y = Type + pla A = Qual + + clc + +.99 >LEAVE + rts + +.7 jmp (J.CC.TYPEQUAL,x) +*-------------------------------------- +* Type Declaration keywords +*-------------------------------------- +CC.TYPE.CONST lda #SYM.Q.CONST + bra CC.TYPE.VOLATILE.1 +*-------------------------------------- +CC.TYPE.VOLATILE + lda #SYM.Q.VOLATILE +CC.TYPE.VOLATILE.1 + ldy #1 + ora (pStack),y + sta (pStack),y + + jsr CC.CheckSpace + bcs .9 + + >LDYA L.CC.TYPESPEC + jsr CC.LookupID + bcs .9 + + jmp (J.CC.TYPESPEC,x) + +.9 lda #E.CSYN + sec + rts +*-------------------------------------- +CC.TYPE.SIGNED sec + .HS 90 BCC +*-------------------------------------- +CC.TYPE.UNSIGNED + clc + php + + jsr CC.CheckSpace + bcs .9 + + >LDYA L.CC.TYPES + jsr CC.LookupID + + bcs .9 + + cpx #SYM.T.UCHAR + bcc .9 void + + cpx #SYM.T.SLONG+1 only char int long allowed + bcs .9 + + plp + bcs .8 + + jmp (J.CC.UTYPES-2,x) + +.8 jmp (J.CC.STYPES-2,x) + +.9 plp + + lda #E.CSYN + sec + rts +*-------------------------------------- +CC.TYPE.SHORT jsr CC.CheckSpace + bcs .9 + + >LDYA L.CC.TYPES + jsr CC.LookupID + + bcs CC.TYPE.UCHAR + + cpx #4 only int allowed + beq CC.TYPE.SCHAR + +.9 lda #E.CSYN + sec + rts +*-------------------------------------- +CC.TYPE.VOID lda #SYM.T.VOID + bra CC.TYPE + +CC.TYPE.CHAR +CC.TYPE.UCHAR lda #SYM.T.UCHAR + bra CC.TYPE + +CC.TYPE.SCHAR lda #SYM.T.SCHAR + bra CC.TYPE + +CC.TYPE.UINT lda #SYM.T.UINT + bra CC.TYPE + +CC.TYPE.INT +CC.TYPE.SINT lda #SYM.T.SINT + bra CC.TYPE + +CC.TYPE.ULONG lda #SYM.T.ULONG + bra CC.TYPE + +CC.TYPE.LONG +CC.TYPE.SLONG lda #SYM.T.SLONG + bra CC.TYPE + +CC.TYPE.FLOAT lda #SYM.T.FLOAT + +CC.TYPE sta (pStack) T + + jsr CC.GetCharNB + bcs .9 + +.1 cmp #'*' + bne .10 + + ldy #1 Q + lda (pStack),y + clc + adc #SYM.Q.POINTER + bcs .9 more than *** + + sta (pStack),y + + jsr CC.GetNextCharNB + bcc .1 + +.9 lda #E.CSYN + sec +.99 rts + +.10 jsr CC.IsLetter + bcs .8 + + >LDYA L.CC.FTYPES + jsr CC.LookupID + bcs .8 next char is an identifier + + ldy #1 + lda (pStack),y + ora #SYM.Q.FUNC+SYM.Q.FASTCALL + sta (pStack),y + + jsr CC.GetNextCharNB + bcs .9 next char is an identifier, ",", "(",")" + +.8 clc + rts +*-------------------------------------- +* in : Y,A = type/qual +* out : X = size +*-------------------------------------- +CC.TYPE.SizeOf bit #SYM.Q.PPPOINTER + bne .2 + + ldx CC.TYPESIZE-1,y + + clc + rts + +.2 ldx #2 pointer + sec +1 for hMem Storage + rts +*-------------------------------------- +MAN +SAVE usr/src/bin/cc.s.type +LOAD usr/src/bin/cc.s +ASM diff --git a/BIN/CC.S.txt b/BIN/CC.S.txt index 0dbfb73f..df1b9f7a 100644 --- a/BIN/CC.S.txt +++ b/BIN/CC.S.txt @@ -11,27 +11,41 @@ NEW .INB inc/mli.e.i *-------------------------------------- FILES.MAX .EQ 4 +SCOPE.MAX .EQ 16 *-------------------------------------- -CC.T.VOID .EQ 1 -CC.T.UCHAR .EQ 2 -CC.T.SCHAR .EQ 3 -CC.T.UINT .EQ 4 -CC.T.SINT .EQ 5 -CC.T.ULONG .EQ 6 -CC.T.SLONG .EQ 7 -CC.T.FLOAT .EQ 8 -CC.T.VARIADIC .EQ $FF -*-------------------------------------- -CC.Q.POINTER .EQ %01000000 -CC.Q.PPOINTER .EQ %10000000 -CC.Q.PPPOINTER .EQ %11000000 -CC.Q.ARRAY .EQ %00010000 -CC.Q.AARRAY .EQ %00100000 -CC.Q.AAARRAY .EQ %00110000 +SYM.T .EQ 0 +SYM.T.VOID .EQ 1 +SYM.T.UCHAR .EQ 2 +SYM.T.SCHAR .EQ 3 +SYM.T.UINT .EQ 4 +SYM.T.SINT .EQ 5 +SYM.T.ULONG .EQ 6 +SYM.T.SLONG .EQ 7 +SYM.T.FLOAT .EQ 8 +SYM.T.VARIADIC .EQ $FF +SYM.Q .EQ 1 +SYM.Q.POINTER .EQ %01000000 +SYM.Q.PPOINTER .EQ %10000000 +SYM.Q.PPPOINTER .EQ %11000000 +SYM.Q.ARRAY .EQ %00010000 +SYM.Q.AARRAY .EQ %00100000 +SYM.Q.AAARRAY .EQ %00110000 +SYM.Q.CONST .EQ %00001000 +SYM.Q.VOLATILE .EQ %00000100 +SYM.Q.FUNC .EQ %00000010 +SYM.Q.FASTCALL .EQ %00000001 +SYM.SC .EQ 2 +SYM.SC.STATIC .EQ 0 +SYM.SC.AUTO .EQ 2 +SYM.SC.REGISTER .EQ 4 +SYM.SC.EXTERN .EQ 6 +SYM.SC.TYPEDEF .EQ 8 * -CC.Q.CONST .EQ %00000100 -CC.Q.FUNC .EQ %00000010 -CC.Q.FASTCALL .EQ %00000001 +SYM.SizeOf .EQ 4 +SYM.Addr .EQ 6 +* .EQ 8 +* +SYM.Def .EQ 10 *-------------------------------------- * Zero Page Segment, up to 32 bytes *-------------------------------------- @@ -43,25 +57,26 @@ ZPCCConst .BS 2 ZPCCData .BS 2 ZPCCStack .BS 2 -ZPCCfDecl .BS 2 ZPLineBufPtr .BS 2 +ZPLookupPtr .BS 2 + +CStackPtr .BS 1 +LocalPtr .BS 1 + +ScopePtr .BS 1 +ScopenCnt .BS 1 + ZPSymID .BS 2 - -hDefine .BS 1 -StackPtr .BS 1 - -ZPSymDef .EQ * -ZPSymType .BS 1 -ZPSymQual .BS 1 -ZPSymSizeOf .BS 2 -ZPSymDataPtr .BS 2 -ZPSymDefPtr .BS 2 -SYMDEFSIZE .EQ *-ZPSymDef +hSymScope .BS 1 +hSymBuf .BS 1 +ZPSymSize .BS 2 +ZPSymBufPtr .BS 2 ZPPtr1 .BS 2 ZPPtr2 .BS 2 ZPPtr3 .BS 2 ArgIndex .BS 1 +hDefineBuf .BS 1 ZS.END .ED *-------------------------------------- @@ -74,7 +89,7 @@ CS.START cld .DA #0 S.PS.F.EVENT .DA #0 .DA CS.END-CS.START Code Size (without Constants) - .DA DS.END-DS.START Data SegmentSize + .DA DS.END-DS.START Data Size .DA #256 Stack Size .DA #ZS.END-ZS.START Zero Page Size .DA 0 @@ -91,13 +106,14 @@ L.MSG.USAGE .DA MSG.USAGE L.MSG.COMPILING .DA MSG.COMPILING L.MSG.DEBUG .DA MSG.DEBUG L.MSG.TRACE .DA MSG.TRACE +L.MSG.RTSTK .DA MSG.RTSTK L.MSG.ERROR .DA MSG.ERROR -L.MSG.RUN .DA MSG.RUN +L.MSG.NOMAIN .DA MSG.NOMAIN L.ENV.INCLUDE .DA ENV.INCLUDE *-------------------------------------- L.CC.PREOPS .DA CC.PREOPS -J.CC.PREOPS .DA CC.ExpGet.Ref - .DA CC.ExpGet.Deref +J.CC.PREOPS .DA CC.EXP.GetRef + .DA CC.EXP.GetDeref L.CC.POSTOPS .DA CC.POSTOPS L.CC.AOPS .DA CC.AOPS L.CC.BOPS .DA CC.BOPS @@ -139,45 +155,52 @@ J.CC.cBOPS .DA CC.BOPS.cMUL .DA CC.BOPS.LOR L.CC.DIRS .DA CC.DIRS L.CC.KW .DA CC.KW -L.CC.TMODS .DA CC.TMODS -L.CC.TMODS2 .DA CC.TMODS2 +L.CC.TYPEQUAL .DA CC.TYPEQUAL +L.CC.TYPESPEC .DA CC.TYPESPEC L.CC.TYPES .DA CC.TYPES L.CC.FTYPES .DA CC.FTYPES J.CC.DIRS .DA CC.DIR.DEFINE .DA CC.DIR.INCLUDE -J.CC.KW .DA CC.IF - .DA CC.WHILE - .DA CC.ELSE - .DA CC.DO - .DA CC.FOR - .DA CC.SWITCH - .DA CC.CASE - .DA CC.BREAK - .DA CC.CONTINUE - .DA CC.SIZEOF *-------------------------------------- - .DA CC.TYPEDEF - .DA CC.STRUCT +J.CC.KW .DA CC.KW.IF + .DA CC.KW.WHILE + .DA CC.KW.ELSE + .DA CC.KW.DO + .DA CC.KW.FOR + .DA CC.KW.SWITCH + .DA CC.KW.CASE + .DA CC.KW.BREAK + .DA CC.KW.CONTINUE + .DA CC.KW.RETURN *-------------------------------------- -J.CC.TMODS .DA CC.CONST -J.CC.TMODS2 .DA CC.SIGNED - .DA CC.UNSIGNED - .DA CC.SHORT -J.CC.TYPES .DA CC.VOID - .DA CC.CHAR - .DA CC.INT - .DA CC.LONG - .DA CC.FLOAT -J.CC.UTYPES .DA CC.UCHAR - .DA CC.UINT - .DA CC.ULONG -J.CC.STYPES .DA CC.SCHAR - .DA CC.SINT - .DA CC.SLONG + .DA CC.KW.SIZEOF + .DA CC.KW.TYPEDEF + .DA CC.KW.STRUCT *-------------------------------------- -J.CC.KW.END .DA CC.IF.END - .DA CC.WHILE.END +J.CC.KW.END .DA CC.KW.IF.END + .DA CC.KW.WHILE.END + .DA CC.KW.ELSE.END + .DA CC.KW.DO.END + .DA CC.KW.FOR.END *-------------------------------------- +J.CC.TYPEQUAL .DA CC.TYPE.CONST + .DA CC.TYPE.VOLATILE +J.CC.TYPESPEC .DA CC.TYPE.SIGNED + .DA CC.TYPE.UNSIGNED + .DA CC.TYPE.SHORT +J.CC.TYPES .DA CC.TYPE.VOID + .DA CC.TYPE.CHAR + .DA CC.TYPE.INT + .DA CC.TYPE.LONG + .DA CC.TYPE.FLOAT +J.CC.UTYPES .DA CC.TYPE.UCHAR + .DA CC.TYPE.UINT + .DA CC.TYPE.ULONG +J.CC.STYPES .DA CC.TYPE.SCHAR + .DA CC.TYPE.SINT + .DA CC.TYPE.SLONG +*-------------------------------------- +L.CC.MAIN .DA CC.MAIN L.CC.LIBC .DA CC.LIBC .DA 0 *-------------------------------------- @@ -198,7 +221,7 @@ CS.RUN >PUSHW L.MSG.GREETINGS lda #hFilePtr >STA.G hFilePtr - + lda #LineCntPtr >STA.G LineCntPtr @@ -216,32 +239,19 @@ CS.RUN >PUSHW L.MSG.GREETINGS jsr CC.Init bcs CS.INIT.RTS *-------------------------------------- -CS.RUN.LOOP >SLEEP +CS.RUN.LOOP jsr CC.CompileFile - >LDA.G bDebug - bpl .2 - - jsr PrintDebugMsg - -.2 jsr CS.RUN.FGetS - bcs .4 - - >LDA.G bTrace - bpl .3 - - jsr PrintTraceMsg - -.3 jsr CC.Run - bcc CS.RUN.LOOP -*-------------------------------------- -.4 cmp #MLI.E.EOF + cmp #MLI.E.EOF bne .9 -.7 jsr CS.RUN.FClose + jsr CS.RUN.FClose bne CS.RUN.LOOP +*-------------------------------------- + jsr CC.MainExec + bcc .8 - jsr CS.RUN.EXEC - bcs .9 + >LDYA L.MSG.NOMAIN + >SYSCALL puts .8 lda #0 Exit Code = Success sec @@ -253,15 +263,6 @@ CS.RUN.LOOP >SLEEP sec rts *-------------------------------------- -CS.RUN.EXEC lda #$60 RTS - sta (ZPCCCode) - >DEBUG - >LDA.G CC.hCode - >SYSCALL GetMemPtr - >STYA ZPCCCode - - jmp (ZPCCCode) -*-------------------------------------- CS.RUN.ARGS inc ArgIndex lda ArgIndex @@ -298,7 +299,7 @@ CS.RUN.ARGS inc ArgIndex >LDYA ZPPtr1 jsr CS.RUN.FOpen bcc CS.RUN.ARGS - + rts .7 >LDA.G hFilePtr @@ -331,7 +332,7 @@ CS.RUN.FOpen >PUSHYA tay txa sta (pData),y - + >LDA.G LineCntPtr inc inc @@ -353,7 +354,7 @@ CS.RUN.FGetS >LDYA.G LineBufPtr inc sta (pData),y bne .1 - + iny lda (pData),y inc @@ -367,29 +368,37 @@ CS.RUN.FGetS >LDYA.G LineBufPtr >PUSHW ZPLineBufPtr >PUSHWI 255 >SYSCALL FGetS + bcs .9 - rts + >LDA.G bTrace + bpl .8 + + jsr PrintTraceMsg + +.8 + +.9 rts *-------------------------------------- CS.RUN.FClose >LDA.G hFilePtr cmp #hFilePtr beq .8 - + tay lda (pData),y >SYSCALL FClose - + >LDA.G hFilePtr dec sta (pData),y cmp #hFilePtr beq .8 - + >LDA.G LineCntPtr dec dec sta (pData),y NZ - + .8 rts *-------------------------------------- CS.DOEVENT sec @@ -397,8 +406,32 @@ CS.DOEVENT sec *-------------------------------------- CS.QUIT jsr CC.Quit - - clc + >LDA.G hLineBuf + beq .8 + + >SYSCALL FreeMem + +.8 clc + rts +*-------------------------------------- +PrintTraceMsg ldy #S.PS.hStdErr + lda (pPS),y + >PUSHA + + >PUSHW L.MSG.TRACE + + >LDA.G LineCntPtr + inc + tay + lda (pData),y + >PUSHA + dey + lda (pData),y + >PUSHA + >PUSHW.G LineBufPtr + >PUSHBI 4 + >SYSCALL FPrintF + rts *-------------------------------------- PrintDebugMsg >PUSHW L.MSG.DEBUG @@ -407,6 +440,51 @@ PrintDebugMsg >PUSHW L.MSG.DEBUG >PUSHW ZPCCConst >PUSHW ZPCCData + lda pStack + clc + adc #8 + pha + lda pStack+1 + adc #0 + >PUSHA + pla + >PUSHA + + >PUSHB LocalPtr + + >PUSHW ZPCCStack + + >PUSHB CStackPtr + tay + beq .1 + + lda (ZPCCStack),y + pha + iny + lda (ZPCCStack),y + ply + +.1 >PUSHYA + + >PUSHBI 14 + >SYSCALL PrintF + >DEBUGOA + rts +*-------------------------------------- +PrintRTStackTrace + pha + phx + phy + + >PUSHW L.MSG.RTSTK + >PUSHW pBase + + >PUSHW ZPPtr1 + + ldy #1 + >PUSHB (ZPPtr1),y + >PUSHB (ZPPtr1) + lda pStack clc adc #8 @@ -419,30 +497,13 @@ PrintDebugMsg >PUSHW L.MSG.DEBUG >PUSHBI 8 >SYSCALL PrintF - >DEBUG + + ply + plx + pla rts *-------------------------------------- -PrintTraceMsg ldy #S.PS.hStdErr - lda (pPS),y - >PUSHA - - >PUSHW L.MSG.TRACE - - >LDA.G LineCntPtr - inc - tay - lda (pData),y - >PUSHA - dey - lda (pData),y - >PUSHA - >PUSHW.G LineBufPtr - >PUSHBI 4 - >SYSCALL FPrintF - - rts -*-------------------------------------- -PrintErrorMsg lda hDefine +PrintErrorMsg lda hDefineBuf beq .10 >LDYA.G CC.SaveDefine @@ -489,39 +550,85 @@ PrintErrorMsg lda hDefine .INB usr/src/bin/cc.s.code .INB usr/src/bin/cc.s.core .INB usr/src/bin/cc.s.dir + .INB usr/src/bin/cc.s.decl + .INB usr/src/bin/cc.s.stmt .INB usr/src/bin/cc.s.kw + .INB usr/src/bin/cc.s.type + .INB usr/src/bin/cc.s.f .INB usr/src/bin/cc.s.exp + .INB usr/src/bin/cc.s.sym .INB usr/src/bin/cc.s.exec *-------------------------------------- -CS.END -*-------------------------------------- -* Initialized DATA -*-------------------------------------- -MSG.GREETINGS .AZ "\r\nA2osX C Compiler %d.%d\r\n\r\n" -MSG.USAGE .AS "Usage : CC