Kernel 0.9.1 : ASM ...

This commit is contained in:
Rémy GIBERT 2018-01-23 07:31:16 +00:00
parent c5959af52d
commit c9a37c4fad
5 changed files with 65 additions and 52 deletions

Binary file not shown.

View File

@ -26,7 +26,8 @@ DIR.AZ clc
rts rts
*--------------------------------------- *---------------------------------------
DIR.BS jsr SRC.GetNextCharNB DIR.BS jsr SRC.GetNextCharNB
beq .98 bcs .98
jsr EXP.Eval jsr EXP.Eval
bcs .9 bcs .9
@ -42,7 +43,7 @@ DIR.BS jsr SRC.GetNextCharNB
stz DIR.Byte stz DIR.Byte
jsr SRC.GetNextChar jsr SRC.GetNextChar
beq .1 bcs .1
cmp #' ' cmp #' '
beq .1 beq .1
@ -176,10 +177,9 @@ DIR.EP ldy #ASM.PH.ON
rts rts
*--------------------------------------- *---------------------------------------
DIR.EQ jsr SRC.GetNextCharNB DIR.EQ jsr SRC.GetNextCharNB
beq .99 bcs .99
>DEBUG >DEBUG
jsr EXP.Eval jsr EXP.Eval
bcs .9 bcs .9
@ -215,7 +215,7 @@ DIR.HS clc
rts rts
*--------------------------------------- *---------------------------------------
DIR.IN jsr SRC.GetNextCharNB DIR.IN jsr SRC.GetNextCharNB
beq .9 bcs .9
>LDYA ZPLinePtr >LDYA ZPLinePtr
>SYSCALL RealPath.YA >SYSCALL RealPath.YA
@ -240,7 +240,7 @@ DIR.IN jsr SRC.GetNextCharNB
rts rts
*--------------------------------------- *---------------------------------------
DIR.LI jsr SRC.GetNextCharNB DIR.LI jsr SRC.GetNextCharNB
beq DIR.LI.9 bcs DIR.LI.9
>LDYA L.T.LI >LDYA L.T.LI
jsr SRC.GetKeyword jsr SRC.GetKeyword
@ -275,7 +275,7 @@ DIR.LI.9 lda #ERR.SYNTAX.ERROR
rts rts
*--------------------------------------- *---------------------------------------
DIR.MA jsr SRC.GetNextCharNB DIR.MA jsr SRC.GetNextCharNB
beq .9 bcs .9
.1 jsr FIO.ReadLine .1 jsr FIO.ReadLine
bcs .99 bcs .99
@ -294,21 +294,26 @@ DIR.MA jsr SRC.GetNextCharNB
beq .3 beq .3
.2 jsr SRC.GetNextChar skip label .2 jsr SRC.GetNextChar skip label
beq .8 bcs .8
cmp #' ' cmp #' '
bne .2 bne .2
.3 jsr SRC.GetNextCharNB Scan for an Opcode... .3 jsr SRC.GetNextCharNB Scan for an Opcode...
beq .8 bcs .8
cmp #'.' cmp #'.'
bne .8 bne .8
jsr SRC.GetNextChar jsr SRC.GetNextChar
beq .8 bcs .8
cmp #'E' cmp #'E'
bne .8 bne .8
jsr SRC.GetNextChar jsr SRC.GetNextChar
beq .8 bcs .8
cmp #'M' cmp #'M'
bne .8 bne .8
clc clc
@ -340,7 +345,7 @@ DIR.OP.SYNERR lda #ERR.SYNTAX.ERROR
rts rts
*--------------------------------------- *---------------------------------------
DIR.OR jsr SRC.GetNextCharNB DIR.OR jsr SRC.GetNextCharNB
beq DIR.OP.SYNERR bcs DIR.OP.SYNERR
jsr EXP.Eval jsr EXP.Eval
bcs .9 bcs .9

View File

@ -28,7 +28,7 @@ EXP.Eval.Missing lda #ERR.MISSING.EXP
rts rts
EXP.Eval.Next jsr SRC.GetNextCharUC EXP.Eval.Next jsr SRC.GetNextCharUC
beq EXP.Eval.Missing bcs EXP.Eval.Missing
EXP.Eval.Next1 cmp #'.' Local Label? EXP.Eval.Next1 cmp #'.' Local Label?
bne .12 bne .12
@ -88,10 +88,10 @@ EXP.Eval.Next1 cmp #'.' Local Label?
.4 cmp #''' .4 cmp #'''
bne .43 bne .43
jsr SRC.GetNextChar jsr SRC.GetNextChar
beq EXP.EvalExitSYN bcs EXP.EvalExitSYN
jsr EXP.SetAccA jsr EXP.SetAccA
jsr SRC.GetNextChar jsr SRC.GetNextChar
beq EXP.EvalOperator bcs EXP.EvalOperator
cmp #''' cmp #'''
bne EXP.EvalExitSYN bne EXP.EvalExitSYN
bra EXP.EvalOperator bra EXP.EvalOperator
@ -99,11 +99,11 @@ EXP.Eval.Next1 cmp #'.' Local Label?
.43 cmp '"' .43 cmp '"'
bne .42 bne .42
jsr SRC.GetNextChar jsr SRC.GetNextChar
beq EXP.EvalExitSYN bcs EXP.EvalExitSYN
ora #$80 ora #$80
jsr EXP.SetAccA jsr EXP.SetAccA
jsr SRC.GetNextChar jsr SRC.GetNextChar
beq EXP.EvalOperator bcs EXP.EvalOperator
cmp #'"' cmp #'"'
bne EXP.EvalExitSYN bne EXP.EvalExitSYN
bra EXP.EvalOperator bra EXP.EvalOperator
@ -134,7 +134,7 @@ EXP.EvalOperator lda EXP.Operator
bcs EXP.EvalExitRTS bcs EXP.EvalExitRTS
.7 jsr SRC.GetNextChar .7 jsr SRC.GetNextChar
beq EXP.EvalExitOK bcs EXP.EvalExitOK
cmp #' ' cmp #' '
beq EXP.EvalExitOK beq EXP.EvalExitOK

View File

@ -77,12 +77,13 @@ SRC.ParseLine lda (ZPLineBuf)
cpx #'.' local symbol? cpx #'.' local symbol?
bne .2 bne .2
>DEBUG
jsr SRC.GetNextChar skip '.' jsr SRC.GetNextChar skip '.'
beq SRC.ParseLine.Inv bcs SRC.ParseLine.Inv
jsr SRC.GetDecimal jsr SRC.GetDecimal
bcs SRC.ParseLine.Inv bcs SRC.ParseLine.Inv
lda SRC.ACC+1 lda SRC.ACC+1
ora SRC.ACC+2 ora SRC.ACC+2
ora SRC.ACC+3 ora SRC.ACC+3
@ -103,7 +104,7 @@ SRC.ParseLine lda (ZPLineBuf)
.3 bcs SRC.ParseLine.Err .3 bcs SRC.ParseLine.Err
.4 jsr SRC.GetNextCharNB Scan for an Opcode... .4 jsr SRC.GetNextCharNB Scan for an Opcode...
beq SRC.ParseLine.Ok bcs SRC.ParseLine.Ok
cmp #'.' cmp #'.'
bne .5 bne .5
@ -162,7 +163,8 @@ SRC.ParseLine.SymR lda #ERR.RANGE
rts rts
*--------------------------------------- *---------------------------------------
SRC.ParseLine.SymP jsr SRC.GetNextChar SRC.ParseLine.SymP jsr SRC.GetNextChar
beq SRC.ParseLine.Inv bcs SRC.ParseLine.Inv
jsr SRC.GetDecimal jsr SRC.GetDecimal
bcs SRC.ParseLine.Inv bcs SRC.ParseLine.Inv
jmp SYM.AddPrivate jmp SYM.AddPrivate
@ -276,7 +278,7 @@ SRC.ParseLine.AM stz SRC.AM.ID
stz SRC.AM.StrBuf stz SRC.AM.StrBuf
.1 jsr SRC.GetNextCharUC any arg immediately after ' '? .1 jsr SRC.GetNextCharUC any arg immediately after ' '?
beq .8 no, AM.ID=0 (implied) bcs .8 no, AM.ID=0 (implied)
cmp #' ' another space ? cmp #' ' another space ?
beq .8 ignore end of line (comment) beq .8 ignore end of line (comment)
@ -313,9 +315,11 @@ SRC.ParseLine.AM stz SRC.AM.ID
inc SRC.AM.tmpBuf inc SRC.AM.tmpBuf
.3 jsr SRC.GetNextCharUC .3 jsr SRC.GetNextCharUC
beq .4 bcs .4
jsr SRC.IsLetterOrDigit jsr SRC.IsLetterOrDigit
bcs .4 bcs .4
inc SRC.AM.tmpBuf inc SRC.AM.tmpBuf
ldx SRC.AM.tmpBuf ldx SRC.AM.tmpBuf
sta SRC.AM.tmpBuf,x sta SRC.AM.tmpBuf,x
@ -407,7 +411,7 @@ SRC.GetDecimal stz SRC.ACC+1
sta SRC.ACC sta SRC.ACC
.1 jsr SRC.GetNextChar .1 jsr SRC.GetNextChar
beq .8 bcs .8
cmp #' ' cmp #' '
beq .8 beq .8
@ -455,16 +459,16 @@ SRC.GetHex stz SRC.ACC+1
stz SRC.ACC+3 stz SRC.ACC+3
jsr SRC.GetNextChar jsr SRC.GetNextChar
bcs .99
lda (ZPLinePtr)
beq .99
jsr SRC.IsDigit16 jsr SRC.IsDigit16
bcs .99 bcs .99
sta SRC.ACC sta SRC.ACC
.1 jsr SRC.GetNextChar .1 jsr SRC.GetNextChar
beq .8 bcs .8
cmp #' ' cmp #' '
beq .8 beq .8
jsr SRC.IsEXPReserved jsr SRC.IsEXPReserved
@ -502,7 +506,7 @@ SRC.GetOctal stz SRC.ACC+1
stz SRC.ACC+3 stz SRC.ACC+3
jsr SRC.GetNextChar jsr SRC.GetNextChar
bcs .99
lda (ZPLinePtr) lda (ZPLinePtr)
beq .99 beq .99
@ -513,7 +517,7 @@ SRC.GetOctal stz SRC.ACC+1
sta SRC.ACC sta SRC.ACC
.1 jsr SRC.GetNextChar .1 jsr SRC.GetNextChar
beq .8 bcs .8
cmp #' ' cmp #' '
beq .8 beq .8
@ -560,9 +564,7 @@ SRC.GetBinary stz SRC.ACC+1
stz SRC.ACC+3 stz SRC.ACC+3
jsr SRC.GetNextChar jsr SRC.GetNextChar
bcs .99
lda (ZPLinePtr)
beq .99
cmp #'1' cmp #'1'
beq .10 beq .10
@ -574,7 +576,7 @@ SRC.GetBinary stz SRC.ACC+1
sta SRC.ACC sta SRC.ACC
.1 jsr SRC.GetNextChar .1 jsr SRC.GetNextChar
beq .8 bcs .8
cmp #' ' cmp #' '
beq .8 beq .8
@ -683,6 +685,7 @@ SRC.IsMODReserved ldx SRC.MOD.RESERVED
bne .1 bne .1
sec sec
rts rts
.8 clc .8 clc
rts rts
*--------------------------------------- *---------------------------------------
@ -693,6 +696,7 @@ SRC.IsEXPReserved ldx SRC.EXP.RESERVED
bne .1 bne .1
sec sec
rts rts
.8 clc .8 clc
rts rts
*--------------------------------------- *---------------------------------------
@ -745,39 +749,45 @@ SRC.IsDigit8 cmp #'0'
rts rts
*--------------------------------------- *---------------------------------------
SRC.GetNextCharNB jsr SRC.GetNextCharUC SRC.GetNextCharNB jsr SRC.GetNextCharUC
beq .9 bcs .9
cmp #' ' cmp #' '
beq SRC.GetNextCharNB beq SRC.GetNextCharNB
clc
.9 rts .9 rts
*--------------------------------------- *---------------------------------------
SRC.GetNextCharUC jsr SRC.GetNextChar SRC.GetNextCharUC jsr SRC.GetNextChar
beq .9
cmp #'a'
bcc .9
cmp #'z'+1
bcs .9 bcs .9
eor #$20 to Uppercase
.9 rts
*---------------------------------------
SRC.GetCharUC lda (ZPLinePtr)
beq .9
cmp #'a' cmp #'a'
bcc .9 bcc .8
cmp #'z'+1 cmp #'z'+1
bcs .9 bcs .8
eor #$20 to Uppercase eor #$20 to Uppercase
.8 clc
.9 rts .9 rts
*--------------------------------------- *---------------------------------------
SRC.GetNextChar lda (ZPLinePtr) SRC.GetNextChar lda (ZPLinePtr)
beq .9 beq .9
cmp #$0D
beq .9
inc ZPLinePtr inc ZPLinePtr
bne .1 bne .8
inc ZPLinePtr+1 inc ZPLinePtr+1
.1 lda (ZPLinePtr) .8 lda (ZPLinePtr)
.9 rts beq .9
cmp #$0D
beq .9
clc
rts
.9 sec
rts
*--------------------------------------- *---------------------------------------
SRC.ACC10 lda SRC.ACC ACC*2-> ACC & ACCTMP SRC.ACC10 lda SRC.ACC ACC*2-> ACC & ACCTMP
asl asl

View File

@ -126,8 +126,6 @@ SYM.AddGlobal lda #SYM.F.RESOLVED
.9 rts .9 rts
*--------------------------------------- *---------------------------------------
SYM.UpdateGlobal >PUSHB.G SYM.hGlobals SYM.UpdateGlobal >PUSHB.G SYM.hGlobals
>DEBUG
>PUSHW.G ASM.SYM.ID >PUSHW.G ASM.SYM.ID
>PUSHEA.G SYM.Global >PUSHEA.G SYM.Global