mirror of
https://github.com/A2osX/A2osX.git
synced 2024-10-05 03:57:31 +00:00
Kernel 0.9.1 : ASM ...
This commit is contained in:
parent
25071e2798
commit
3dc0e991f5
Binary file not shown.
Binary file not shown.
@ -322,8 +322,7 @@ DIR.MA jsr SRC.GetNextCharNB
|
||||
clc
|
||||
rts
|
||||
|
||||
.8 ldy #ASM.PASS If Pass#2, ignore
|
||||
lda (pData),y
|
||||
.8 >LDA.G ASM.PASS If Pass#2, ignore
|
||||
bne .1
|
||||
|
||||
|
||||
|
@ -90,11 +90,13 @@ EXP.Eval.Next1 cmp #'.' Local Label?
|
||||
bne .43
|
||||
jsr SRC.GetNextChar
|
||||
bcs EXP.EvalExitSYN
|
||||
|
||||
jsr EXP.SetAccA
|
||||
jsr SRC.GetNextChar
|
||||
bcs EXP.EvalOperator
|
||||
cmp #'''
|
||||
bne EXP.EvalExitSYN
|
||||
jsr SRC.GetNextChar
|
||||
bra EXP.EvalOperator
|
||||
|
||||
.43 cmp '"'
|
||||
@ -107,13 +109,14 @@ EXP.Eval.Next1 cmp #'.' Local Label?
|
||||
bcs EXP.EvalOperator
|
||||
cmp #'"'
|
||||
bne EXP.EvalExitSYN
|
||||
jsr SRC.GetNextChar
|
||||
bra EXP.EvalOperator
|
||||
|
||||
.42 jsr SRC.IsLetter Symbol ?
|
||||
bcs EXP.EvalExitSYN
|
||||
|
||||
jsr EXP.GetSymbol
|
||||
bcs EXP.EvalExitRTS
|
||||
bcs EXP.EvalExitUND
|
||||
bra EXP.EvalOperator
|
||||
|
||||
EXP.EvalExitOK clc
|
||||
@ -182,45 +185,14 @@ EXP.SetAccA sta SRC.ACC
|
||||
stz SRC.ACC+3
|
||||
rts
|
||||
*---------------------------------------
|
||||
EXP.GetSymbol >PUSHB.G SYM.hGlobals
|
||||
>PUSHW ZPLinePtr
|
||||
>PUSHEA.G SYM.Global
|
||||
EXP.GetSymbol jsr SYM.LookupGlobal
|
||||
bcc .9
|
||||
|
||||
>SYSCALL SListLookup
|
||||
bcs .2
|
||||
|
||||
adc ZPLinePtr
|
||||
sta ZPLinePtr
|
||||
bcc .1
|
||||
|
||||
inc ZPLinePtr+1
|
||||
|
||||
.1 clc
|
||||
rts
|
||||
|
||||
.2 ldy #ASM.PASS
|
||||
lda (pData),y pass#2?
|
||||
.2 >LDA.G ASM.PASS pass#2?
|
||||
bne .99 yes, undefined symbol
|
||||
|
||||
>PUSHB.G SYM.hGlobals
|
||||
>PUSHW ZPLinePtr
|
||||
>PUSHEA.G SYM.Global
|
||||
|
||||
lda #6
|
||||
>STA.G SYM.Global+SYM.LEN
|
||||
|
||||
lda #0
|
||||
>STA.G SYM.Global+SYM.F
|
||||
|
||||
>SYSCALL SListAdd
|
||||
bcs .9
|
||||
|
||||
adc ZPLinePtr
|
||||
sta ZPLinePtr
|
||||
bcc .3
|
||||
|
||||
inc ZPLinePtr+1
|
||||
|
||||
lda #0 Add Pending....
|
||||
jsr SYM.AddGlobal
|
||||
.3 clc
|
||||
rts
|
||||
|
||||
@ -231,8 +203,7 @@ EXP.GetSymbol >PUSHB.G SYM.hGlobals
|
||||
EXP.Compute dec
|
||||
asl
|
||||
tax
|
||||
* ldy #ASM.PASS
|
||||
* lda (pData),y pass#2?
|
||||
* >LDA.G ASM.PASS pass#2?
|
||||
* beq .8
|
||||
jmp (J.EXP.OP,x)
|
||||
.8 clc
|
||||
|
35
BIN/ASM.S.MAC.txt
Normal file
35
BIN/ASM.S.MAC.txt
Normal file
@ -0,0 +1,35 @@
|
||||
NEW
|
||||
PREFIX /A2OSX.BUILD
|
||||
AUTO 4,1
|
||||
*---------------------------------------
|
||||
MAC.Init >SYSCALL SListNew
|
||||
bcs .9
|
||||
|
||||
>STA.G MAC.hMacros
|
||||
|
||||
>LDYAI 256
|
||||
>SYSCALL GetMem.YA
|
||||
bcs .9
|
||||
|
||||
>STYA ZPMacroBuf
|
||||
txa
|
||||
>STA.G MAC.hBuf
|
||||
|
||||
.9 rts
|
||||
*---------------------------------------
|
||||
MAC.Quit >LDA.G MAC.hBuf
|
||||
beq .1
|
||||
|
||||
>SYSCALL FreeMem.A
|
||||
|
||||
.1 >LDA.G MAC.hMacros
|
||||
beq .8
|
||||
>SYSCALL SListFree.A
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
*---------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.BUILD/BIN/DEV/ASM.S.MAC
|
||||
LOAD /A2OSX.BUILD/BIN/DEV/ASM.S
|
||||
ASM
|
@ -2,9 +2,7 @@ NEW
|
||||
PREFIX /A2OSX.BUILD
|
||||
AUTO 4,1
|
||||
*---------------------------------------
|
||||
SRC.PrintLine bra .8
|
||||
|
||||
>LDA.G ASM.MACRO.ON
|
||||
SRC.PrintLine >LDA.G ASM.MACRO.ON
|
||||
bpl .1
|
||||
|
||||
>LDA.G ASM.LI.CON
|
||||
@ -71,7 +69,7 @@ SRC.ParseLine lda #0
|
||||
beq SRC.ParseLine.DirOp
|
||||
|
||||
cmp #'.' local symbol?
|
||||
bne .2
|
||||
bne .1
|
||||
|
||||
jsr SRC.GetNextChar
|
||||
bcs SRC.ParseLine.InvLbl
|
||||
@ -86,27 +84,39 @@ SRC.ParseLine lda #0
|
||||
beq SRC.ParseLine.InvLbl .0 is not allowed
|
||||
|
||||
jsr SYM.AddLocalPC
|
||||
|
||||
bra .7
|
||||
bcs .9
|
||||
bra SRC.ParseLine.DirOp
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
.9 rts
|
||||
|
||||
.2 lda #$ff
|
||||
.1 lda #$ff
|
||||
>STA.G SYM.bGlobal
|
||||
|
||||
>LDA.G ASM.PASS
|
||||
beq .6
|
||||
bne .3
|
||||
|
||||
jsr SYM.LookupGlobal
|
||||
bcs SRC.ParseLine.Undef
|
||||
* jsr SYM.UpdateGlobal
|
||||
jsr SYM.AddGlobalPC Pass #1; try to add global...
|
||||
bcc SRC.ParseLine.DirOp yes!!! go scan dir/op
|
||||
|
||||
jsr SYM.LookupGlobal already defined...get it
|
||||
|
||||
>LDA.G SYM.Lookup+SYM.F
|
||||
bit #SYM.F.RW
|
||||
bne .2 R/W, always update...
|
||||
|
||||
bit #SYM.F.RESOLVED
|
||||
bne SRC.ParseLine.Redef
|
||||
|
||||
.2 jsr SYM.UpdateGlobal
|
||||
bra SRC.ParseLine.DirOp
|
||||
|
||||
.6 jsr SYM.AddGlobalPC
|
||||
.3 jsr SYM.LookupGlobal Pass #2: shoould be already defined...
|
||||
bcs SRC.ParseLine.Undef
|
||||
|
||||
.7 bcs SRC.ParseLine.Redef
|
||||
jsr SYM.UpdateGlobal
|
||||
|
||||
*---------------------------------------
|
||||
SRC.ParseLine.DirOp jsr SRC.GetNextCharNB Scan for an Opcode...
|
||||
bcs SRC.ParseLine.Ok
|
||||
|
||||
@ -123,7 +133,7 @@ SRC.ParseLine.DirOp jsr SRC.GetNextCharNB Scan for an Opcode...
|
||||
.5 cmp #'>'
|
||||
bne .6
|
||||
|
||||
jsr SRC.ParseLine.Exec.Macro
|
||||
jsr SRC.ParseLine.Macro
|
||||
bcs SRC.ParseLine.Err
|
||||
bra SRC.ParseLine.Ok
|
||||
|
||||
@ -157,11 +167,13 @@ SRC.ParseLine.Dir >LDYA L.T.DIRECTIVES
|
||||
|
||||
jmp (J.DIRECTIVES,x)
|
||||
*---------------------------------------
|
||||
SRC.ParseLine.Exec.Macro
|
||||
clc
|
||||
rts
|
||||
*---------------------------------------
|
||||
SRC.ParseLine.Add.Macro
|
||||
SRC.ParseLine.Macro >LDA.G ASM.PASS
|
||||
bne .1
|
||||
|
||||
|
||||
|
||||
|
||||
.1
|
||||
clc
|
||||
rts
|
||||
*---------------------------------------
|
||||
|
@ -39,23 +39,9 @@ SYM.Init >SYSCALL SListNew
|
||||
txa
|
||||
>STA.G SYM.hLocalBuf
|
||||
|
||||
>LDYAI 256
|
||||
>SYSCALL GetMem.YA
|
||||
bcs .9
|
||||
|
||||
>STYA ZPMacroBuf
|
||||
txa
|
||||
>STA.G MAC.hBuf
|
||||
|
||||
|
||||
.9 rts
|
||||
*---------------------------------------
|
||||
SYM.Quit >LDA.G MAC.hBuf
|
||||
beq .1
|
||||
|
||||
>SYSCALL FreeMem.A
|
||||
|
||||
.1 >LDA.G SYM.hLocalBuf
|
||||
SYM.Quit >LDA.G SYM.hLocalBuf
|
||||
beq .2
|
||||
|
||||
>SYSCALL FreeMem.A
|
||||
@ -64,7 +50,6 @@ SYM.Quit >LDA.G MAC.hBuf
|
||||
beq .8
|
||||
>SYSCALL SListFree.A
|
||||
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
*---------------------------------------
|
||||
@ -128,9 +113,10 @@ SYM.AddGlobalPC ldx #4
|
||||
dey
|
||||
dex
|
||||
bne .2
|
||||
|
||||
lda #SYM.F.RESOLVED
|
||||
*---------------------------------------
|
||||
SYM.AddGlobal lda #SYM.F.RESOLVED
|
||||
>STA.G SYM.Global+SYM.F
|
||||
SYM.AddGlobal >STA.G SYM.Global+SYM.F
|
||||
|
||||
lda #5 F+DWORD
|
||||
>STA.G SYM.Global+SYM.LEN
|
||||
@ -159,9 +145,7 @@ SYM.AddGlobal lda #SYM.F.RESOLVED
|
||||
*---------------------------------------
|
||||
SYM.LookupGlobal >PUSHB.G SYM.hGlobals
|
||||
>PUSHW ZPLinePtr
|
||||
|
||||
>PUSHEA.G SYM.Lookup
|
||||
|
||||
>SYSCALL SListLookup
|
||||
bcs .9
|
||||
|
||||
@ -177,7 +161,6 @@ SYM.LookupGlobal >PUSHB.G SYM.hGlobals
|
||||
txa
|
||||
>STA.G SYM.ID
|
||||
|
||||
|
||||
.9 rts
|
||||
*---------------------------------------
|
||||
SYM.UpdateGlobalAcc ldx #3
|
||||
|
@ -169,6 +169,9 @@ CS.INIT ldy #S.PS.ARGC
|
||||
jsr SYM.Init
|
||||
bcs .9
|
||||
|
||||
jsr MAC.Init
|
||||
bcs .9
|
||||
|
||||
jsr DIR.Init
|
||||
|
||||
>LDYAI 256
|
||||
@ -284,6 +287,7 @@ CS.DOEVENT sec
|
||||
CS.QUIT jsr FIO.FileClose
|
||||
bne CS.QUIT
|
||||
|
||||
jsr MAC.Quit
|
||||
jsr SYM.Quit
|
||||
|
||||
>LDA.G ASM.T.hMem
|
||||
@ -312,6 +316,7 @@ CS.QUIT jsr FIO.FileClose
|
||||
.INB /A2OSX.BUILD/BIN/DEV/ASM.S.DIR
|
||||
.INB /A2OSX.BUILD/BIN/DEV/ASM.S.EXP
|
||||
.INB /A2OSX.BUILD/BIN/DEV/ASM.S.FIO
|
||||
.INB /A2OSX.BUILD/BIN/DEV/ASM.S.MAC
|
||||
.INB /A2OSX.BUILD/BIN/DEV/ASM.S.SRC
|
||||
.INB /A2OSX.BUILD/BIN/DEV/ASM.S.SYM
|
||||
*---------------------------------------
|
||||
@ -431,9 +436,6 @@ ASM.LI.CON .BS 1
|
||||
ASM.LI.XON .BS 1
|
||||
ASM.PC .BS 4
|
||||
ASM.PC.PH .BS 4
|
||||
ASM.PC.GLABEL .BS 4
|
||||
ASM.LOCAL.OFFSET .BS 1
|
||||
ASM.LOCAL.INVALID .BS 1
|
||||
|
||||
SYM.hGlobals .BS 1
|
||||
SYM.bGlobal .BS 1
|
||||
@ -445,6 +447,7 @@ SYM.LocalIndex .BS 1
|
||||
|
||||
SYM.Lookup .BS 6
|
||||
|
||||
MAC.hMacros .BS 1
|
||||
MAC.hBuf .BS 1
|
||||
|
||||
DS.END .ED
|
||||
|
@ -2,7 +2,6 @@ NEW
|
||||
PREFIX /A2OSX.BUILD
|
||||
AUTO 4,1
|
||||
.LIST OFF
|
||||
.OP 65C02
|
||||
*--------------------------------------
|
||||
S.CB.CMD .EQ 0
|
||||
S.CB.CMD.SETPIXEL .EQ 0
|
||||
|
@ -496,6 +496,7 @@ K.NewStr.YA >STYA .1+1
|
||||
* PUSHW = Data Ptr
|
||||
* ## Out:
|
||||
* A = Key Length
|
||||
* X,Y = KeyID
|
||||
*\--------------------------------------
|
||||
K.SListAdd
|
||||
*/--------------------------------------
|
||||
|
@ -59,7 +59,9 @@ SLIST.Add jsr SLIST.Search
|
||||
clc
|
||||
.9 rts
|
||||
|
||||
.99 sec
|
||||
.99 ldx SLIST.ID
|
||||
ldy SLIST.ID+1
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
SLIST.Lookup jsr SLIST.Search
|
||||
|
Loading…
Reference in New Issue
Block a user