mirror of
https://github.com/A2osX/A2osX.git
synced 2024-06-01 07:41:51 +00:00
ADM: fix forward ref bug
This commit is contained in:
parent
94dddcd65e
commit
e3246c9c83
Binary file not shown.
|
@ -158,7 +158,7 @@ EXP.EvalExitOK >LDA.G EXP.Modifier
|
||||||
asl
|
asl
|
||||||
tax
|
tax
|
||||||
|
|
||||||
lda #SYMG.F.FWREF
|
lda #SYMG.F.FWREF Reset FW flag because of IMM modifier
|
||||||
trb SRC.ACC.F
|
trb SRC.ACC.F
|
||||||
|
|
||||||
jmp (J.EXP.MOD-2,x)
|
jmp (J.EXP.MOD-2,x)
|
||||||
|
|
|
@ -248,10 +248,7 @@ SRC.ParseLine.AM
|
||||||
|
|
||||||
jsr SRC.AddToBuf
|
jsr SRC.AddToBuf
|
||||||
|
|
||||||
.75 ldx SRC.ACC.SIZE
|
.75 jsr SRC.GetACCSize
|
||||||
beq * SHOULD NEVER APPEND
|
|
||||||
|
|
||||||
jsr SRC.GetACCSize
|
|
||||||
|
|
||||||
.72 lda #'a'
|
.72 lda #'a'
|
||||||
|
|
||||||
|
@ -1139,6 +1136,9 @@ SRC.GetACCSize lda SRC.ACC.F
|
||||||
|
|
||||||
.1 ldx SRC.ACC.SIZE
|
.1 ldx SRC.ACC.SIZE
|
||||||
|
|
||||||
|
beq * SHOULD NEVER APPEND
|
||||||
|
|
||||||
|
|
||||||
.2 lda SRC.ACC-1,x
|
.2 lda SRC.ACC-1,x
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
|
|
|
@ -71,8 +71,6 @@ SYM.NewGlobal >LDA.G ASM.PASS
|
||||||
|
|
||||||
>STYA.G SYM.ID
|
>STYA.G SYM.ID
|
||||||
|
|
||||||
jsr SRC.SkipX
|
|
||||||
|
|
||||||
stz SRC.ACC.F
|
stz SRC.ACC.F
|
||||||
|
|
||||||
lda #SYMG
|
lda #SYMG
|
||||||
|
@ -81,6 +79,17 @@ SYM.NewGlobal >LDA.G ASM.PASS
|
||||||
lda #0
|
lda #0
|
||||||
sta (ZPSymbolBuf),y
|
sta (ZPSymbolBuf),y
|
||||||
|
|
||||||
|
phx
|
||||||
|
|
||||||
|
jsr SYM.LookupFWFef
|
||||||
|
bcs .1
|
||||||
|
|
||||||
|
lda #SYMG.F.FWREF
|
||||||
|
tsb SRC.ACC.F
|
||||||
|
|
||||||
|
.1 plx
|
||||||
|
jsr SRC.SkipX
|
||||||
|
|
||||||
jsr SYM.PC2Acc
|
jsr SYM.PC2Acc
|
||||||
jsr SYM.Acc2Global
|
jsr SYM.Acc2Global
|
||||||
|
|
||||||
|
@ -113,11 +122,16 @@ SYM.GetGlobal >PUSHB.G SYM.hList Pass #2: should be already defined...
|
||||||
>SYSCALL SListGetData
|
>SYSCALL SListGetData
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
lda (ZPSymbolBuf)
|
lda (ZPSymbolBuf) #SYMG.F
|
||||||
and #SYMG.F.EQU
|
bit #SYMG.F.EQU
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
>LDA.G ASM.PC
|
* bit #SYMG.F.FWREF
|
||||||
|
* beq .2
|
||||||
|
|
||||||
|
* >DEBUG
|
||||||
|
|
||||||
|
.2 >LDA.G ASM.PC
|
||||||
ldy #SYMG.V
|
ldy #SYMG.V
|
||||||
cmp (ZPSymbolBuf),y
|
cmp (ZPSymbolBuf),y
|
||||||
bne .7
|
bne .7
|
||||||
|
@ -158,10 +172,19 @@ SYM.LookupGlobal
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.11 jmp SYM.AddFWFef
|
.11 lda #SYMG.F.FWREF
|
||||||
|
tsb SRC.ACC.F
|
||||||
|
|
||||||
|
lda #$FF
|
||||||
|
sta SRC.ACC
|
||||||
|
sta SRC.ACC+1
|
||||||
|
|
||||||
|
jmp SYM.AddFWFef
|
||||||
|
|
||||||
.10 >STYA ZPPtr1 KeyID
|
.10 >STYA ZPPtr1 KeyID
|
||||||
|
|
||||||
|
jsr SRC.SkipX
|
||||||
|
|
||||||
.1 >LDA.G SYM.ID
|
.1 >LDA.G SYM.ID
|
||||||
cmp ZPPtr1
|
cmp ZPPtr1
|
||||||
bne .3
|
bne .3
|
||||||
|
@ -176,38 +199,19 @@ SYM.LookupGlobal
|
||||||
.2 lda (ZPSymbolBuf),y
|
.2 lda (ZPSymbolBuf),y
|
||||||
sta SRC.ACC.F,y
|
sta SRC.ACC.F,y
|
||||||
dey
|
dey
|
||||||
bne .2 Keep ACC.F unchanged
|
bpl .2
|
||||||
|
|
||||||
jsr SRC.SkipX
|
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.3 phx
|
.3 >PUSHB.G SYM.hList
|
||||||
|
|
||||||
>PUSHB.G SYM.hList
|
|
||||||
>PUSHW ZPPtr1 KeyID
|
>PUSHW ZPPtr1 KeyID
|
||||||
>PUSHW L.SRC.ACC.SIZE
|
>PUSHW L.SRC.ACC.F
|
||||||
>PUSHWI SYMG-1 Get only Global value
|
>PUSHWI SYMG
|
||||||
>PUSHWI 1 Skip SYMG.F
|
>PUSHWZ
|
||||||
>SYSCALL SListGetData
|
>SYSCALL SListGetData
|
||||||
bcs .90
|
bcs .90
|
||||||
|
|
||||||
jsr SYM.LookupFWFef
|
|
||||||
bcs .8
|
|
||||||
|
|
||||||
* lda #2
|
|
||||||
* cmp SRC.ACC.SIZE
|
|
||||||
* beq .8
|
|
||||||
|
|
||||||
* sta SRC.ACC.SIZE
|
|
||||||
|
|
||||||
lda #SYMG.F.FWREF
|
|
||||||
tsb SRC.ACC.F
|
|
||||||
|
|
||||||
.8 plx
|
|
||||||
jsr SRC.SkipX
|
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
@ -309,18 +313,6 @@ SYM.PC2Acc ldy #ASM.PC+3
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
ldx #4
|
|
||||||
|
|
||||||
.2 lda SRC.ACC-1,x
|
|
||||||
bne .3
|
|
||||||
|
|
||||||
dex
|
|
||||||
bne .2
|
|
||||||
|
|
||||||
inx
|
|
||||||
|
|
||||||
.3 stx SRC.ACC.SIZE
|
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
SYM.Acc2Global ldy #SYMG-1
|
SYM.Acc2Global ldy #SYMG-1
|
||||||
|
@ -573,17 +565,28 @@ SYM.Dump.GLP jsr SYM.Dump.G
|
||||||
.8 clc
|
.8 clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
SYM.Dump.G ldy #SYMG.SIZE Get Symbol Size
|
SYM.Dump.G ldx #8
|
||||||
lda (ZPSymbolBuf),y
|
|
||||||
|
|
||||||
|
ldy #SYMG.V+3
|
||||||
|
|
||||||
|
.10 lda (ZPSymbolBuf),y
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
dey
|
||||||
|
dex
|
||||||
|
dex
|
||||||
|
bne .10
|
||||||
|
|
||||||
|
.1 txa
|
||||||
|
lsr
|
||||||
pha
|
pha
|
||||||
|
|
||||||
asl
|
|
||||||
tax
|
|
||||||
>PUSHB L.MSG.EQU0+1,x
|
>PUSHB L.MSG.EQU0+1,x
|
||||||
>PUSHB L.MSG.EQU0,x
|
>PUSHB L.MSG.EQU0,x
|
||||||
|
|
||||||
pla
|
pla
|
||||||
|
beq .3
|
||||||
|
|
||||||
pha
|
pha
|
||||||
tax byte count
|
tax byte count
|
||||||
|
|
||||||
|
@ -625,7 +628,7 @@ SYM.Dump.LP ldy #SYMG
|
||||||
>PUSHW L.MSG.LSYMBOL
|
>PUSHW L.MSG.LSYMBOL
|
||||||
txa
|
txa
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
* >DEBUG
|
||||||
jsr SYM.Dump.PushValueY
|
jsr SYM.Dump.PushValueY
|
||||||
|
|
||||||
lda #5
|
lda #5
|
||||||
|
@ -692,7 +695,7 @@ SYM.Dump.PushValueY
|
||||||
.2 lda SRC.ACC,x
|
.2 lda SRC.ACC,x
|
||||||
>PUSHA
|
>PUSHA
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .2
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
|
|
|
@ -52,10 +52,9 @@ SYMG.F.RW .EQ %10000000
|
||||||
SYMG.F.EQU .EQ %01000000
|
SYMG.F.EQU .EQ %01000000
|
||||||
SYMG.F.LOCALS .EQ %00100000
|
SYMG.F.LOCALS .EQ %00100000
|
||||||
SYMG.F.FWREF .EQ %00010000
|
SYMG.F.FWREF .EQ %00010000
|
||||||
SYMG.SIZE .EQ 1 1,2,3,4
|
SYMG.V .EQ 1 DWORD
|
||||||
SYMG.V .EQ 2 DWORD
|
|
||||||
*
|
*
|
||||||
SYMG .EQ 6
|
SYMG .EQ 5
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
SYML.ID .EQ 0 1..255
|
SYML.ID .EQ 0 1..255
|
||||||
SYML.CtxID .EQ 1 0 if local, !0 if private
|
SYML.CtxID .EQ 1 0 if local, !0 if private
|
||||||
|
@ -151,9 +150,7 @@ L.MSG.CPU.FILE .DA MSG.CPU.FILE
|
||||||
L.SRC.AM.StrBuf .DA SRC.AM.StrBuf
|
L.SRC.AM.StrBuf .DA SRC.AM.StrBuf
|
||||||
L.ASM.6502 .DA ASM.6502
|
L.ASM.6502 .DA ASM.6502
|
||||||
L.ASM.CPU.FILE .DA ASM.CPU.FILE
|
L.ASM.CPU.FILE .DA ASM.CPU.FILE
|
||||||
L.SRC.ACC.SIZE .DA SRC.ACC.SIZE
|
L.SRC.ACC.F .DA SRC.ACC.F
|
||||||
L.SRC.ACC .DA SRC.ACC
|
|
||||||
L.SRC.ARG .DA SRC.ARG
|
|
||||||
L.T.DIRECTIVES .DA T.DIRECTIVES
|
L.T.DIRECTIVES .DA T.DIRECTIVES
|
||||||
J.DIRECTIVES .DA DIR.AC
|
J.DIRECTIVES .DA DIR.AC
|
||||||
.DA DIR.AS
|
.DA DIR.AS
|
||||||
|
@ -589,8 +586,9 @@ MSG.SYMDBG .CZ "SymID=%H\r\n"
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
ASM.CPU.FILE .BS 65
|
ASM.CPU.FILE .BS 65
|
||||||
|
|
||||||
SRC.ACC.F .BS 1
|
|
||||||
SRC.ACC.SIZE .BS 1
|
SRC.ACC.SIZE .BS 1
|
||||||
|
|
||||||
|
SRC.ACC.F .BS 1
|
||||||
SRC.ACC .BS 4
|
SRC.ACC .BS 4
|
||||||
SRC.ARG.F .BS 1
|
SRC.ARG.F .BS 1
|
||||||
SRC.ARG .BS 4
|
SRC.ARG .BS 4
|
||||||
|
|
|
@ -296,7 +296,7 @@ OPEN lda #S.DIB.S.OPENED
|
||||||
* ldx DEVSLOTx0 Done by CLOSE
|
* ldx DEVSLOTx0 Done by CLOSE
|
||||||
|
|
||||||
lda #UD.IO.Cmd.NetOpen
|
lda #UD.IO.Cmd.NetOpen
|
||||||
jsr IO.Exec
|
jsr IO.ExecA
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
@ -321,7 +321,7 @@ OPEN lda #S.DIB.S.OPENED
|
||||||
CLOSE ldx DEVSLOTx0
|
CLOSE ldx DEVSLOTx0
|
||||||
|
|
||||||
lda #UD.IO.Cmd.NetClose
|
lda #UD.IO.Cmd.NetClose
|
||||||
jsr IO.Exec
|
jsr IO.ExecA
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda #S.DIB.S.OPENED
|
lda #S.DIB.S.OPENED
|
||||||
|
@ -338,7 +338,7 @@ READ php
|
||||||
ldx DEVSLOTx0
|
ldx DEVSLOTx0
|
||||||
|
|
||||||
lda #UD.IO.Cmd.NetPeek
|
lda #UD.IO.Cmd.NetPeek
|
||||||
jsr IO.Exec
|
jsr IO.ExecA
|
||||||
bcs READWRITE.99
|
bcs READWRITE.99
|
||||||
|
|
||||||
lda UD.IO.RData,x
|
lda UD.IO.RData,x
|
||||||
|
@ -364,7 +364,7 @@ READ php
|
||||||
ldx DEVSLOTx0
|
ldx DEVSLOTx0
|
||||||
|
|
||||||
lda #UD.IO.Cmd.NetRcvd
|
lda #UD.IO.Cmd.NetRcvd
|
||||||
jsr IO.Exec
|
jsr IO.ExecA
|
||||||
bcs READWRITE.99
|
bcs READWRITE.99
|
||||||
|
|
||||||
lda UD.IO.RData,x
|
lda UD.IO.RData,x
|
||||||
|
@ -412,6 +412,8 @@ WRITE php
|
||||||
>STYA ZPIOCTL
|
>STYA ZPIOCTL
|
||||||
|
|
||||||
ldx DEVSLOTx0
|
ldx DEVSLOTx0
|
||||||
|
lda #UD.IO.Cmd.NetSend
|
||||||
|
sta UD.IO.Cmd,x
|
||||||
|
|
||||||
ldy #S.IOCTL.BYTECNT
|
ldy #S.IOCTL.BYTECNT
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
|
@ -422,7 +424,6 @@ WRITE php
|
||||||
iny
|
iny
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
sta UD.IO.WData,x
|
sta UD.IO.WData,x
|
||||||
lda (ZPIOCTL),y
|
|
||||||
eor #$ff
|
eor #$ff
|
||||||
sta Counter+1
|
sta Counter+1
|
||||||
|
|
||||||
|
@ -433,6 +434,17 @@ WRITE php
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
sta ZPBufPtr+1
|
sta ZPBufPtr+1
|
||||||
|
|
||||||
|
ldy #S.ETH.SRCMAC+5
|
||||||
|
ldx #5
|
||||||
|
|
||||||
|
.10 lda DCB+S.DCB.NIC.MAC,x
|
||||||
|
sta (ZPBufPtr),y
|
||||||
|
dey
|
||||||
|
dex
|
||||||
|
bpl .10
|
||||||
|
|
||||||
|
ldx DEVSLOTx0
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.1 inc Counter
|
.1 inc Counter
|
||||||
|
@ -449,9 +461,7 @@ WRITE php
|
||||||
inc ZPBufPtr+1
|
inc ZPBufPtr+1
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.8 lda #UD.IO.Cmd.NetSend
|
.8 jsr IO.Exec
|
||||||
|
|
||||||
jsr IO.Exec
|
|
||||||
bcs WRITE.99
|
bcs WRITE.99
|
||||||
|
|
||||||
plp
|
plp
|
||||||
|
@ -470,7 +480,7 @@ IO.GetStatus stz DCB+S.DCB.NIC.LINK
|
||||||
ldx DEVSLOTx0
|
ldx DEVSLOTx0
|
||||||
|
|
||||||
lda #UD.IO.Cmd.NetStatus
|
lda #UD.IO.Cmd.NetStatus
|
||||||
jsr IO.Exec
|
jsr IO.ExecA
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
lda UD.IO.RData,x PHYCFGR
|
lda UD.IO.RData,x PHYCFGR
|
||||||
|
@ -494,9 +504,9 @@ IO.GetStatus stz DCB+S.DCB.NIC.LINK
|
||||||
|
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.Exec sta UD.IO.Cmd,x
|
IO.ExecA sta UD.IO.Cmd,x
|
||||||
|
|
||||||
stz UD.IO.UnitNum,x
|
IO.Exec stz UD.IO.UnitNum,x
|
||||||
|
|
||||||
lda UD.IO.Exec,x
|
lda UD.IO.Exec,x
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ A2osX.BADCALL .EQ $100C
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
A2osX.SLEEP .EQ $1010
|
A2osX.SLEEP .EQ $1010
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* $BED0->$BEEF : Public Variables
|
* $1ED0->$1EEF : Public Variables
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
A2osX.SCRNDEVS .EQ $11D0 0=console, 1-8=VT100, 9=GFX
|
A2osX.SCRNDEVS .EQ $11D0 0=console, 1-8=VT100, 9=GFX
|
||||||
A2osX.ASCREEN .EQ $11DA Active Screen
|
A2osX.ASCREEN .EQ $11DA Active Screen
|
||||||
|
@ -60,7 +60,7 @@ A2osX.HWSubT.LCCard .EQ 2
|
||||||
A2osX.TIMER16 .EQ $11EC WORD
|
A2osX.TIMER16 .EQ $11EC WORD
|
||||||
A2osX.RANDOM16 .EQ $11EE WORD
|
A2osX.RANDOM16 .EQ $11EE WORD
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* $BEF0->$BEFF : Kernel Config Block
|
* $11F0->$11FF : Kernel Config Block
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
A2osX.KCONFIG .EQ $11F0
|
A2osX.KCONFIG .EQ $11F0
|
||||||
A2osX.HZ .EQ $11F0 5/6 for 50/60Hz
|
A2osX.HZ .EQ $11F0 5/6 for 50/60Hz
|
||||||
|
|
Loading…
Reference in New Issue
Block a user