mirror of
https://github.com/A2osX/A2osX.git
synced 2024-09-10 07:54:37 +00:00
Kernel 0.9.1 : ASM ...
This commit is contained in:
parent
c5959af52d
commit
c9a37c4fad
Binary file not shown.
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user