A2osX/BIN/ASM.S.OUT.txt

222 lines
3.7 KiB
Plaintext
Raw Normal View History

NEW
2019-09-02 06:09:28 +00:00
AUTO 3,1
*---------------------------------------
2019-03-25 07:04:40 +00:00
OUT.Init lda #PAGE.LEN
>STA.G OUT.LineCnt
rts
*---------------------------------------
OUT.Reset ldx #4
ldy #ASM.PC
.1 lda (pData),y
pha
iny
dex
bne .1
ldx #4
ldy #OUT.PC+3
.2 pla
sta (pData),y
dey
dex
bne .2
>STZ.G OUT.Buf
>STA.G OUT.bEquate
rts
*---------------------------------------
2019-03-26 15:22:48 +00:00
OUT.PrintLineOn
2019-03-29 16:21:30 +00:00
* clc
* rts
2019-03-26 15:22:48 +00:00
>LDA.G ASM.LI.ON
bpl .9
>LDA.G ASM.MA.ON MACRO Mode ?
bpl .1
>LDA.G ASM.LI.MON
bpl .9
bmi .8
.1 >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...
bpl .9
bmi .8
2019-10-03 06:25:27 +00:00
.2
2019-03-26 15:22:48 +00:00
.8 clc
rts
.9 sec
rts
*---------------------------------------
OUT.PrintLineErr
>STA.G DIR.Byte Save Error code
jsr OUT.PrintLine.1
bcs .9
.1 >PUSHB.G DIR.Byte
2018-11-26 21:52:49 +00:00
>PUSHBI 1
>LDYA L.MSG.ERROR
2018-06-21 15:12:10 +00:00
>SYSCALL printf
ldx ZPLinePtr
cpx ZPLineBuf
beq .4
.3 phx
lda #'-'
2018-07-18 15:30:42 +00:00
>SYSCALL PutChar
plx
bcs .9
dex
cpx ZPLineBuf
bne .3
.4 lda #'^'
phy
2018-07-18 15:30:42 +00:00
>SYSCALL PutChar
ply
bcs .9
2019-03-26 15:22:48 +00:00
.5 jmp OUT.PrintCR
.9 rts
*---------------------------------------
OUT.PrintLine jsr OUT.PrintLineOn
2019-03-26 15:22:48 +00:00
bcs OUT.Print.RTS
OUT.PrintLine.1 jsr OUT.PrintLineOutBuf
2019-03-26 15:22:48 +00:00
bcs OUT.Print.RTS
2019-04-01 06:07:56 +00:00
>LDA.G SRC.COUNT
.1 dec
bmi .2
pha
>LDA.G '>'
>SYSCALL putchar
pla
bra .1
.2 >PUSHW.G SRC.LINENUM
>PUSHBI 2
>LDYA L.MSG.LINENUM
>SYSCALL printf
>LDA.G MAC.Depth
.3 dec
bmi .4
pha
>LDA.G '>'
>SYSCALL putchar
pla
bra .3
.4 >LDYA ZPLineBuf
>SYSCALL puts
jmp OUT.PrintCR1
*---------------------------------------
2019-03-26 15:22:48 +00:00
OUT.Print >SYSCALL printf
bcs OUT.Print.RTS
jmp OUT.PrintCR
OUT.Print.RTS rts
*---------------------------------------
OUT.PrintLineOutBuf
>LDA.G OUT.bEquate
bne OUT.PrintLineAcc
>LDA.G OUT.Buf
beq .2
tax
clc
adc #OUT.Buf
tay
.1 >PUSHB (pData),y
dey
dex
bne .1
.2 ldy #OUT.PC+1
>PUSHB (pData),y
dey
>PUSHB (pData),y
>LDA.G OUT.Buf
2019-01-28 07:44:37 +00:00
pha
inc
inc
>PUSHA Byte Count+2 for PC
pla
asl
tax
ldy L.MSG.OUT0,x
lda L.MSG.OUT0+1,x
2018-06-21 15:12:10 +00:00
>SYSCALL printf
rts
2019-03-21 16:37:02 +00:00
*---------------------------------------
OUT.PrintLineAcc
2019-03-21 16:37:02 +00:00
lda SRC.ACC.SIZE
beq .2
2019-03-21 16:37:02 +00:00
tax
ldy #0
.1 >PUSHB SRC.ACC,y
iny
dex
bne .1
lda SRC.ACC.SIZE
2019-03-21 16:37:02 +00:00
.2 >PUSHA Byte Count
asl
tax
2019-03-21 16:37:02 +00:00
cpx #9
bcs *
ldy L.MSG.EQU0,x
lda L.MSG.EQU0+1,x
2018-06-21 15:12:10 +00:00
>SYSCALL printf
rts
2018-11-26 21:52:49 +00:00
*---------------------------------------
OUT.EmitByte phy
phx
pha
2018-03-19 16:48:41 +00:00
>LDA.G OUT.Buf
cmp #3
bne .2
jsr OUT.PrintLineOn
bcs .1
>LDA.G ASM.LI.XON
bpl .1
jsr OUT.PrintLineOutBuf
jsr OUT.PrintCR
.1 jsr OUT.Reset
lda #0
ldy #OUT.Buf
.2 inc
sta (pData),y
clc
adc #OUT.Buf
tay
pla
sta (pData),y
.8 >INC.G ASM.PC
bne .80
>INC.G ASM.PC+1
bne .80
>INC.G ASM.PC+2
bne .80
>INC.G ASM.PC+3
.80 plx
ply
clc
rts
*---------------------------------------
2019-03-26 15:22:48 +00:00
OUT.PrintCR >PUSHBI 0
>LDYA L.MSG.CRLF
>SYSCALL printf
2019-04-01 06:07:56 +00:00
>DEBUG
OUT.PrintCR1 >DEC.G OUT.LineCnt
2019-03-26 15:22:48 +00:00
bne .8
lda #PAGE.LEN
sta (pData),y
2019-03-28 16:48:22 +00:00
* lda #$80
* >STA.G bPause
2019-03-26 15:22:48 +00:00
.8 rts
*---------------------------------------
MAN
2019-01-28 07:44:37 +00:00
SAVE USR/SRC/BIN/ASM.S.OUT
LOAD USR/SRC/BIN/ASM.S
ASM