mirror of
https://github.com/A2osX/A2osX.git
synced 2025-04-04 03:32:12 +00:00
Kernel 0.93
This commit is contained in:
parent
3b2644c338
commit
8314b5b9cc
Binary file not shown.
@ -287,7 +287,9 @@ DIR.EP >LDA.G ASM.PH.ON
|
||||
DIR.SE sec
|
||||
.HS 90 BCC
|
||||
*---------------------------------------
|
||||
DIR.EQ >LDA.G SYM.bNewGlobal
|
||||
DIR.EQ clc
|
||||
|
||||
>LDA.G SYM.bNewGlobal
|
||||
bpl .99
|
||||
|
||||
jsr SRC.GetNextCharNB
|
||||
@ -296,6 +298,9 @@ DIR.EQ >LDA.G SYM.bNewGlobal
|
||||
jsr EXP.Eval
|
||||
bcs .9
|
||||
|
||||
lda #$ff
|
||||
>STA.G OUT.bEquate
|
||||
|
||||
jsr SYM.Acc2Global
|
||||
jmp SYM.StoreGlobal
|
||||
|
||||
@ -559,17 +564,20 @@ DIR.TI clc
|
||||
DIR.US clc
|
||||
rts
|
||||
*---------------------------------------
|
||||
DIR.SavePC ldx #3
|
||||
phy
|
||||
DIR.SavePC phy
|
||||
plx
|
||||
|
||||
ldy #ASM.PC+3
|
||||
|
||||
.1 lda (pData),y
|
||||
pha
|
||||
dey
|
||||
dex
|
||||
bpl .1
|
||||
cpy #ASM.PC-1
|
||||
bne .1
|
||||
|
||||
phx
|
||||
ply
|
||||
|
||||
ldx #3
|
||||
|
||||
.2 pla
|
||||
|
@ -37,7 +37,8 @@ EXP.Eval >STZ.G EXP.Modifier
|
||||
|
||||
EXP.Eval.Next0 jsr SRC.GetNextChar
|
||||
|
||||
EXP.Eval.Next lda #2
|
||||
EXP.Eval.Next stz SRC.ACC.F
|
||||
lda #2
|
||||
sta SRC.ACC.SIZE Default To WORD (2 bytes)
|
||||
|
||||
stz SRC.ACC
|
||||
@ -204,7 +205,7 @@ EXP.GetSymL jsr SRC.GetNextChar
|
||||
bne EXP.EvalExitUND
|
||||
|
||||
lda #SYMG.F.FWREF Mark ACC as pending
|
||||
sta SRC.ACC.F
|
||||
tsb SRC.ACC.F
|
||||
stz SRC.ACC.SIZE
|
||||
|
||||
clc
|
||||
@ -278,7 +279,10 @@ EXP.Compute ldx SRC.ACC.SIZE
|
||||
sec
|
||||
rts
|
||||
|
||||
.8 clc
|
||||
.8 lda #SYMG.F.FWREF Mark ACC as pending
|
||||
tsb SRC.ACC.F
|
||||
stz SRC.ACC.SIZE
|
||||
clc
|
||||
rts
|
||||
*---------------------------------------
|
||||
EXP.OP.EOR ldx #3
|
||||
|
@ -149,11 +149,12 @@ OUT.PrintLineOutBuf
|
||||
lda L.MSG.OUT0+1,x
|
||||
>SYSCALL printf
|
||||
rts
|
||||
|
||||
*---------------------------------------
|
||||
OUT.PrintLineAcc
|
||||
ldx SRC.ACC.SIZE
|
||||
lda SRC.ACC.SIZE
|
||||
beq .2
|
||||
|
||||
tax
|
||||
ldy #0
|
||||
|
||||
.1 >PUSHB SRC.ACC,y
|
||||
@ -162,11 +163,15 @@ OUT.PrintLineAcc
|
||||
bne .1
|
||||
|
||||
lda SRC.ACC.SIZE
|
||||
>PUSHA Byte Count
|
||||
|
||||
.2 >PUSHA Byte Count
|
||||
asl
|
||||
tax
|
||||
|
||||
.2 ldy L.MSG.EQU0,x
|
||||
cpx #9
|
||||
bcs *
|
||||
|
||||
ldy L.MSG.EQU0,x
|
||||
lda L.MSG.EQU0+1,x
|
||||
>SYSCALL printf
|
||||
rts
|
||||
|
@ -96,6 +96,7 @@ SYM.Dump >LDA.G ASM.LI.ON
|
||||
>PUSHW ZPGlobalBuf
|
||||
>PUSHW ZPPtr1 KeyID
|
||||
>LDA.G SYM.hGlobalList
|
||||
|
||||
>SYSCALL SListGetData
|
||||
bcs SYM.Quit.RTS
|
||||
|
||||
@ -123,12 +124,12 @@ SYM.Dump >LDA.G ASM.LI.ON
|
||||
lda L.MSG.EQU0+1,x
|
||||
>SYSCALL printf
|
||||
|
||||
>PUSHW ZPNameBuf Label
|
||||
>PUSHBI 2
|
||||
>LDYA L.MSG.LABEL
|
||||
>PUSHBI 0
|
||||
>LDYA ZPNameBuf Label
|
||||
>SYSCALL printf
|
||||
|
||||
lda (ZPGlobalBuf)
|
||||
|
||||
bit #SYMG.F.LOCALS
|
||||
beq .7
|
||||
|
||||
@ -137,9 +138,7 @@ SYM.Dump >LDA.G ASM.LI.ON
|
||||
.4 lda (ZPGlobalBuf),y
|
||||
beq .7 End Local Symbol
|
||||
|
||||
iny
|
||||
lda (ZPGlobalBuf),y Get ID
|
||||
pha
|
||||
pha Save ID
|
||||
|
||||
ldx #4
|
||||
|
||||
@ -190,6 +189,10 @@ SYM.NewGlobal jsr SYM.StoreGlobal
|
||||
lda #SYMG
|
||||
|
||||
>STA.G SYM.GlobalPtr
|
||||
tay
|
||||
|
||||
lda #0
|
||||
sta (ZPGlobalBuf),y
|
||||
|
||||
lda #$ff
|
||||
>STA.G SYM.bNewGlobal
|
||||
@ -268,8 +271,9 @@ SYM.StoreGlobal >LDA.G ASM.PASS
|
||||
cpy #SYMG
|
||||
beq .1
|
||||
|
||||
lda #SYMG.F.LOCALS
|
||||
tsb SRC.ACC.F
|
||||
lda (ZPGlobalBuf)
|
||||
ora #SYMG.F.LOCALS
|
||||
sta (ZPGlobalBuf)
|
||||
|
||||
lda #0
|
||||
sta (ZPGlobalBuf),y
|
||||
@ -302,16 +306,17 @@ SYM.PC2Acc ldy #ASM.PC+3
|
||||
|
||||
lda #2
|
||||
sta SRC.ACC.SIZE
|
||||
stz SRC.ACC.F
|
||||
|
||||
rts
|
||||
*---------------------------------------
|
||||
SYM.Acc2Global ldy #0
|
||||
SYM.Acc2Global ldy #SYMG-1
|
||||
|
||||
.2 lda SRC.ACC.F,y
|
||||
sta (ZPGlobalBuf),y
|
||||
|
||||
iny
|
||||
cpy #SYMG
|
||||
bne .2
|
||||
dey
|
||||
bpl .2
|
||||
rts
|
||||
*---------------------------------------
|
||||
SYM.Lookup2Acc ldy #SYMG.F+4
|
||||
@ -336,11 +341,11 @@ SYM.Lookup2Acc ldy #SYMG.F+4
|
||||
*---------------------------------------
|
||||
SYM.NewOrGetLocalA
|
||||
tax Save ID
|
||||
>DEBUG
|
||||
|
||||
>LDA.G SYM.bNewGlobal not in a global label
|
||||
bpl .91
|
||||
|
||||
>LDA.G ASM.PASS
|
||||
>LDA.G ASM.PASS Pass #2: should be already defined...
|
||||
bne SYM.GetLocalX
|
||||
|
||||
jsr SYM.GetLocalX Pass #1; try to add
|
||||
@ -348,7 +353,6 @@ SYM.NewOrGetLocalA
|
||||
|
||||
>LDA.G SYM.GlobalPtr
|
||||
tay
|
||||
inc
|
||||
beq .90
|
||||
|
||||
ldy #ASM.PC+4
|
||||
@ -359,9 +363,8 @@ SYM.NewOrGetLocalA
|
||||
cpy #ASM.PC
|
||||
bne .1
|
||||
|
||||
lda (ZPGlobalBuf)
|
||||
>LDA.G SYM.GlobalPtr
|
||||
tay
|
||||
iny
|
||||
|
||||
txa Get Back ID
|
||||
sta (ZPGlobalBuf),y
|
||||
@ -392,13 +395,14 @@ SYM.NewOrGetLocalA
|
||||
sec
|
||||
rts
|
||||
*---------------------------------------
|
||||
SYM.GetLocalX >LDA.G SYM.GlobalPtr Pass #2: should be already defined...
|
||||
SYM.GetLocalX >LDA.G SYM.GlobalPtr
|
||||
|
||||
beq .9
|
||||
|
||||
tay
|
||||
|
||||
.1 txa
|
||||
.1 lda (ZPGlobalBuf),y
|
||||
beq .9
|
||||
|
||||
txa
|
||||
cmp (ZPGlobalBuf),y
|
||||
bne .3
|
||||
|
||||
@ -418,7 +422,6 @@ SYM.GetLocalX >LDA.G SYM.GlobalPtr Pass #2: should be already defined...
|
||||
clc
|
||||
adc #SYML
|
||||
tay
|
||||
inc
|
||||
bne .1
|
||||
|
||||
.9 lda #ERR.UNDEF.SYMBOL
|
||||
|
@ -124,7 +124,6 @@ L.MSG.LSYMBOL .DA MSG.LSYMBOL
|
||||
L.MSG.SRCLINE .DA MSG.SRCLINE
|
||||
L.MSG.ERROR .DA MSG.ERROR
|
||||
L.MSG.SYMBOLS .DA MSG.SYMBOLS
|
||||
L.MSG.LABEL .DA MSG.LABEL
|
||||
L.MSG.CRLF .DA MSG.CRLF
|
||||
L.MSG.SUMMARY .DA MSG.SUMMARY
|
||||
L.MSG.PASS .DA MSG.PASS
|
||||
@ -459,11 +458,10 @@ MSG.EQU1 .AZ " [ %h]"
|
||||
MSG.EQU2 .AZ " [ %h%h]"
|
||||
MSG.EQU3 .AZ " [ %h%h%h]"
|
||||
MSG.EQU4 .AZ " [%h%h%h%h]"
|
||||
MSG.LSYMBOL .AZ ", .%d=%h%h%h%h"
|
||||
MSG.LSYMBOL .AZ " .%d=%h%h%h%h"
|
||||
MSG.SRCLINE .AZ " %05D %s\r\n"
|
||||
MSG.ERROR .AZ "*** Fatal Error $%h "
|
||||
MSG.ERROR .AZ "*** Fatal Error $%h"
|
||||
MSG.SYMBOLS .AZ "Symbol Table:"
|
||||
MSG.LABEL .AZ " %s "
|
||||
MSG.CRLF .AZ " \r\n"
|
||||
MSG.SUMMARY .AZ "\r\nSymbol Table Size : %5D Bytes.\r\nEnd Of Assembly.\r\n"
|
||||
SRC.MOD.RESERVED >PSTR "#/^<>"
|
||||
|
@ -44,7 +44,6 @@ L.MSG.CRLF .DA MSG.CRLF
|
||||
L.MSG.LINENUM .DA MSG.LINENUM
|
||||
L.MSG.CTRLCHAR .DA MSG.CTRLCHAR
|
||||
L.ASCII .DA ASCII
|
||||
L.MSG.STACK .DA MSG.STACK
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
CS.INIT clc
|
||||
@ -284,15 +283,8 @@ CS.RUN.CLOSE >LDA.G hFILE
|
||||
CS.DOEVENT sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
PrintStack >PUSHW pStack
|
||||
>PUSHBI 2
|
||||
>LDYA L.MSG.STACK
|
||||
>SYSCALL printf
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.END
|
||||
*--------------------------------------
|
||||
MSG.STACK .AZ ">%H:"
|
||||
OptionList >PSTR "ANSans"
|
||||
OptionVars .DA #bPrintAll,#bLineNum,#bSuppressBlankLine,#bPrintAll,#bLineNum,#bSuppressBlankLine
|
||||
*--------------------------------------
|
||||
|
@ -13,8 +13,12 @@ AUTO 4,1
|
||||
*--------------------------------------
|
||||
FILEBUF.SIZE .EQ 4096
|
||||
*--------------------------------------
|
||||
ZPPtr1 .EQ ZPBIN
|
||||
ZPDataBufPtr .EQ ZPBIN+2
|
||||
.DUMMY
|
||||
.OR ZPBIN
|
||||
ZS.START
|
||||
ZPPtr1 .BS 2
|
||||
ZPDataBufPtr .BS 2
|
||||
ZS.END .ED
|
||||
*--------------------------------------
|
||||
* File Header (16 Bytes)
|
||||
*--------------------------------------
|
||||
@ -26,7 +30,7 @@ CS.START cld
|
||||
.DA CS.END-CS.START CS
|
||||
.DA DS.END-DS.START DS
|
||||
.DA #16 SS
|
||||
.DA #4 ZP
|
||||
.DA #ZS.END-ZS.START ZP
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
* Relocation Table
|
||||
|
Loading…
x
Reference in New Issue
Block a user