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

View File

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

View File

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

View File

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