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