mirror of https://github.com/A2osX/A2osX.git
Kernel 0.94
This commit is contained in:
parent
93ceb53e04
commit
209c62c8c0
Binary file not shown.
Binary file not shown.
|
@ -26,28 +26,39 @@ DIR.AS clc
|
|||
sta DIR.Byte Save b7 of last char in string
|
||||
jsr SRC.GetNextChar
|
||||
bcs .9
|
||||
|
||||
cmp #'-'
|
||||
bne .1
|
||||
|
||||
lda #$40 save b7 status of ALL chars
|
||||
tsb DIR.Byte
|
||||
|
||||
jsr SRC.GetNextChar
|
||||
bcs .9
|
||||
|
||||
.1 sta DIR.Word Save delimiter....
|
||||
sta DIR.Word+1 Save also in prev char..
|
||||
|
||||
.2 jsr SRC.GetNextChar
|
||||
bcs .8
|
||||
|
||||
cmp DIR.Word delimiter ?
|
||||
beq .8
|
||||
|
||||
ldx DIR.Word+1 Get prev char
|
||||
sta DIR.Word+1 replace it with new
|
||||
txa
|
||||
cmp DIR.Word is it the starting delimiter
|
||||
beq .2 yes, skip
|
||||
|
||||
bit DIR.Byte
|
||||
bvc .3
|
||||
|
||||
ora #$80
|
||||
|
||||
.3 jsr OUT.EmitByte no, emit prev char
|
||||
bcc .2
|
||||
|
||||
.9 lda #E.SYNTAX.ERROR
|
||||
sec
|
||||
rts
|
||||
|
@ -55,20 +66,21 @@ DIR.AS clc
|
|||
.8 lda DIR.Word+1 Get prev char
|
||||
cmp DIR.Word someone typed .AS "" ?
|
||||
beq .88
|
||||
|
||||
bit DIR.Byte
|
||||
bpl .81
|
||||
|
||||
eor #$80
|
||||
|
||||
.81 jmp OUT.EmitByte
|
||||
|
||||
.88 clc
|
||||
rts
|
||||
DIR.AS.RTS rts
|
||||
*---------------------------------------
|
||||
DIR.AZ jsr DIR.AS
|
||||
bcs .9
|
||||
bcs DIR.AS.RTS
|
||||
lda #0
|
||||
jmp OUT.EmitByte
|
||||
.9 rts
|
||||
*---------------------------------------
|
||||
DIR.BS jsr SRC.GetNextCharNB
|
||||
bcs .98
|
||||
|
@ -173,11 +185,30 @@ DIR.DA jsr SRC.GetNextCharNB
|
|||
rts
|
||||
*---------------------------------------
|
||||
DIR.DO >LDA.G ASM.DO.StackPtr
|
||||
tay
|
||||
inc
|
||||
cmp #DO.MAXDEPTH
|
||||
bcs .98
|
||||
|
||||
tya
|
||||
beq .1
|
||||
|
||||
* clc
|
||||
adc #ASM.DO.Stack-1
|
||||
tay
|
||||
|
||||
lda (pData),y Previous DO is false?
|
||||
bne .1
|
||||
|
||||
>INC.G ASM.DO.StackPtr yes,stack FALSE
|
||||
|
||||
jsr SRC.GetNextCharNB
|
||||
* clc
|
||||
adc #ASM.DO.Stack-1
|
||||
tay
|
||||
lda #0
|
||||
bra .8
|
||||
|
||||
.1 jsr SRC.GetNextCharNB
|
||||
bcs .99
|
||||
|
||||
jsr EXP.ResetAcc
|
||||
|
@ -186,17 +217,17 @@ DIR.DO >LDA.G ASM.DO.StackPtr
|
|||
bcs .99
|
||||
|
||||
>INC.G ASM.DO.StackPtr
|
||||
* clc ok from bcs .99
|
||||
* clc
|
||||
adc #ASM.DO.Stack-1
|
||||
tay
|
||||
lda SRC.ACC
|
||||
ora SRC.ACC+1
|
||||
ora SRC.ACC+2
|
||||
ora SRC.ACC+3
|
||||
beq .1
|
||||
beq .8
|
||||
lda #$ff
|
||||
|
||||
.1 sta (pData),y
|
||||
.8 sta (pData),y
|
||||
|
||||
clc
|
||||
rts
|
||||
|
@ -207,7 +238,18 @@ DIR.DO >LDA.G ASM.DO.StackPtr
|
|||
*---------------------------------------
|
||||
DIR.EL >LDA.G ASM.DO.StackPtr
|
||||
beq .9
|
||||
|
||||
tax
|
||||
dec
|
||||
beq .1 no previous DO context
|
||||
|
||||
clc
|
||||
adc #ASM.DO.Stack-1
|
||||
tay
|
||||
lda (pData),y
|
||||
beq .8 previous is FALSE
|
||||
|
||||
.1 txa
|
||||
clc
|
||||
adc #ASM.DO.Stack-1
|
||||
tay
|
||||
|
@ -215,7 +257,7 @@ DIR.EL >LDA.G ASM.DO.StackPtr
|
|||
eor #$ff
|
||||
sta (pData),y
|
||||
|
||||
clc
|
||||
.8 clc
|
||||
rts
|
||||
|
||||
.9 lda #E.ELSE.WITHOUT.DO
|
||||
|
@ -264,23 +306,26 @@ DIR.EP >LDA.G ASM.PH.ON
|
|||
.9
|
||||
DIR.EP.ILLEGAL lda #E.ILLEGAL.DIR
|
||||
sec
|
||||
rts
|
||||
DIR.EP.RTS rts
|
||||
*---------------------------------------
|
||||
DIR.SE sec
|
||||
.HS 90 BCC
|
||||
*---------------------------------------
|
||||
DIR.EQ clc
|
||||
|
||||
lda #$ff
|
||||
>STA.G OUT.bEquate
|
||||
|
||||
>LDA.G SYM.BufPtr
|
||||
beq .9
|
||||
beq DIR.EP.ILLEGAL not in global symbol context
|
||||
|
||||
eor #SYMG
|
||||
beq .1
|
||||
|
||||
bcs .9 .SE not allowed in local/private
|
||||
bcc .10 in local, skip F update
|
||||
bcs DIR.EP.ILLEGAL .SE not allowed in local/private
|
||||
bcc .10 .EQ in local, skip F update
|
||||
|
||||
.1 ror A = 0 : SYMG.F.RW
|
||||
.1 ror A = 0 : CS = SYMG.F.RW
|
||||
|
||||
ora #SYMG.F.EQU
|
||||
sta SRC.ACC.F
|
||||
|
@ -288,13 +333,10 @@ DIR.EQ clc
|
|||
.10 jsr SRC.GetNextCharNB
|
||||
bcs .9
|
||||
|
||||
lda #$ff
|
||||
>STA.G OUT.bEquate
|
||||
|
||||
jsr EXP.ResetAcc
|
||||
jsr EXP.ResetAccV keep F
|
||||
|
||||
jsr EXP.Eval
|
||||
bcs .9
|
||||
bcs DIR.EP.RTS
|
||||
|
||||
>LDA.G SYM.BufPtr
|
||||
|
||||
|
@ -313,7 +355,13 @@ DIR.EQ clc
|
|||
clc
|
||||
rts
|
||||
|
||||
.12 jsr SYM.Acc2Global global, update and close
|
||||
.12 ldy #SYMG-1
|
||||
|
||||
.13 lda SRC.ACC.F,y
|
||||
sta (ZPSymbolBuf),y
|
||||
dey
|
||||
bpl .13
|
||||
|
||||
>LDA.G ASM.PASS
|
||||
bne .2
|
||||
|
||||
|
@ -321,20 +369,18 @@ DIR.EQ clc
|
|||
|
||||
.2 jmp SYM.UpdateGlobal
|
||||
|
||||
.9 rts
|
||||
.9 lda #E.SYNTAX.ERROR
|
||||
sec
|
||||
rts
|
||||
*---------------------------------------
|
||||
DIR.FI >LDA.G ASM.DO.StackPtr
|
||||
beq .99
|
||||
beq DIR.EP.ILLEGAL
|
||||
|
||||
dec
|
||||
sta (pData),y
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
.99 lda #E.ILLEGAL.DIR
|
||||
sec
|
||||
rts
|
||||
*---------------------------------------
|
||||
DIR.HS jsr SRC.GetNextCharNB
|
||||
bcs .99
|
||||
|
@ -681,6 +727,6 @@ DIR.RestorePC ldx #3
|
|||
rts
|
||||
*---------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/BIN/ASM.S.DIR
|
||||
LOAD USR/SRC/BIN/ASM.S
|
||||
SAVE usr/src/bin/asm.s.dir
|
||||
LOAD usr/src/bin/asm.s
|
||||
ASM
|
||||
|
|
|
@ -2,7 +2,7 @@ NEW
|
|||
AUTO 3,1
|
||||
*---------------------------------------
|
||||
* EXP.Modifiers:
|
||||
* # : 8b,Byte 1
|
||||
* # : 8b,Byte 1
|
||||
* / : 8b,Byte 2
|
||||
* ^ : 8b,Byte 3
|
||||
* < : 24b,Byte 1,2,3
|
||||
|
@ -18,7 +18,7 @@ EXP.Eval.Missing
|
|||
lda #E.MISSING.EXP
|
||||
sec
|
||||
rts
|
||||
|
||||
|
||||
EXP.Eval >STZ.G EXP.Modifier
|
||||
>STA.G EXP.Prefix
|
||||
>STA.G EXP.Operator
|
||||
|
@ -49,13 +49,13 @@ EXP.Eval.Next stz SRC.ACC
|
|||
bne .12
|
||||
|
||||
>LDA.G MAC.StkPtr
|
||||
bne .9 illegal OUTSIDE macro
|
||||
|
||||
bne .9 illegal INSIDE macro
|
||||
|
||||
bra .13
|
||||
|
||||
|
||||
.12 cmp #':'
|
||||
bne .14
|
||||
|
||||
|
||||
>LDA.G MAC.StkPtr
|
||||
beq .9 illegal OUTSIDE macro
|
||||
|
||||
|
@ -63,15 +63,15 @@ EXP.Eval.Next stz SRC.ACC
|
|||
bcs .99
|
||||
|
||||
jmp EXP.EvalOperator
|
||||
|
||||
|
||||
.14 cmp #'*'
|
||||
bne .10
|
||||
|
||||
|
||||
jsr SYM.PC2Acc
|
||||
|
||||
|
||||
jsr SRC.GetNextChar
|
||||
jmp EXP.EvalOperator
|
||||
|
||||
|
||||
.9 lda #E.INV.LABEL
|
||||
sec
|
||||
.99 rts
|
||||
|
@ -82,14 +82,14 @@ EXP.Eval.Next stz SRC.ACC
|
|||
jsr SRC.GetDecimal
|
||||
bcs EXP.EvalExitRTS
|
||||
jmp EXP.EvalOperator
|
||||
|
||||
|
||||
.1 cmp #'$' Hex?
|
||||
bne .2
|
||||
|
||||
jsr SRC.GetHex
|
||||
bcs EXP.EvalExitRTS
|
||||
jmp EXP.EvalOperator
|
||||
|
||||
|
||||
.2 cmp #'%' binary?
|
||||
bne .3
|
||||
|
||||
|
@ -99,28 +99,28 @@ EXP.Eval.Next stz SRC.ACC
|
|||
|
||||
.3 cmp #'&' octal?
|
||||
bne .4
|
||||
|
||||
|
||||
jsr SRC.GetOctal
|
||||
bcs EXP.EvalExitRTS
|
||||
bra EXP.EvalOperator
|
||||
|
||||
.4 cmp #'''
|
||||
bne .43
|
||||
|
||||
|
||||
jsr SRC.GetNextChar
|
||||
bcs EXP.EvalExitSYN
|
||||
jsr EXP.SetAccA
|
||||
jsr SRC.GetNextChar
|
||||
bcs EXP.EvalOperator
|
||||
|
||||
|
||||
cmp #'''
|
||||
beq .44
|
||||
|
||||
|
||||
cmp #','
|
||||
bne EXP.EvalExitSYN
|
||||
|
||||
|
||||
bra EXP.EvalOperator
|
||||
|
||||
|
||||
.44 jsr SRC.GetNextChar
|
||||
bra EXP.EvalOperator
|
||||
|
||||
|
@ -129,19 +129,19 @@ EXP.Eval.Next stz SRC.ACC
|
|||
|
||||
jsr SRC.GetNextChar
|
||||
bcs EXP.EvalExitSYN
|
||||
|
||||
|
||||
ora #$80
|
||||
jsr EXP.SetAccA
|
||||
jsr SRC.GetNextChar
|
||||
bcs EXP.EvalOperator
|
||||
|
||||
|
||||
cmp #'"'
|
||||
beq .45
|
||||
|
||||
cmp #','
|
||||
bne EXP.EvalExitSYN
|
||||
bra EXP.EvalOperator
|
||||
|
||||
|
||||
.45 jsr SRC.GetNextChar
|
||||
bra EXP.EvalOperator
|
||||
|
||||
|
@ -149,20 +149,25 @@ EXP.Eval.Next stz SRC.ACC
|
|||
bcs EXP.EvalExitSYN
|
||||
|
||||
jsr SYM.LookupGlobal
|
||||
.DO ASMDBG=1
|
||||
bcs *
|
||||
lda #"?"
|
||||
jsr EXP.DBG
|
||||
.FIN
|
||||
bcc EXP.EvalOperator
|
||||
EXP.EvalExitRTS rts
|
||||
|
||||
|
||||
EXP.EvalExitOK >LDA.G EXP.Modifier
|
||||
beq .1
|
||||
|
||||
asl
|
||||
tax
|
||||
|
||||
|
||||
lda #SYMG.F.FWREF
|
||||
trb SRC.ACC.F
|
||||
|
||||
|
||||
jmp (J.EXP.MOD-2,x)
|
||||
|
||||
|
||||
.1 clc
|
||||
rts
|
||||
|
||||
|
@ -176,18 +181,26 @@ EXP.EvalExitUND lda #E.UNDEF.SYMBOL
|
|||
*---------------------------------------
|
||||
EXP.EvalOperator
|
||||
>LDA.G EXP.Operator
|
||||
beq .7
|
||||
beq .7 no previous OP....
|
||||
|
||||
asl
|
||||
tax
|
||||
|
||||
jsr EXP.Compute
|
||||
lda SRC.ACC.F
|
||||
ora SRC.ARG.F
|
||||
and #SYMG.F.FWREF
|
||||
tsb SRC.ACC.F
|
||||
|
||||
jsr EXP.Compute ARG op ACC -> ACC
|
||||
bcc .7
|
||||
|
||||
tax
|
||||
>LDA.G ASM.PASS
|
||||
beq .7 Ignore error ...
|
||||
|
||||
|
||||
txa
|
||||
bcs EXP.EvalExitRTS
|
||||
|
||||
rts
|
||||
|
||||
.7 jsr SRC.GetChar
|
||||
bcs EXP.EvalExitOK
|
||||
|
||||
|
@ -199,17 +212,25 @@ EXP.EvalOperator
|
|||
|
||||
jsr SRC.IsEXPReserved
|
||||
bcs EXP.EvalExitSYN
|
||||
|
||||
|
||||
txa
|
||||
>STA.G EXP.Operator
|
||||
|
||||
ldx #4
|
||||
|
||||
.8 lda SRC.ACC.SIZE,x
|
||||
sta SRC.ARG.SIZE,x
|
||||
|
||||
ldx #3
|
||||
|
||||
.8 lda SRC.ACC,x
|
||||
sta SRC.ARG,x
|
||||
dex
|
||||
bpl .8
|
||||
|
||||
lda SRC.ACC.F
|
||||
sta SRC.ARG.F
|
||||
|
||||
.DO ASMDBG=1
|
||||
lda #'@'
|
||||
jsr EXP.DBG
|
||||
.FIN
|
||||
|
||||
jmp EXP.Eval.Next0
|
||||
*---------------------------------------
|
||||
EXP.GetLocal jsr SRC.GetNextChar
|
||||
|
@ -219,30 +240,34 @@ EXP.GetLocal jsr SRC.GetNextChar
|
|||
bcs EXP.EvalExitSYN
|
||||
|
||||
tax
|
||||
|
||||
|
||||
jsr SYM.LookupLocalX
|
||||
bcc .8
|
||||
|
||||
>LDA.G ASM.PASS pass#2?
|
||||
bne EXP.EvalExitUND
|
||||
|
||||
|
||||
lda #SYMG.F.FWREF
|
||||
tsb SRC.ACC.F
|
||||
|
||||
|
||||
lda #2
|
||||
sta SYMG.SIZE
|
||||
|
||||
sta SRC.ACC.SIZE
|
||||
|
||||
lda #$ff
|
||||
sta SRC.ACC
|
||||
sta SRC.ACC+1
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
|
||||
.9 lda #E.SYNTAX.ERROR
|
||||
sec
|
||||
|
||||
|
||||
.8 rts
|
||||
*---------------------------------------
|
||||
EXP.MOD.8.3 lda SRC.ACC+2
|
||||
bra EXP.MOD.8
|
||||
|
||||
|
||||
EXP.MOD.8.2 lda SRC.ACC+1
|
||||
|
||||
EXP.MOD.8 sta SRC.ACC
|
||||
|
@ -255,16 +280,14 @@ EXP.MOD.8.1 lda #1
|
|||
EXP.MOD.24 lda #3
|
||||
sta SRC.ACC.SIZE
|
||||
clc
|
||||
rts
|
||||
rts
|
||||
|
||||
EXP.MOD.32 lda #4
|
||||
sta SRC.ACC.SIZE
|
||||
clc
|
||||
rts
|
||||
rts
|
||||
*---------------------------------------
|
||||
EXP.Compute asl
|
||||
tax
|
||||
jmp (J.EXP.OP-2,x)
|
||||
EXP.Compute jmp (J.EXP.OP-2,x)
|
||||
*---------------------------------------
|
||||
EXP.OP.EOR ldx #3
|
||||
|
||||
|
@ -327,16 +350,16 @@ EXP.OP.GRT jsr EXP.OP.SUB
|
|||
*---------------------------------------
|
||||
EXP.OP.ADD ldx #0 ARG-ACC->ACC
|
||||
ldy #4
|
||||
|
||||
|
||||
clc
|
||||
|
||||
|
||||
.1 lda SRC.ARG,x
|
||||
adc SRC.ACC,x
|
||||
sta SRC.ACC,x
|
||||
inx
|
||||
dey
|
||||
bne .1
|
||||
|
||||
|
||||
bcc .8
|
||||
|
||||
lda #E.VAL.TOO.BIG
|
||||
|
@ -346,20 +369,20 @@ EXP.OP.SUB ldx #0 ARG-ACC->ACC
|
|||
ldy #4
|
||||
|
||||
sec
|
||||
|
||||
|
||||
.1 lda SRC.ARG,x
|
||||
sbc SRC.ACC,x
|
||||
sta SRC.ACC,x
|
||||
inx
|
||||
dey
|
||||
bne .1
|
||||
|
||||
|
||||
bcs .8
|
||||
|
||||
|
||||
lda #E.VAL.TOO.BIG
|
||||
sec
|
||||
rts
|
||||
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
*---------------------------------------
|
||||
|
@ -378,10 +401,10 @@ EXP.OP.DIV >PUSHL SRC.ARG
|
|||
rts
|
||||
*---------------------------------------
|
||||
EXP.ResetAcc stz SRC.ACC.F
|
||||
|
||||
lda #2
|
||||
|
||||
EXP.ResetAccV lda #2
|
||||
sta SRC.ACC.SIZE
|
||||
|
||||
|
||||
stz SRC.ACC
|
||||
stz SRC.ACC+1
|
||||
stz SRC.ACC+2
|
||||
|
@ -396,8 +419,22 @@ EXP.SetAccA sta SRC.ACC
|
|||
sta SRC.ACC.SIZE
|
||||
clc
|
||||
rts
|
||||
*---------------------------------------
|
||||
.DO ASMDBG=1
|
||||
EXP.DBG >SYSCALL putchar
|
||||
>PUSHW L.MSG.DBG
|
||||
>PUSHB.G MAC.CtxID
|
||||
>PUSHL SRC.ARG
|
||||
>PUSHL SRC.ACC
|
||||
>PUSHB SRC.ACC.F
|
||||
>PUSHB SRC.ACC.SIZE
|
||||
>PUSHBI 11
|
||||
>SYSCALL PrintF
|
||||
* >DEBUG
|
||||
rts
|
||||
.FIN
|
||||
*---------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/BIN/ASM.S.EXP
|
||||
LOAD USR/SRC/BIN/ASM.S
|
||||
SAVE usr/src/bin/asm.s.exp
|
||||
LOAD usr/src/bin/asm.s
|
||||
ASM
|
||||
|
|
|
@ -56,7 +56,7 @@ FIO.LOAD.CPU >STYA ZPPtr2
|
|||
|
||||
>STZ.G ASM.hCPUFILE
|
||||
|
||||
.4 >PUSHW L.MSG.T.FILE
|
||||
.4 >PUSHW L.MSG.CPU.FILE
|
||||
>PUSHW L.ASM.CPU.FILE
|
||||
>PUSHBI 2
|
||||
jsr OUT.Print
|
||||
|
@ -309,6 +309,6 @@ FIO.FileClose >LDA.G SRC.Depth
|
|||
rts
|
||||
*---------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/BIN/ASM.S.FIO
|
||||
LOAD USR/SRC/BIN/ASM.S
|
||||
SAVE usr/src/bin/asm.s.fio
|
||||
LOAD usr/src/bin/asm.s
|
||||
ASM
|
||||
|
|
|
@ -224,7 +224,7 @@ MAC.Exec jsr SRC.GetNextChar skip '>'
|
|||
.8 jmp MAC.Push
|
||||
|
||||
.90 lda #E.MACRO.INV
|
||||
sec
|
||||
* sec
|
||||
rts
|
||||
|
||||
.92 lda #E.SYNTAX.ERROR
|
||||
|
@ -578,6 +578,6 @@ MAC.GetArgX phy
|
|||
rts
|
||||
*---------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/BIN/ASM.S.MAC
|
||||
LOAD USR/SRC/BIN/ASM.S
|
||||
SAVE usr/src/bin/asm.s.mac
|
||||
LOAD usr/src/bin/asm.s
|
||||
ASM
|
||||
|
|
|
@ -12,10 +12,10 @@ OUT.EmitByte phy
|
|||
|
||||
>LDA.G ASM.PASS
|
||||
beq .1
|
||||
|
||||
|
||||
>LDA.G ASM.DU.ON
|
||||
bmi .1
|
||||
|
||||
|
||||
txa
|
||||
pha
|
||||
>PUSHA
|
||||
|
@ -23,7 +23,7 @@ OUT.EmitByte phy
|
|||
>SYSCALL FPutC
|
||||
plx
|
||||
bcs .99
|
||||
|
||||
|
||||
.1 >INC.G ASM.PC
|
||||
bne .2
|
||||
>INC.G ASM.PC+1
|
||||
|
@ -51,10 +51,10 @@ OUT.EmitByte phy
|
|||
jsr OUT.PrintBuf
|
||||
plx
|
||||
bcs .99
|
||||
|
||||
|
||||
ldy #OUT.Buf
|
||||
lda #0
|
||||
|
||||
|
||||
.4 inc
|
||||
sta (pData),y
|
||||
clc
|
||||
|
@ -62,12 +62,12 @@ OUT.EmitByte phy
|
|||
tay
|
||||
txa
|
||||
sta (pData),y
|
||||
|
||||
|
||||
.8 clc
|
||||
|
||||
.99 plx
|
||||
ply
|
||||
rts
|
||||
rts
|
||||
*---------------------------------------
|
||||
OUT.PrintBuf jsr OUT.PrintLineOn
|
||||
bcs OUT.PrintBufReset
|
||||
|
@ -79,39 +79,39 @@ OUT.PrintBuf jsr OUT.PrintLineOn
|
|||
bcs OUT.PrintBuf.RTS
|
||||
jsr OUT.PrintCR
|
||||
bcs OUT.PrintBuf.RTS
|
||||
|
||||
|
||||
OUT.PrintBufReset
|
||||
>STZ.G OUT.Buf
|
||||
|
||||
|
||||
ldx #4
|
||||
ldy #ASM.PC
|
||||
|
||||
|
||||
.2 lda (pData),y
|
||||
pha
|
||||
iny
|
||||
dex
|
||||
bne .2
|
||||
|
||||
|
||||
ldx #4
|
||||
ldy #OUT.PC+3
|
||||
|
||||
|
||||
.3 pla
|
||||
sta (pData),y
|
||||
dey
|
||||
dex
|
||||
bne .3
|
||||
|
||||
|
||||
.8 clc
|
||||
|
||||
OUT.PrintBuf.RTS
|
||||
|
||||
OUT.PrintBuf.RTS
|
||||
rts
|
||||
*---------------------------------------
|
||||
OUT.PrintLine jsr OUT.PrintLineOn
|
||||
OUT.PrintLine jsr OUT.PrintLineOn
|
||||
bcs OUT.PrintBuf.RTS
|
||||
|
||||
|
||||
OUT.PrintLine.1 jsr OUT.PrintLineOutBuf
|
||||
bcs OUT.PrintBuf.RTS
|
||||
|
||||
|
||||
>LDA.G SRC.Depth
|
||||
|
||||
.1 dec
|
||||
|
@ -122,17 +122,17 @@ OUT.PrintLine.1 jsr OUT.PrintLineOutBuf
|
|||
>SYSCALL PutChar
|
||||
pla
|
||||
bra .1
|
||||
|
||||
|
||||
.2 >PUSHW L.MSG.LINENUM
|
||||
>PUSHW.G SRC.LINENUM
|
||||
>PUSHBI 2
|
||||
>SYSCALL PrintF
|
||||
|
||||
|
||||
>LDA.G MAC.CtxStackPtr
|
||||
|
||||
|
||||
.3 dec
|
||||
bmi .4
|
||||
|
||||
|
||||
pha
|
||||
lda #'>'
|
||||
>SYSCALL PutChar
|
||||
|
@ -147,40 +147,40 @@ OUT.PrintLine.1 jsr OUT.PrintLineOutBuf
|
|||
OUT.PrintLineOutBuf
|
||||
>LDA.G OUT.bEquate
|
||||
bne OUT.PrintLineEQU
|
||||
|
||||
|
||||
>LDA.G OUT.Buf
|
||||
pha
|
||||
asl
|
||||
tax
|
||||
>PUSHB L.MSG.OUT0+1,x
|
||||
>PUSHB L.MSG.OUT0,x
|
||||
|
||||
|
||||
ldy #OUT.PC+1
|
||||
>PUSHB (pData),y
|
||||
dey
|
||||
>PUSHB (pData),y
|
||||
|
||||
|
||||
pla
|
||||
beq .2
|
||||
|
||||
tax
|
||||
|
||||
ldy #OUT.Buf
|
||||
|
||||
|
||||
pha
|
||||
|
||||
|
||||
.1 iny
|
||||
>PUSHB (pData),y
|
||||
dex
|
||||
bne .1
|
||||
|
||||
pla
|
||||
|
||||
|
||||
.2 inc
|
||||
inc
|
||||
>PUSHA Byte Count+2 for PC
|
||||
>SYSCALL PrintF
|
||||
|
||||
|
||||
rts
|
||||
*---------------------------------------
|
||||
OUT.PrintLineEQU
|
||||
|
@ -193,14 +193,14 @@ OUT.PrintLineEQU
|
|||
|
||||
lda SRC.ACC.SIZE
|
||||
beq .2
|
||||
|
||||
|
||||
tay
|
||||
|
||||
|
||||
.1 dey
|
||||
>PUSHB SRC.ACC,y
|
||||
tya
|
||||
bne .1
|
||||
|
||||
|
||||
lda SRC.ACC.SIZE
|
||||
|
||||
.2 >PUSHA Byte Count
|
||||
|
@ -210,46 +210,50 @@ OUT.PrintLineEQU
|
|||
OUT.PrintLineOn
|
||||
>LDA.G bListAll
|
||||
bmi .8
|
||||
|
||||
|
||||
>LDA.G ASM.LI.ON
|
||||
bpl .9
|
||||
|
||||
|
||||
>LDA.G ASM.MA.ON MACRO Mode ?
|
||||
bpl .1
|
||||
bmi .1
|
||||
|
||||
>LDA.G ASM.LI.MON
|
||||
>LDA.G MAC.CtxID within MACRO ?
|
||||
beq .11
|
||||
|
||||
.1 >LDA.G ASM.LI.MON
|
||||
bpl .9
|
||||
clc
|
||||
rts
|
||||
|
||||
.1 >LDA.G ASM.DO.StackPtr within a DO/ELSE ?
|
||||
.11 >LDA.G ASM.DO.StackPtr within a DO/ELSE ?
|
||||
beq .2
|
||||
|
||||
|
||||
clc
|
||||
adc #ASM.DO.Stack-1
|
||||
tay
|
||||
lda (pData),y TRUE ?
|
||||
bne .8 yes, print always
|
||||
|
||||
>LDA.G ASM.LI.CON FALSE, check CON flag...
|
||||
lda (pData),y TRUE ?
|
||||
bne .8 yes, print always
|
||||
|
||||
>LDA.G ASM.LI.CON FALSE, check CON flag...
|
||||
bpl .9
|
||||
clc
|
||||
rts
|
||||
|
||||
|
||||
.2
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
|
||||
.9 sec
|
||||
OUT.PrintLineOnRTS
|
||||
rts
|
||||
*---------------------------------------
|
||||
OUT.PrintLineErr
|
||||
sta DIR.Byte Save Error code
|
||||
|
||||
jsr OUT.PrintLine.1
|
||||
bcs .9
|
||||
|
||||
bcs OUT.PrintLineOnRTS
|
||||
|
||||
.1 >PUSHW L.MSG.ERROR
|
||||
>PUSHB DIR.Byte
|
||||
>PUSHBI 1
|
||||
|
@ -263,16 +267,16 @@ OUT.PrintLineErr
|
|||
>LDA.G SRC.Depth
|
||||
dec
|
||||
jsr OUT.PrintLineErrDashA
|
||||
|
||||
|
||||
>LDA.G MAC.CtxStackPtr
|
||||
jsr OUT.PrintLineErrDashA
|
||||
|
||||
lda #'^'
|
||||
>SYSCALL PutChar
|
||||
bcs .9
|
||||
bcs OUT.PrintLineOnRTS
|
||||
|
||||
jsr OUT.PrintCR
|
||||
|
||||
|
||||
>PUSHW L.MSG.PASS
|
||||
>LDA.G ASM.PASS
|
||||
inc
|
||||
|
@ -280,23 +284,32 @@ OUT.PrintLineErr
|
|||
>PUSHBI 1
|
||||
jsr OUT.Print
|
||||
|
||||
jmp OUT.PrintCR
|
||||
.DO ASMDBG=1
|
||||
>PUSHW L.MSG.EQU0+2
|
||||
>PUSHB (ZPSymbolBuf) flags
|
||||
>PUSHBI 1
|
||||
>SYSCALL printf
|
||||
|
||||
.9 rts
|
||||
>LDYA L.MSG.CRLF
|
||||
>STYA ZPTmpBuf
|
||||
jsr SYM.Dump.GLP
|
||||
.FIN
|
||||
|
||||
jmp OUT.PrintCR
|
||||
*---------------------------------------
|
||||
OUT.PrintLineErrDashA
|
||||
tax
|
||||
beq .8
|
||||
|
||||
|
||||
.1 phx
|
||||
lda #'-'
|
||||
>SYSCALL PutChar
|
||||
plx
|
||||
bcs .9
|
||||
|
||||
|
||||
dex
|
||||
bne .1
|
||||
|
||||
|
||||
.8 clc
|
||||
.9 rts
|
||||
*---------------------------------------
|
||||
|
@ -312,13 +325,12 @@ OUT.PrintCR1 >DEC.G OUT.LineCnt
|
|||
|
||||
lda #PAGE.LEN
|
||||
sta (pData),y
|
||||
* lda #$80
|
||||
* >STA.G bPause
|
||||
.8
|
||||
|
||||
.8
|
||||
* clc
|
||||
OUT.Print.RTS rts
|
||||
*---------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/BIN/ASM.S.OUT
|
||||
LOAD USR/SRC/BIN/ASM.S
|
||||
SAVE usr/src/bin/asm.s.out
|
||||
LOAD usr/src/bin/asm.s
|
||||
ASM
|
||||
|
|
|
@ -91,8 +91,12 @@ SRC.ParseLine.DirOp
|
|||
jsr SRC.DoCheck
|
||||
bcs .1 TRUE, always execute
|
||||
|
||||
cpx #12 .DO?
|
||||
beq .1
|
||||
|
||||
cpx #20 .ELSE?
|
||||
beq .1
|
||||
|
||||
cpx #30 .FIN?
|
||||
bne SRC.ParseLine.Ok
|
||||
|
||||
|
@ -1053,6 +1057,6 @@ SRC.DoCheck sec
|
|||
.8 rts CS if TRUE
|
||||
*---------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/BIN/ASM.S.SRC
|
||||
LOAD USR/SRC/BIN/ASM.S
|
||||
SAVE usr/src/bin/asm.s.src
|
||||
LOAD usr/src/bin/asm.s
|
||||
ASM
|
||||
|
|
|
@ -29,26 +29,26 @@ SYM.Init >SYSCALL SListNew
|
|||
*---------------------------------------
|
||||
SYM.Quit >LDA.G SYM.hBuf
|
||||
beq .1
|
||||
|
||||
|
||||
>SYSCALL FreeMem
|
||||
|
||||
|
||||
.1 >LDA.G SYM.hList
|
||||
beq .8
|
||||
|
||||
|
||||
>PUSHA
|
||||
>SYSCALL SListFree
|
||||
|
||||
|
||||
.8 rts
|
||||
*---------------------------------------
|
||||
SYM.NewGlobal >LDA.G ASM.PASS
|
||||
bne SYM.NewGlobal2
|
||||
bne SYM.GetGlobal
|
||||
|
||||
jsr SYM.StoreGlobal Store previous if any
|
||||
bcs .99
|
||||
|
||||
>STZ.G MAC.CtxID
|
||||
>STA.G MAC.CtxNextID
|
||||
|
||||
|
||||
>PUSHB.G SYM.hList
|
||||
>PUSHW ZPLinePtr Pass #1: try to add global...
|
||||
>SYSCALL SListNewKey
|
||||
|
@ -57,16 +57,14 @@ SYM.NewGlobal >LDA.G ASM.PASS
|
|||
>STYA.G SYM.ID
|
||||
|
||||
txa
|
||||
* clc
|
||||
* clc
|
||||
adc ZPLinePtr
|
||||
sta ZPLinePtr
|
||||
bcc .1
|
||||
inc ZPLinePtr+1
|
||||
|
||||
.1 jsr SYM.PC2Acc
|
||||
|
||||
stz SRC.ACC.F
|
||||
|
||||
.1 stz SRC.ACC.F
|
||||
jsr SYM.PC2Acc
|
||||
jsr SYM.Acc2Global
|
||||
|
||||
lda #SYMG
|
||||
|
@ -74,62 +72,76 @@ SYM.NewGlobal >LDA.G ASM.PASS
|
|||
tay
|
||||
lda #0
|
||||
sta (ZPSymbolBuf),y
|
||||
|
||||
|
||||
.DO ASMDBG=1
|
||||
lda #'1'
|
||||
>SYSCALL putchar
|
||||
jsr SYM.Dump.G
|
||||
jsr OUT.PrintCR
|
||||
.FIN
|
||||
clc
|
||||
rts
|
||||
|
||||
.9 lda #E.SYMBOL.REDEF
|
||||
sec
|
||||
.99
|
||||
|
||||
.9 cmp #E.DUPKEY
|
||||
bne .99
|
||||
lda #E.SYMBOL.REDEF
|
||||
.99
|
||||
SYM.NewGlobal.RTS
|
||||
rts
|
||||
*---------------------------------------
|
||||
SYM.NewGlobal2 >PUSHB.G SYM.hList Pass #2: should be already defined...
|
||||
>PUSHW ZPLinePtr
|
||||
SYM.GetGlobal >PUSHB.G SYM.hList Pass #2: should be already defined...
|
||||
>PUSHW ZPLinePtr
|
||||
>SYSCALL SListLookup
|
||||
bcs SYM.NewGlobal.RTS
|
||||
|
||||
>STYA.G SYM.ID
|
||||
|
||||
txa
|
||||
* clc
|
||||
* clc
|
||||
adc ZPLinePtr
|
||||
sta ZPLinePtr
|
||||
bcc .1
|
||||
inc ZPLinePtr+1
|
||||
|
||||
.1 >PUSHB.G SYM.hList Pass #2: Retore full context
|
||||
|
||||
.1 >PUSHB.G SYM.hList Pass #2: Restore full context
|
||||
>PUSHW.G SYM.ID
|
||||
>PUSHW ZPSymbolBuf
|
||||
>PUSHWI $ffff all
|
||||
>PUSHWZ from Start
|
||||
>SYSCALL SListGetData
|
||||
bcs .99
|
||||
|
||||
* lda (ZPSymbolBuf)
|
||||
* and #SYMG.F.EQU
|
||||
* bne .8
|
||||
|
||||
* >LDA.G ASM.PC
|
||||
* ldy #SYMG.V
|
||||
* cmp (ZPSymbolBuf),y
|
||||
* bne .7
|
||||
|
||||
* >LDA.G ASM.PC+1
|
||||
* ldy #SYMG.V+1
|
||||
* cmp (ZPSymbolBuf),y
|
||||
* beq .8
|
||||
|
||||
*.7 lda #E.OUT.OF.SYNC
|
||||
* sec
|
||||
* rts
|
||||
|
||||
.8 lda #SYMG
|
||||
lda (ZPSymbolBuf)
|
||||
and #SYMG.F.EQU
|
||||
bne .8
|
||||
|
||||
>LDA.G ASM.PC
|
||||
ldy #SYMG.V
|
||||
cmp (ZPSymbolBuf),y
|
||||
bne .7
|
||||
|
||||
>LDA.G ASM.PC+1
|
||||
ldy #SYMG.V+1
|
||||
cmp (ZPSymbolBuf),y
|
||||
beq .8
|
||||
|
||||
.7 lda #E.OUT.OF.SYNC
|
||||
sec
|
||||
rts
|
||||
|
||||
.8 .DO ASMDBG=1
|
||||
lda #'2'
|
||||
>SYSCALL putchar
|
||||
jsr SYM.Dump.G
|
||||
jsr OUT.PrintCR
|
||||
.FIN
|
||||
|
||||
lda #SYMG
|
||||
>STA.G SYM.BufPtr
|
||||
|
||||
|
||||
>STZ.G MAC.CtxID
|
||||
>STA.G MAC.CtxNextID
|
||||
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
|
@ -142,11 +154,11 @@ SYM.LookupGlobal
|
|||
>PUSHW ZPLinePtr
|
||||
>SYSCALL SListLookup
|
||||
bcs .4
|
||||
|
||||
>STYA ZPPtr1
|
||||
|
||||
>STYA ZPPtr1 KeyID
|
||||
|
||||
txa
|
||||
* clc
|
||||
* clc
|
||||
adc ZPLinePtr
|
||||
sta ZPLinePtr
|
||||
bcc .1
|
||||
|
@ -155,26 +167,27 @@ SYM.LookupGlobal
|
|||
.1 >LDA.G SYM.ID
|
||||
cmp ZPPtr1
|
||||
bne .3
|
||||
|
||||
iny
|
||||
lda (pData),y
|
||||
cmp ZPPtr1+1
|
||||
bne .3
|
||||
|
||||
|
||||
ldy #SYMG-1
|
||||
|
||||
|
||||
.2 lda (ZPSymbolBuf),y
|
||||
sta SRC.ACC.F,y
|
||||
dey
|
||||
bpl .2
|
||||
|
||||
bne .2 Keep ACC.F unchanged
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
.99 rts
|
||||
|
||||
.3 >PUSHB.G SYM.hList
|
||||
>PUSHW ZPPtr1
|
||||
>PUSHW L.SRC.ACC.F
|
||||
>PUSHWI SYMG Get only Global value
|
||||
>PUSHWZ Start
|
||||
>PUSHW ZPPtr1 KeyID
|
||||
>PUSHW L.SRC.ACC.SIZE
|
||||
>PUSHWI SYMG-1 Get only Global value
|
||||
>PUSHWI 1 Skip SYMG.F
|
||||
>SYSCALL SListGetData
|
||||
rts
|
||||
|
||||
|
@ -185,23 +198,27 @@ SYM.LookupGlobal
|
|||
tsb SRC.ACC.F
|
||||
|
||||
lda #2
|
||||
sta SYMG.SIZE
|
||||
sta SRC.ACC.SIZE
|
||||
|
||||
lda #$ff
|
||||
sta SRC.ACC
|
||||
sta SRC.ACC+1
|
||||
|
||||
.5 jsr SRC.GetNextChar
|
||||
bcs .8
|
||||
|
||||
jsr SRC.IsLetterOrDigit
|
||||
bcc .5
|
||||
|
||||
|
||||
cmp #'.'
|
||||
beq .5
|
||||
|
||||
|
||||
cmp #'_'
|
||||
beq .5
|
||||
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
|
||||
|
||||
.9 lda #E.UNDEF.SYMBOL
|
||||
sec
|
||||
rts
|
||||
|
@ -211,21 +228,21 @@ SYM.StoreGlobal >LDA.G ASM.PASS
|
|||
|
||||
>LDA.G SYM.BufPtr
|
||||
beq .8
|
||||
|
||||
|
||||
>PUSHB.G SYM.hList
|
||||
>PUSHW.G SYM.ID
|
||||
>PUSHW ZPSymbolBuf
|
||||
|
||||
|
||||
>LDA.G SYM.BufPtr
|
||||
tay
|
||||
lda #0
|
||||
cpy #SYMG
|
||||
beq .1
|
||||
|
||||
|
||||
iny Add 1 for \0 after locals/privates
|
||||
bne .1
|
||||
inc
|
||||
|
||||
|
||||
.1 >PUSHYA
|
||||
|
||||
>SYSCALL SListAddData
|
||||
|
@ -240,31 +257,34 @@ SYM.UpdateGlobal
|
|||
>PUSHB.G SYM.hList
|
||||
>PUSHW.G SYM.ID
|
||||
>PUSHW ZPSymbolBuf
|
||||
|
||||
|
||||
>LDA.G SYM.BufPtr
|
||||
tay
|
||||
lda #0
|
||||
cpy #SYMG
|
||||
beq .1
|
||||
|
||||
|
||||
iny Add 1 for \0 after locals/privates
|
||||
bne .1
|
||||
inc
|
||||
|
||||
|
||||
.1 >PUSHYA
|
||||
|
||||
>SYSCALL SListSetData
|
||||
rts
|
||||
bcs .9
|
||||
|
||||
>STZ.G SYM.BufPtr
|
||||
.9 rts
|
||||
*---------------------------------------
|
||||
SYM.PC2Acc ldy #ASM.PC+3
|
||||
ldx #3
|
||||
|
||||
|
||||
.1 lda (pData),y
|
||||
sta SRC.ACC,x
|
||||
dey
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
|
||||
lda #2
|
||||
sta SRC.ACC.SIZE
|
||||
|
||||
|
@ -280,7 +300,7 @@ SYM.Acc2Global ldy #SYMG-1
|
|||
rts
|
||||
*---------------------------------------
|
||||
SYM.NewLocalA tax Save Local ID
|
||||
|
||||
|
||||
>LDA.G SYM.BufPtr not in a global label
|
||||
beq .91
|
||||
|
||||
|
@ -296,13 +316,13 @@ SYM.NewLocalA tax Save Local ID
|
|||
bcs .90
|
||||
|
||||
ldy #ASM.PC+4
|
||||
|
||||
|
||||
.1 dey
|
||||
lda (pData),y
|
||||
pha
|
||||
cpy #ASM.PC
|
||||
bne .1
|
||||
|
||||
|
||||
>LDA.G MAC.CtxID Get Macro Context ID
|
||||
|
||||
pha
|
||||
|
@ -337,39 +357,39 @@ SYM.NewLocalA tax Save Local ID
|
|||
.91 lda #E.INV.LABEL
|
||||
sec
|
||||
rts
|
||||
|
||||
|
||||
.90 lda #E.TOO.MANY.LOCAL
|
||||
sec
|
||||
rts
|
||||
|
||||
.9 lda #E.SYMBOL.REDEF
|
||||
sec
|
||||
rts
|
||||
rts
|
||||
*---------------------------------------
|
||||
.20 >LDA.G SYM.BufPtr Pass #2: setup SYM.BufPtr in case of .EQ
|
||||
clc
|
||||
adc #SYML
|
||||
sta (pData),y
|
||||
|
||||
|
||||
rts
|
||||
*---------------------------------------
|
||||
SYM.LookupLocalX
|
||||
lda (ZPSymbolBuf)
|
||||
and #SYMG.F.LOCALS
|
||||
beq .99
|
||||
|
||||
|
||||
ldy #SYMG
|
||||
|
||||
.1 phy
|
||||
lda (ZPSymbolBuf),y
|
||||
beq .9
|
||||
|
||||
|
||||
txa
|
||||
cmp (ZPSymbolBuf),y
|
||||
bne .3
|
||||
|
||||
>LDA.G MAC.CtxID
|
||||
|
||||
|
||||
ply
|
||||
phy
|
||||
|
||||
|
@ -378,60 +398,57 @@ SYM.LookupLocalX
|
|||
bne .3
|
||||
|
||||
ldx #0
|
||||
|
||||
|
||||
.2 iny
|
||||
lda (ZPSymbolBuf),y
|
||||
sta SRC.ACC,x
|
||||
inx
|
||||
cpx #4
|
||||
|
||||
|
||||
bne .2
|
||||
|
||||
pla
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
|
||||
.3 pla
|
||||
clc
|
||||
adc #SYML
|
||||
tay
|
||||
bra .1
|
||||
|
||||
|
||||
.9 ply
|
||||
.99 lda #E.UNDEF.SYMBOL
|
||||
sec
|
||||
rts
|
||||
rts
|
||||
*---------------------------------------
|
||||
SYM.Dump.End >PUSHW L.MSG.SUMMARY
|
||||
>PUSHW ZPPtr2
|
||||
>PUSHBI 2
|
||||
jmp OUT.Print
|
||||
|
||||
|
||||
SYM.Dump.8 clc
|
||||
rts
|
||||
*---------------------------------------
|
||||
SYM.Dump >LDA.G bListAll
|
||||
bmi SYM.Dump.1
|
||||
|
||||
|
||||
>LDA.G ASM.LI.ON
|
||||
bpl SYM.Dump.8
|
||||
|
||||
|
||||
SYM.Dump.1 >LDYA L.MSG.SYMBOLS
|
||||
>SYSCALL PutS
|
||||
|
||||
stz ZPPtr2
|
||||
stz ZPPtr2+1
|
||||
|
||||
.1
|
||||
* jsr SYM.Dump.DBG
|
||||
|
||||
>LDYA ZPPtr2
|
||||
.1 >LDYA ZPPtr2
|
||||
>STYA ZPPtr1
|
||||
|
||||
>PUSHB.G SYM.hList
|
||||
>PUSHW ZPPtr1
|
||||
>PUSHW ZPTmpBuf
|
||||
>PUSHW ZPTmpBuf
|
||||
>SYSCALL SListGetByID
|
||||
bcs SYM.Dump.End
|
||||
|
||||
|
@ -444,16 +461,19 @@ SYM.Dump.1 >LDYA L.MSG.SYMBOLS
|
|||
>PUSHWZ from Start
|
||||
>SYSCALL SListGetData
|
||||
bcs .9
|
||||
|
||||
|
||||
jsr SYM.Dump.GLP
|
||||
|
||||
|
||||
bcc .1
|
||||
|
||||
.9 rts
|
||||
|
||||
.9 rts
|
||||
*---------------------------------------
|
||||
SYM.Dump.GLP jsr SYM.Dump.G
|
||||
bcs .9
|
||||
|
||||
>LDYA ZPTmpBuf Label
|
||||
>SYSCALL PutS
|
||||
|
||||
ldx #5
|
||||
lda (ZPSymbolBuf)
|
||||
|
||||
|
@ -462,12 +482,12 @@ SYM.Dump.GLP jsr SYM.Dump.G
|
|||
|
||||
jsr SYM.Dump.LP
|
||||
bcs .9
|
||||
|
||||
|
||||
.2 cpx #5 already CR printed ?
|
||||
beq .8
|
||||
|
||||
|
||||
jmp OUT.PrintCR
|
||||
|
||||
|
||||
.8 clc
|
||||
.9 rts
|
||||
*---------------------------------------
|
||||
|
@ -475,7 +495,7 @@ SYM.Dump.G ldy #SYMG.SIZE Get Symbol Size
|
|||
lda (ZPSymbolBuf),y
|
||||
|
||||
pha
|
||||
|
||||
|
||||
asl
|
||||
tax
|
||||
>PUSHB L.MSG.EQU0+1,x
|
||||
|
@ -484,92 +504,89 @@ SYM.Dump.G ldy #SYMG.SIZE Get Symbol Size
|
|||
pla
|
||||
pha
|
||||
tax byte count
|
||||
|
||||
|
||||
clc
|
||||
adc #SYMG.V
|
||||
|
||||
tay
|
||||
|
||||
|
||||
.2 dey
|
||||
lda (ZPSymbolBuf),y
|
||||
>PUSHA
|
||||
dex
|
||||
bne .2
|
||||
|
||||
|
||||
pla Byte Count
|
||||
|
||||
.3 >PUSHA
|
||||
|
||||
>SYSCALL PrintF
|
||||
|
||||
>LDYA ZPTmpBuf Label
|
||||
>SYSCALL PutS
|
||||
>SYSCALL PrintF
|
||||
rts
|
||||
*---------------------------------------
|
||||
SYM.Dump.LP ldy #SYMG
|
||||
|
||||
ldx #5
|
||||
|
||||
|
||||
.1 lda (ZPSymbolBuf),y
|
||||
beq .8
|
||||
|
||||
|
||||
phy
|
||||
|
||||
|
||||
phx
|
||||
|
||||
|
||||
tax ID
|
||||
|
||||
|
||||
iny
|
||||
lda (ZPSymbolBuf),y MacID
|
||||
bne .3
|
||||
|
||||
|
||||
>PUSHW L.MSG.LSYMBOL
|
||||
txa
|
||||
>PUSHA
|
||||
|
||||
|
||||
jsr SYM.Dump.PushValueY
|
||||
|
||||
|
||||
lda #5
|
||||
bra .5
|
||||
|
||||
|
||||
.3 >PUSHW L.MSG.PSYMBOL
|
||||
txa
|
||||
>PUSHA
|
||||
|
||||
|
||||
>PUSHB (ZPSymbolBuf),y
|
||||
|
||||
jsr SYM.Dump.PushValueY
|
||||
|
||||
|
||||
lda #6
|
||||
|
||||
|
||||
.5 >PUSHA
|
||||
|
||||
|
||||
>SYSCALL PrintF
|
||||
|
||||
plx
|
||||
dex
|
||||
bne .6
|
||||
|
||||
|
||||
jsr OUT.PrintCR
|
||||
ldx #5
|
||||
|
||||
|
||||
.6 pla
|
||||
clc
|
||||
adc #SYML
|
||||
tay
|
||||
|
||||
bra .1
|
||||
|
||||
|
||||
.8 rts
|
||||
*---------------------------------------
|
||||
SYM.Dump.PushValueY
|
||||
ldx #4
|
||||
|
||||
|
||||
iny
|
||||
iny
|
||||
iny
|
||||
iny
|
||||
|
||||
|
||||
.1 lda (ZPSymbolBuf),y
|
||||
>PUSHA
|
||||
dey
|
||||
|
@ -579,6 +596,6 @@ SYM.Dump.PushValueY
|
|||
rts
|
||||
*---------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/BIN/ASM.S.SYM
|
||||
LOAD USR/SRC/BIN/ASM.S
|
||||
SAVE usr/src/bin/asm.s.sym
|
||||
LOAD usr/src/bin/asm.s
|
||||
ASM
|
||||
|
|
247
BIN/ASM.S.txt
247
BIN/ASM.S.txt
|
@ -5,15 +5,17 @@ NEW
|
|||
.OR $2000
|
||||
.TF bin/asm
|
||||
*---------------------------------------
|
||||
ASMDBG .EQ 0
|
||||
*---------------------------------------
|
||||
PAGE.LEN .EQ 23
|
||||
DO.MAXDEPTH .EQ 8
|
||||
IN.MAXDEPTH .EQ 4
|
||||
MA.MAXDEPTH .EQ 8
|
||||
*---------------------------------------
|
||||
.INB INC/MACROS.I
|
||||
.INB INC/A2OSX.I
|
||||
.INB INC/MLI.I
|
||||
.INB INC/MLI.E.I
|
||||
.INB inc/macros.i
|
||||
.INB inc/a2osx.i
|
||||
.INB inc/mli.i
|
||||
.INB inc/mli.e.i
|
||||
*---------------------------------------
|
||||
.DUMMY
|
||||
.OR ZPBIN
|
||||
|
@ -29,7 +31,7 @@ ZPOpsPtr .BS 2
|
|||
ZPOpDefPtr .BS 2
|
||||
|
||||
ZPMacroStk .BS 2
|
||||
ZPMacroBuf .BS 2
|
||||
ZPMacroBuf .BS 2
|
||||
ZPMacroArgBuf .BS 2
|
||||
ZPMacroArgCnt .BS 1
|
||||
|
||||
|
@ -113,7 +115,7 @@ CS.START cld
|
|||
*--------------------------------------
|
||||
.1 .DA CS.INIT
|
||||
.DA CS.RUN
|
||||
.DA CS.DOEVENT
|
||||
.DA CS.DOEVENT
|
||||
.DA CS.QUIT
|
||||
L.MSG.HELP .DA MSG.HELP
|
||||
L.MSG.CRLF .DA MSG.CRLF
|
||||
|
@ -134,33 +136,35 @@ L.MSG.LSYMBOL .DA MSG.LSYMBOL
|
|||
L.MSG.PSYMBOL .DA MSG.PSYMBOL
|
||||
L.MSG.SUMMARY .DA MSG.SUMMARY
|
||||
L.MSG.END .DA MSG.END
|
||||
L.MSG.DEBUG .DA MSG.DEBUG
|
||||
.DO ASMDBG=1
|
||||
L.MSG.DBG .DA MSG.DBG
|
||||
.FIN
|
||||
L.MSG.SRC.FILE .DA MSG.SRC.FILE
|
||||
L.MSG.OBJ.FILE .DA MSG.OBJ.FILE
|
||||
L.MSG.T.FILE .DA MSG.T.FILE
|
||||
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.F .DA SRC.ACC.F
|
||||
L.SRC.ACC.SIZE .DA SRC.ACC.SIZE
|
||||
L.SRC.ACC .DA SRC.ACC
|
||||
L.SRC.ARG .DA SRC.ARG
|
||||
L.T.DIRECTIVES .DA T.DIRECTIVES
|
||||
J.DIRECTIVES .DA DIR.AC
|
||||
J.DIRECTIVES .DA DIR.AC 0
|
||||
.DA DIR.AS
|
||||
.DA DIR.AT
|
||||
.DA DIR.AZ
|
||||
.DA DIR.BS
|
||||
.DA DIR.DA
|
||||
.DA DIR.DO
|
||||
.DA DIR.DO 12
|
||||
.DA DIR.DU
|
||||
.DA DIR.DU
|
||||
.DA DIR.ED
|
||||
.DA DIR.EL
|
||||
.DA DIR.EL 20
|
||||
.DA DIR.EM
|
||||
.DA DIR.EN
|
||||
.DA DIR.EP
|
||||
.DA DIR.EQ
|
||||
.DA DIR.FI
|
||||
.DA DIR.FI 30
|
||||
.DA DIR.HS
|
||||
.DA DIR.IN
|
||||
.DA DIR.IN
|
||||
|
@ -209,12 +213,15 @@ J.EXP.OP .DA EXP.OP.EOR ^!|&<=>+-*/
|
|||
.DA EXP.OP.ADD
|
||||
.DA EXP.OP.SUB
|
||||
.DA EXP.OP.MUL
|
||||
.DA EXP.OP.DIV
|
||||
.DA EXP.OP.DIV
|
||||
.DA 0
|
||||
*---------------------------------------
|
||||
CS.INIT jsr CS.RUN.ARGS
|
||||
bcs .99
|
||||
|
||||
CS.INIT clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN jsr CS.RUN.ARGS
|
||||
bcs .9
|
||||
|
||||
jsr FIO.Init
|
||||
bcs .9
|
||||
|
||||
|
@ -224,71 +231,16 @@ CS.INIT jsr CS.RUN.ARGS
|
|||
jsr MAC.Init
|
||||
bcs .9
|
||||
|
||||
jmp OUT.Init
|
||||
jsr OUT.Init
|
||||
bcs .9
|
||||
|
||||
.1 >SLEEP
|
||||
jsr CS.RUN.LOOP
|
||||
bcc .1
|
||||
|
||||
.99 pha
|
||||
>PUSHW L.MSG.HELP
|
||||
>PUSHBI 0
|
||||
>SYSCALL PrintF
|
||||
pla
|
||||
sec
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.ARGS ldy #S.PS.ARGC
|
||||
lda (pPS),y
|
||||
beq .90
|
||||
|
||||
.1 inc ZPPtr1
|
||||
|
||||
lda ZPPtr1
|
||||
>SYSCALL ArgV
|
||||
bcs .8
|
||||
>STYA ZPPtr2
|
||||
|
||||
lda (ZPPtr2)
|
||||
cmp #'-'
|
||||
beq .2
|
||||
|
||||
>PUSHW ZPPtr2
|
||||
>PUSHWI 0 Allocate
|
||||
>SYSCALL RealPath
|
||||
bcs .99
|
||||
txa
|
||||
>STA.G SRC.hFILENAME
|
||||
bra .1
|
||||
|
||||
.2 ldy #1
|
||||
lda (ZPPtr2),y
|
||||
cmp #'L'
|
||||
bne .3
|
||||
|
||||
lda #$ff
|
||||
>STA.G bListAll
|
||||
bra .1
|
||||
|
||||
.3 cmp #'T'
|
||||
bne .90
|
||||
|
||||
inc ZPPtr1
|
||||
lda ZPPtr1
|
||||
>SYSCALL ArgV
|
||||
bcs .90
|
||||
|
||||
lda ZPPtr1
|
||||
>STA.G ArgDstFile
|
||||
bra .1
|
||||
|
||||
.8 >LDA.G SRC.hFILENAME
|
||||
beq .90
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
.90 lda #E.INV.ARGS
|
||||
sec
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
CS.RUN ldy #S.PS.hStdIn
|
||||
CS.RUN.LOOP ldy #S.PS.hStdIn
|
||||
lda (pPS),y
|
||||
>SYSCALL FEOF
|
||||
bcs .99
|
||||
|
@ -297,7 +249,7 @@ CS.RUN ldy #S.PS.hStdIn
|
|||
|
||||
>SYSCALL GetChar
|
||||
bcs .99
|
||||
|
||||
|
||||
cmp #$03 Ctrl-C
|
||||
beq .99 Abort....beq=CS
|
||||
|
||||
|
@ -307,9 +259,9 @@ CS.RUN ldy #S.PS.hStdIn
|
|||
>LDA.G bPause
|
||||
eor #$ff
|
||||
sta (pData),y
|
||||
|
||||
|
||||
bpl .12
|
||||
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
|
@ -322,15 +274,15 @@ CS.RUN ldy #S.PS.hStdIn
|
|||
.11 >STZ.G bPause
|
||||
|
||||
.12 >LDA.G SRC.Depth root file is already opened?
|
||||
bne .10
|
||||
|
||||
bne .10
|
||||
|
||||
>PUSHW L.MSG.PASS
|
||||
>LDA.G ASM.PASS
|
||||
inc
|
||||
>PUSHA
|
||||
>PUSHBI 1
|
||||
jsr OUT.Print
|
||||
|
||||
|
||||
>LDA.G SRC.hFILENAME
|
||||
>SYSCALL GetMemPtr
|
||||
jsr FIO.OpenFile
|
||||
|
@ -340,35 +292,35 @@ CS.RUN ldy #S.PS.hStdIn
|
|||
|
||||
>STZ.G MAC.StkPtr
|
||||
>STZ.G SYM.BufPtr
|
||||
|
||||
|
||||
.10 >LDYA ZPLineBuf
|
||||
>STYA ZPLinePtr
|
||||
|
||||
|
||||
>LDA.G MAC.StkPtr
|
||||
beq .20
|
||||
|
||||
|
||||
.15 jsr MAC.ReadLine
|
||||
bcc .2
|
||||
|
||||
cmp #E.EMPTYKEY
|
||||
bne .9
|
||||
|
||||
|
||||
jsr MAC.Pop
|
||||
bne .15
|
||||
|
||||
|
||||
.20 jsr FIO.ReadLine
|
||||
bcc .2
|
||||
|
||||
cmp #MLI.E.EOF End Of File?
|
||||
bne .9
|
||||
|
||||
|
||||
jsr FIO.FileClose
|
||||
>LDA.G SRC.Depth end of root file ?
|
||||
bne .8 no continue back to previous file
|
||||
|
||||
jsr SYM.StoreGlobal Make sure last Global flushed
|
||||
bcs .9
|
||||
|
||||
|
||||
>LDA.G ASM.PASS End of pass #2 ??
|
||||
bne .1
|
||||
inc
|
||||
|
@ -382,12 +334,12 @@ CS.RUN ldy #S.PS.hStdIn
|
|||
>LDYA L.MSG.END
|
||||
>SYSCALL PutS
|
||||
lda #0 End of assembly, exit with no error
|
||||
sec
|
||||
sec
|
||||
rts
|
||||
|
||||
|
||||
.2 jsr SRC.ParseLine
|
||||
bcs .9
|
||||
|
||||
|
||||
jsr OUT.PrintLine
|
||||
|
||||
.8 clc
|
||||
|
@ -399,52 +351,110 @@ CS.RUN ldy #S.PS.hStdIn
|
|||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.ARGS ldy #S.PS.ARGC
|
||||
lda (pPS),y
|
||||
beq .90
|
||||
|
||||
.1 inc ZPPtr1
|
||||
|
||||
lda ZPPtr1
|
||||
>SYSCALL ArgV
|
||||
bcs .8
|
||||
>STYA ZPPtr2
|
||||
|
||||
lda (ZPPtr2)
|
||||
cmp #'-'
|
||||
beq .2
|
||||
|
||||
>PUSHW ZPPtr2
|
||||
>PUSHWI 0 Allocate
|
||||
>SYSCALL RealPath
|
||||
bcs .99
|
||||
txa
|
||||
>STA.G SRC.hFILENAME
|
||||
bra .1
|
||||
|
||||
.2 ldy #1
|
||||
lda (ZPPtr2),y
|
||||
cmp #'L'
|
||||
bne .3
|
||||
|
||||
lda #$ff
|
||||
>STA.G bListAll
|
||||
bra .1
|
||||
|
||||
.3 cmp #'T'
|
||||
bne .90
|
||||
|
||||
inc ZPPtr1
|
||||
lda ZPPtr1
|
||||
>SYSCALL ArgV
|
||||
bcs .90
|
||||
|
||||
lda ZPPtr1
|
||||
>STA.G ArgDstFile
|
||||
bra .1
|
||||
|
||||
.8 >LDA.G SRC.hFILENAME
|
||||
beq .90
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
.90 >PUSHW L.MSG.HELP
|
||||
>PUSHBI 0
|
||||
>SYSCALL PrintF
|
||||
|
||||
lda #E.INV.ARGS
|
||||
sec
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
CS.DOEVENT sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.QUIT >LDA.G SRC.Depth
|
||||
beq .1
|
||||
|
||||
|
||||
jsr FIO.FileClose
|
||||
bra CS.QUIT
|
||||
bra CS.QUIT
|
||||
|
||||
.1 >LDA.G DST.hREFNUM
|
||||
beq .2
|
||||
|
||||
|
||||
>SYSCALL FClose
|
||||
|
||||
|
||||
.2 jsr MAC.Quit
|
||||
|
||||
jsr SYM.Quit
|
||||
|
||||
|
||||
ldy #ASM.hCPUFILE
|
||||
jsr .7
|
||||
|
||||
ldy #SRC.hFILENAME
|
||||
jsr .7
|
||||
|
||||
|
||||
ldy #DST.hFILENAME
|
||||
jsr .7
|
||||
|
||||
|
||||
ldy #SRC.hLineBuf
|
||||
jsr .7
|
||||
|
||||
|
||||
ldy #SRC.hTmpBuf
|
||||
|
||||
|
||||
.7 lda (pData),y
|
||||
beq .8
|
||||
>SYSCALL FreeMem
|
||||
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
*---------------------------------------
|
||||
.INB USR/SRC/BIN/ASM.S.DIR
|
||||
.INB USR/SRC/BIN/ASM.S.EXP
|
||||
.INB USR/SRC/BIN/ASM.S.FIO
|
||||
.INB USR/SRC/BIN/ASM.S.MAC
|
||||
.INB USR/SRC/BIN/ASM.S.OUT
|
||||
.INB USR/SRC/BIN/ASM.S.SRC
|
||||
.INB USR/SRC/BIN/ASM.S.SYM
|
||||
.INB usr/src/bin/asm.s.dir
|
||||
.INB usr/src/bin/asm.s.exp
|
||||
.INB usr/src/bin/asm.s.fio
|
||||
.INB usr/src/bin/asm.s.mac
|
||||
.INB usr/src/bin/asm.s.out
|
||||
.INB usr/src/bin/asm.s.src
|
||||
.INB usr/src/bin/asm.s.sym
|
||||
*---------------------------------------
|
||||
CS.END
|
||||
T.DIRECTIVES >PSTR "AC"
|
||||
|
@ -514,7 +524,7 @@ MSG.CRLF .AZ "\r\n"
|
|||
MSG.PASS .AZ "**** Pass:#%d"
|
||||
MSG.SRC.FILE .AZ "**** Reading SRC File:%s"
|
||||
MSG.OBJ.FILE .AZ "**** Writing OBJ File:%s, Type=%02x"
|
||||
MSG.T.FILE .AZ "**** Loading CPU File:%s"
|
||||
MSG.CPU.FILE .AZ "**** Loading CPU File:%s"
|
||||
MSG.OUT0 .AZ "%H- "
|
||||
MSG.OUT1 .AZ "%H-%h "
|
||||
MSG.OUT2 .AZ "%H-%h %h "
|
||||
|
@ -531,15 +541,16 @@ MSG.LSYMBOL .AZ " .%d=%h%h%h%h"
|
|||
MSG.PSYMBOL .AZ " :%d(%d)=%h%h%h%h"
|
||||
MSG.SUMMARY .AZ "\r\n**** Symbol Table Size : %5D Bytes.\r\n"
|
||||
MSG.END .AZ "**** End Of Assembly."
|
||||
MSG.DEBUG .AZ "PC=%h%h%h%h, ACC=%h%h%h%h [%h] F:%b ARG=%h%h%h%h [%h]\r\n"
|
||||
.DO ASMDBG=1
|
||||
MSG.DBG .AZ "\r\nCtxID=%d, ARG=%H%H <op> ACC=%H%H -> ACC %b [%h]\r\n"
|
||||
.FIN
|
||||
*---------------------------------------
|
||||
ASM.CPU.FILE .BS 65
|
||||
|
||||
SRC.ACC.F .BS 1
|
||||
SRC.ACC.SIZE .BS 1
|
||||
SRC.ACC .BS 4
|
||||
|
||||
SRC.ARG.SIZE .BS 1
|
||||
SRC.ARG.F .BS 1
|
||||
SRC.ARG .BS 4
|
||||
|
||||
SRC.ACCTMP .BS 4
|
||||
|
@ -547,7 +558,7 @@ SRC.AM.StrBuf .BS 32
|
|||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR 0
|
||||
DS.START
|
||||
DS.START
|
||||
bPause .BS 1
|
||||
bListAll .BS 1
|
||||
ArgDstFile .BS 1
|
||||
|
@ -622,5 +633,5 @@ DS.END .ED
|
|||
.FIN
|
||||
*---------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/BIN/ASM.S
|
||||
SAVE usr/src/bin/asm.s
|
||||
ASM
|
||||
|
|
|
@ -5,10 +5,10 @@ NEW
|
|||
.OR $2000
|
||||
.TF bin/ping
|
||||
*--------------------------------------
|
||||
.INB INC/MACROS.I
|
||||
.INB INC/A2OSX.I
|
||||
.INB INC/ETH.I
|
||||
.INB INC/LIBTCPIP.I
|
||||
.INB inc/macros.i
|
||||
.INB inc/a2osx.i
|
||||
.INB inc/eth.i
|
||||
.INB inc/libtcpip.i
|
||||
*--------------------------------------
|
||||
TIMEOUT.MAX .EQ 100 10 sec.
|
||||
*--------------------------------------
|
||||
|
@ -111,15 +111,15 @@ CS.RUN.IPOK inc ArgIndex
|
|||
bra CS.RUN.IPOK
|
||||
|
||||
.1 lda #TIMEOUT.MAX
|
||||
sta Timeout
|
||||
sta TimeOut
|
||||
|
||||
.2 >PUSHEA.G SA.REMOTE+S.SOCKADDR.ADDR
|
||||
>PUSHW ZPTmpPtr
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.HST.GETBYNAME
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.HST.GetByName
|
||||
bcc .3
|
||||
|
||||
>SLEEP
|
||||
lda Timeout
|
||||
lda TimeOut
|
||||
bne .2
|
||||
|
||||
>PUSHW L.MSG.UNKNOWN
|
||||
|
@ -179,13 +179,13 @@ CS.RUN.OPENSKT ldx #3
|
|||
dex
|
||||
bpl .2
|
||||
|
||||
lda A2OSX.RANDOM16
|
||||
lda A2osX.RANDOM16
|
||||
eor A2osX.TIMER16+1
|
||||
>STA.G SA.LOCAL+S.SOCKADDR.PORT
|
||||
>STA.G SA.REMOTE+S.SOCKADDR.PORT
|
||||
sta Identifier
|
||||
|
||||
lda A2OSX.RANDOM16+1
|
||||
lda A2osX.RANDOM16+1
|
||||
eor A2osX.TIMER16
|
||||
>STA.G SA.LOCAL+S.SOCKADDR.PORT+1
|
||||
>STA.G SA.REMOTE+S.SOCKADDR.PORT+1
|
||||
|
@ -193,7 +193,7 @@ CS.RUN.OPENSKT ldx #3
|
|||
|
||||
>PUSHBI S.IP.PROTOCOL.ICMP
|
||||
lda #S.SOCKET.T.RAW
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.socket
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
||||
bcs .9
|
||||
|
||||
sta hSocket
|
||||
|
@ -240,11 +240,11 @@ CS.RUN.SEND.ECHO
|
|||
>PUSHW pData
|
||||
lda hSocket
|
||||
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.send
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Send
|
||||
bcs CS.RUN.ERR
|
||||
|
||||
lda #TIMEOUT.MAX
|
||||
sta Timeout
|
||||
sta TimeOut
|
||||
CS.RUN.WAIT.REPLY
|
||||
>SLEEP
|
||||
ldy #S.PS.hStdIn
|
||||
|
@ -264,7 +264,7 @@ CS.RUN.WAIT.REPLY
|
|||
>LIBCALL hLIBTCPIP,LIBTCPIP.Recv
|
||||
bcc .2
|
||||
|
||||
lda Timeout
|
||||
lda TimeOut
|
||||
bne CS.RUN.WAIT.REPLY
|
||||
|
||||
jsr CS.Print.UNREACH
|
||||
|
@ -419,5 +419,5 @@ SA.REMOTE .BS S.SOCKADDR
|
|||
DS.END .ED
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/BIN/PING.S
|
||||
SAVE usr/src/bin/ping.s
|
||||
ASM
|
||||
|
|
|
@ -458,6 +458,9 @@ CS.QUIT jsr CORE.FUNCRESET
|
|||
.1 ldy #CL.hCLBuf
|
||||
jsr .7
|
||||
|
||||
.2 jsr CMD.POPD
|
||||
bcc .2
|
||||
|
||||
ldy #CORE.hArgVBuf
|
||||
|
||||
.7 lda (pData),y
|
||||
|
|
|
@ -41,7 +41,7 @@ SLISTX.SListGetData
|
|||
|
||||
lda FORPNT
|
||||
ora FORPNT+1
|
||||
bne .12
|
||||
bne .12 buffer provided
|
||||
|
||||
>LDYA SLIST.DataLen
|
||||
|
||||
|
@ -76,7 +76,7 @@ SLISTX.SListGetData
|
|||
.2 inc SLIST.nDataCnt
|
||||
bne .3
|
||||
inc SLIST.nDataCnt+1
|
||||
beq .81
|
||||
beq .80
|
||||
|
||||
.3 bit SLIST.bStringMode
|
||||
bmi .4 String mode : until CR
|
||||
|
|
Loading…
Reference in New Issue