A2osX/A2osX.S.TOOLS.txt
2016-03-13 22:55:47 +01:00

180 lines
2.4 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

PR#3
PREFIX /A2OSX.BOOT
DELETE A2OSX.SYSTEM
PREFIX /A2OSX.SRC
NEW
INC 1
AUTO 6
.LIST OFF
*--------------------------------------
PrintPStrAX >STAX TmpPtr1
lda (TmpPtr1)
tax
beq .9
ldy #1
.1 lda (TmpPtr1),y
ora #$80
jsr COUT
iny
dex
bne .1
.9 rts
*--------------------------------------
PrintCStrAX >STAX TmpPtr1
pla
sta TmpPtr2
pla
sta TmpPtr2+1
ldy #0
.1 stz b0Flag
stz DigitCount
lda (TmpPtr1),y
beq .9
cmp #'%'
bne .4
.11 iny
lda (TmpPtr1),y
beq .9
cmp #'0'
bne .22
ror b0Flag beq -> CS
bra .11
.22 bcc .21
cmp #'9'+1
bcs .21
and #$0f
sta DigitCount
bra .11
.21 cmp #'d'
bne .2
pla
jsr PrintADec
bra .8
.2 cmp #'D'
bne .3
pla
plx
jsr PrintAXDec
bra .8
.3 cmp #'h'
bne .4
pla
jsr PRBYTE
.4 cmp #'\'
bne .7
iny
lda (TmpPtr1),y
beq .9
cmp #'n'
bne .9
lda #$0D
.7 ora #$80
jsr COUT
.8 iny
bne .1
.9 lda TmpPtr2+1
pha
lda TmpPtr2
pha
rts
*--------------------------------------
PrintADec ldx #0
PrintAXDec >STAX HEX
stz BCD
stz BCD+1
stz BCD+2
phy
ldx #16 let's roll 16 bits
sed
.2 asl HEX
rol HEX+1
php cpy will disturb carry while BCD adc
ldy #0
.3 plp
lda BCD,y
adc BCD,y
sta BCD,y
php
iny
cpy #3 Last byte of BCDBUF?
bne .3
plp
dex
bne .2
cld
ldx #0
ldy #5
.4 lda BCD,x
pha
and #$0F
ora #$B0
sta DigitBuffer,y
dey
pla
lsr
lsr
lsr
lsr
ora #$B0
sta DigitBuffer,y
inx
dey
bpl .4
lda DigitCount
beq .5
lda #6
sec
sbc DigitCount
.5 tay
.6 lda DigitBuffer,y
cmp #"0"
beq .7
sec
ror b0Flag
bra .8
.7 cpy #5
beq .8
lda #" "
bit b0Flag
bpl .81
lda #"0"
.8 jsr COUT
.81 iny
cpy #6
bne .6
.9 ply
rts
*--------------------------------------
HEX .BS 2
BCD .BS 3
b0Flag .BS 1
DigitCount .BS 1
DigitBuffer .BS 6
*--------------------------------------
MAN
SAVE A2OSX.S.TOOLS
LOAD A2OSX.S
ASM