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