2015-11-22 22:30:06 +00:00
|
|
|
|
PR#3
|
|
|
|
|
PREFIX /A2OSX.SRC
|
|
|
|
|
NEW
|
|
|
|
|
INC 1
|
|
|
|
|
AUTO 6
|
|
|
|
|
.LIST OFF
|
2016-10-11 15:30:19 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
* K.PrintFYA :
|
|
|
|
|
* Prints C-Style String
|
|
|
|
|
* Y,A = PTR to Sting,Last Byte negative
|
|
|
|
|
* %a pull 2 bytes to Print Access right String drwxrwxrwx
|
|
|
|
|
* %b pull 1 byte to Print BIN
|
|
|
|
|
* %B pull 2 bytes to Print BIN
|
|
|
|
|
* %d pull 1 byte unsigned DEC 0..255
|
|
|
|
|
* %D pull 2 bytes unsigned DEC 0..65535
|
|
|
|
|
* %u pull 2 bytes PTR to 4 bytes long unsigned DEC 0..4294967295
|
|
|
|
|
* %e pull 2 bytes PTR to 6 Bytes Real +1.23456789e+12
|
|
|
|
|
* %f pull 2 bytes PTR to 6 Bytes Real 3.1415
|
|
|
|
|
* %h pull 1 byte to Print HEX
|
|
|
|
|
* %H pull 2 bytes to Print HEX
|
|
|
|
|
* %i pull 1 byte to Print signed DEC -128..127
|
|
|
|
|
* %I pull 2 bytes to Print signed DEC -32768..32767
|
2016-10-12 06:28:57 +00:00
|
|
|
|
* %L pull 2 bytes PTR to 4 bytes signed DEC -2147483648..2147483647
|
2016-10-11 15:30:19 +00:00
|
|
|
|
* %n pull 1 byte to Print low Nibble HEX
|
|
|
|
|
* %N pull 1 byte to Print high Nibble HEX
|
|
|
|
|
* %s pull 2 bytes ptr to C-Style String
|
|
|
|
|
* %S pull 2 bytes ptr to P-Style String
|
|
|
|
|
* \e Print 'ESC' ($1B,27)
|
|
|
|
|
* \n Print CR=13
|
|
|
|
|
* \\ Print \
|
|
|
|
|
* \% Print %
|
|
|
|
|
* len/padding :
|
|
|
|
|
* %d '9' '12'
|
|
|
|
|
* %2d ' 9' '12'
|
|
|
|
|
* %02d '09' '12'
|
|
|
|
|
* %11s 'ABCDEFGH '
|
|
|
|
|
* %011s 'ABCDEFGH000'
|
|
|
|
|
* %2f '3.14'
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
K.PrintFYA >STYA ZPQuickPtr1
|
|
|
|
|
|
|
|
|
|
ldy #0
|
|
|
|
|
|
|
|
|
|
.1 lda (ZPQuickPtr1),y
|
|
|
|
|
beq .99
|
|
|
|
|
cmp #'%'
|
|
|
|
|
bne .10
|
|
|
|
|
|
|
|
|
|
stz PADLEN
|
|
|
|
|
lda #' '
|
|
|
|
|
sta PADCHAR
|
|
|
|
|
|
|
|
|
|
.2 ldx #PrintFTBL1.END-PrintFTBL1-1
|
|
|
|
|
iny
|
|
|
|
|
lda (ZPQuickPtr1),y
|
|
|
|
|
beq .99
|
|
|
|
|
|
|
|
|
|
.3 cmp PrintFTBL1,x do we have a %x command?
|
|
|
|
|
beq .8 yes, jmp to it!
|
|
|
|
|
dex
|
|
|
|
|
bpl .3 no valid letter...
|
|
|
|
|
|
|
|
|
|
cmp #'0' ...a 0...mmm... padding char?
|
|
|
|
|
bne .4
|
|
|
|
|
|
|
|
|
|
ldx PADLEN PADLEN is not nul, so this 0 is second digit
|
|
|
|
|
bne .5
|
|
|
|
|
|
|
|
|
|
lda #'0'
|
|
|
|
|
sta PADCHAR no, this is the first 0, so make it PADCHAR
|
|
|
|
|
bra .2
|
|
|
|
|
|
|
|
|
|
.4 bcc .99 less than '0'....error
|
|
|
|
|
cmp #'9'+1
|
|
|
|
|
bcs .99 more than '9' ....error
|
|
|
|
|
|
|
|
|
|
.5 and #$0F we have a digit
|
|
|
|
|
pha save it...
|
|
|
|
|
lda PADLEN starts PADLEN * 10
|
|
|
|
|
asl
|
|
|
|
|
asl A=times 4
|
|
|
|
|
adc PADLEN CC by ASL, A=times 5
|
|
|
|
|
asl times 10
|
|
|
|
|
sta PADLEN
|
|
|
|
|
|
|
|
|
|
pla get back digit
|
|
|
|
|
adc PADLEN
|
|
|
|
|
sta PADLEN
|
|
|
|
|
bra .2 go get next char...
|
|
|
|
|
|
|
|
|
|
.8 phy
|
|
|
|
|
txa
|
|
|
|
|
asl
|
|
|
|
|
tax
|
|
|
|
|
jsr PrintFESC
|
|
|
|
|
ply
|
|
|
|
|
iny
|
|
|
|
|
bne .1
|
|
|
|
|
rts
|
|
|
|
|
|
|
|
|
|
.10 cmp #'\'
|
|
|
|
|
bne .20
|
|
|
|
|
|
|
|
|
|
ldx #PrintFTBL2.END-PrintFTBL2-1
|
|
|
|
|
iny
|
|
|
|
|
lda (ZPQuickPtr1),y
|
|
|
|
|
beq .99
|
|
|
|
|
.12 cmp PrintFTBL2,x
|
|
|
|
|
beq .13
|
|
|
|
|
dex
|
|
|
|
|
bpl .12
|
|
|
|
|
bra .80
|
|
|
|
|
|
|
|
|
|
.13 lda PrintFTBL2.OUT,x
|
|
|
|
|
|
|
|
|
|
.20 jsr K.COutA
|
|
|
|
|
.80 iny
|
|
|
|
|
bne .1
|
|
|
|
|
.99 rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
PrintFESC jmp (PrintFJMP,x)
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
PrintFTBL1 .AS "abBdDuefhHiILnNsS"
|
|
|
|
|
PrintFTBL1.END
|
|
|
|
|
PrintFTBL2 .AS "en\%"
|
|
|
|
|
PrintFTBL2.END
|
|
|
|
|
PrintFTBL2.OUT .HS 1B.0D \e\n
|
|
|
|
|
.DA #'\' \\
|
|
|
|
|
.DA #'%' \%
|
2016-10-12 15:46:38 +00:00
|
|
|
|
PrintFJMP .DA PrintF.A
|
|
|
|
|
.DA PrintF.B,PrintF.BB
|
|
|
|
|
.DA PrintF.D,PrintF.DD,PrintF.U
|
|
|
|
|
.DA PrintF.E,PrintF.F
|
|
|
|
|
.DA PrintF.H,PrintF.HH
|
|
|
|
|
.DA PrintF.I,PrintF.II,PrintF.L
|
|
|
|
|
.DA PrintF.N,PrintF.NN
|
|
|
|
|
.DA PrintF.S,PrintF.SS
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
PrintF.A >PULLW HEXBUF
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
PrintF.BB >PULLYA
|
|
|
|
|
phy
|
|
|
|
|
jsr PrintF.B
|
|
|
|
|
pla
|
|
|
|
|
bra PrintF.B.1
|
2016-10-11 15:30:19 +00:00
|
|
|
|
*--------------------------------------
|
2016-10-12 15:46:38 +00:00
|
|
|
|
PrintF.B >PULLA
|
|
|
|
|
|
|
|
|
|
PrintF.B.1 ldx #8
|
|
|
|
|
|
|
|
|
|
.1 asl
|
|
|
|
|
pha
|
|
|
|
|
lda #'0'
|
|
|
|
|
adc #0 add Carry
|
|
|
|
|
jsr K.COutA
|
|
|
|
|
pla
|
|
|
|
|
dex
|
|
|
|
|
bne .1
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
PrintF.D >PULLB HEXBUF
|
|
|
|
|
stz HEXBUF+1
|
2016-10-11 15:30:19 +00:00
|
|
|
|
bra PrintF.DD.1
|
|
|
|
|
|
2016-10-12 15:46:38 +00:00
|
|
|
|
PrintF.DD >PULLW HEXBUF
|
|
|
|
|
PrintF.DD.1 stz HEXBUF+2
|
|
|
|
|
stz HEXBUF+3
|
2016-10-11 15:30:19 +00:00
|
|
|
|
bra PrintF.U.1
|
|
|
|
|
|
|
|
|
|
PrintF.U >PULLW ZPQuickPtr2
|
|
|
|
|
ldy #3
|
|
|
|
|
|
|
|
|
|
.1 lda (ZPQuickPtr2),y
|
2016-10-12 15:46:38 +00:00
|
|
|
|
sta HEXBUF,y
|
2016-10-11 15:30:19 +00:00
|
|
|
|
dey
|
|
|
|
|
bpl .1
|
|
|
|
|
|
2016-10-12 15:46:38 +00:00
|
|
|
|
PrintF.U.1 stz SIGN
|
|
|
|
|
jsr HEX2DEC
|
|
|
|
|
jmp PrintDEC
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
PrintF.E >PULLW ZPQuickPtr2
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
PrintF.F >PULLW ZPQuickPtr2
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
PrintF.HH >PULLYA
|
|
|
|
|
K.HexOutYA
|
|
|
|
|
phy
|
|
|
|
|
jsr PrintF.H.1
|
|
|
|
|
pla
|
|
|
|
|
bra PrintF.H.1
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
PrintF.H >PULLA
|
|
|
|
|
K.HexOutA
|
|
|
|
|
PrintF.H.1 pha
|
|
|
|
|
jsr PrintF.NN.1
|
|
|
|
|
pla
|
|
|
|
|
jmp PrintF.N.1
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
PrintF.I >PULLB HEXBUF
|
|
|
|
|
eor #$ff if positive, it becomes neg so branch if....minus!
|
|
|
|
|
clc
|
|
|
|
|
bmi .1
|
|
|
|
|
sec
|
|
|
|
|
inc 2s complement...
|
|
|
|
|
sta HEXBUF
|
2016-10-11 15:30:19 +00:00
|
|
|
|
|
2016-10-12 15:46:38 +00:00
|
|
|
|
|
|
|
|
|
.1 stz HEXBUF+1
|
|
|
|
|
bra PrintF.II.1
|
|
|
|
|
|
|
|
|
|
PrintF.II >PULLW HEXBUF A=HI
|
|
|
|
|
eor #$ff
|
|
|
|
|
clc
|
|
|
|
|
bmi PrintF.II.1
|
|
|
|
|
sec
|
|
|
|
|
tax
|
|
|
|
|
lda HEXBUF
|
|
|
|
|
eor #$ff
|
|
|
|
|
inc 2s complement...
|
|
|
|
|
sta HEXBUF
|
|
|
|
|
bne .1
|
|
|
|
|
inx
|
|
|
|
|
.1 sta HEXBUF
|
|
|
|
|
stx HEXBUF+1
|
2016-10-11 15:30:19 +00:00
|
|
|
|
|
2016-10-12 15:46:38 +00:00
|
|
|
|
PrintF.II.1 stz HEXBUF+2
|
|
|
|
|
stz HEXBUF+3
|
|
|
|
|
bra PrintF.L.1
|
|
|
|
|
|
|
|
|
|
PrintF.L >PULLW ZPQuickPtr2
|
|
|
|
|
ldy #3
|
|
|
|
|
|
|
|
|
|
.1 lda (ZPQuickPtr2),y
|
|
|
|
|
sta HEXBUF,y
|
|
|
|
|
dey
|
|
|
|
|
bpl .1
|
2016-10-11 15:30:19 +00:00
|
|
|
|
|
2016-10-12 15:46:38 +00:00
|
|
|
|
|
|
|
|
|
PrintF.L.1 ror SIGN
|
|
|
|
|
jsr HEX2DEC
|
|
|
|
|
jmp PrintDEC
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
PrintF.N >PULLA
|
|
|
|
|
PrintF.N.1 and #$0F
|
|
|
|
|
bra PrintF.NN.2
|
2016-10-11 15:30:19 +00:00
|
|
|
|
|
2016-10-12 15:46:38 +00:00
|
|
|
|
PrintF.NN >PULLA
|
|
|
|
|
PrintF.NN.1 lsr
|
|
|
|
|
lsr
|
|
|
|
|
lsr
|
|
|
|
|
lsr
|
|
|
|
|
|
|
|
|
|
PrintF.NN.2 ora #$30
|
|
|
|
|
cmp #$3A
|
|
|
|
|
bcc .1
|
|
|
|
|
adc #6
|
|
|
|
|
.1 jmp K.COutA
|
2015-11-22 22:30:06 +00:00
|
|
|
|
*--------------------------------------
|
2016-10-12 15:46:38 +00:00
|
|
|
|
* CStr
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
PrintF.S >PULLW ZPQuickPtr2
|
|
|
|
|
|
|
|
|
|
ldy #0
|
2015-11-22 22:30:06 +00:00
|
|
|
|
|
2016-10-12 15:46:38 +00:00
|
|
|
|
.1 lda (ZPQuickPtr2),y
|
|
|
|
|
beq .2
|
|
|
|
|
|
|
|
|
|
jsr K.COutA
|
2015-11-22 22:30:06 +00:00
|
|
|
|
iny
|
2016-10-12 15:46:38 +00:00
|
|
|
|
lda PADLEN
|
2015-11-22 22:30:06 +00:00
|
|
|
|
|
2016-10-12 15:46:38 +00:00
|
|
|
|
beq .1
|
|
|
|
|
cpy PADLEN
|
|
|
|
|
bne .1
|
|
|
|
|
rts
|
2015-11-22 22:30:06 +00:00
|
|
|
|
|
2016-10-12 15:46:38 +00:00
|
|
|
|
.2 lda PADLEN
|
|
|
|
|
beq .8
|
2015-11-22 22:30:06 +00:00
|
|
|
|
|
2016-10-12 15:46:38 +00:00
|
|
|
|
.3 lda PADCHAR
|
2016-09-21 15:20:37 +00:00
|
|
|
|
jsr K.COutA
|
2016-10-12 15:46:38 +00:00
|
|
|
|
iny
|
|
|
|
|
cpy PADLEN
|
|
|
|
|
bne .3
|
2015-11-22 22:30:06 +00:00
|
|
|
|
|
2016-10-12 15:46:38 +00:00
|
|
|
|
.8 rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
* PStr
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
PrintF.SS >PULLW ZPQuickPtr2
|
|
|
|
|
|
|
|
|
|
ldy #0
|
|
|
|
|
lda (ZPQuickPtr2),y
|
|
|
|
|
tax
|
|
|
|
|
beq .8
|
|
|
|
|
|
|
|
|
|
.1 iny
|
|
|
|
|
lda (ZPQuickPtr2),y
|
2016-09-21 15:20:37 +00:00
|
|
|
|
jsr K.COutA
|
2016-10-12 15:46:38 +00:00
|
|
|
|
lda PADLEN
|
2015-11-22 22:30:06 +00:00
|
|
|
|
|
2016-10-12 15:46:38 +00:00
|
|
|
|
beq .2
|
|
|
|
|
cpy PADLEN
|
|
|
|
|
beq .8
|
2015-11-22 22:30:06 +00:00
|
|
|
|
|
2016-10-12 15:46:38 +00:00
|
|
|
|
.2 dex
|
|
|
|
|
bne .1
|
|
|
|
|
|
|
|
|
|
lda PADLEN
|
|
|
|
|
beq .8
|
|
|
|
|
|
|
|
|
|
.3 lda PADCHAR
|
2016-09-21 15:20:37 +00:00
|
|
|
|
jsr K.COutA
|
2016-10-12 15:46:38 +00:00
|
|
|
|
iny
|
|
|
|
|
cpy PADLEN
|
|
|
|
|
bne .3
|
2015-11-22 22:30:06 +00:00
|
|
|
|
|
2016-10-12 15:46:38 +00:00
|
|
|
|
.8 rts
|
2015-11-22 22:30:06 +00:00
|
|
|
|
*--------------------------------------
|
2016-09-21 15:20:37 +00:00
|
|
|
|
K.COutA phx
|
2015-11-22 22:30:06 +00:00
|
|
|
|
phy
|
2015-12-10 18:53:30 +00:00
|
|
|
|
cmp #13
|
|
|
|
|
bne .1
|
2015-11-22 22:30:06 +00:00
|
|
|
|
ldx #DEVMGR.COUT
|
2015-12-10 18:53:30 +00:00
|
|
|
|
jsr pDevJmp
|
2015-12-10 20:15:55 +00:00
|
|
|
|
bcs .2
|
2015-12-10 18:53:30 +00:00
|
|
|
|
lda #10
|
|
|
|
|
.1 ldx #DEVMGR.COUT
|
2015-11-22 22:30:06 +00:00
|
|
|
|
jsr pDevJmp
|
2015-12-10 20:15:55 +00:00
|
|
|
|
.2 ply
|
2015-11-22 22:30:06 +00:00
|
|
|
|
plx
|
2016-10-12 15:46:38 +00:00
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
* Convert HEXBUF to ASCBUF decimal padded with 0
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
HEX2DEC ldx #4
|
|
|
|
|
|
|
|
|
|
.1 stz BCDBUF,x Clear all 5 bytes
|
|
|
|
|
dex
|
|
|
|
|
bpl .1
|
|
|
|
|
|
|
|
|
|
sed switch to BCD mode
|
|
|
|
|
|
|
|
|
|
ldx #32 let's roll 32 bits
|
|
|
|
|
|
|
|
|
|
.2 asl HEXBUF
|
|
|
|
|
rol HEXBUF+1
|
|
|
|
|
rol HEXBUF+2
|
|
|
|
|
rol HEXBUF+3
|
|
|
|
|
|
|
|
|
|
ldy #4
|
|
|
|
|
|
|
|
|
|
.3 lda BCDBUF,y
|
|
|
|
|
adc BCDBUF,y
|
|
|
|
|
sta BCDBUF,y
|
|
|
|
|
dey
|
|
|
|
|
bpl .3
|
|
|
|
|
|
|
|
|
|
dex
|
|
|
|
|
bne .2
|
|
|
|
|
|
|
|
|
|
cld
|
|
|
|
|
|
|
|
|
|
ldy #4
|
|
|
|
|
ldx #9
|
|
|
|
|
|
|
|
|
|
.4 lda BCDBUF,y
|
|
|
|
|
pha
|
|
|
|
|
and #$0F
|
|
|
|
|
ora #$30
|
|
|
|
|
sta ASCBUF,x
|
|
|
|
|
dex
|
|
|
|
|
pla
|
|
|
|
|
lsr
|
|
|
|
|
lsr
|
|
|
|
|
lsr
|
|
|
|
|
lsr
|
|
|
|
|
ora #$30
|
|
|
|
|
sta ASCBUF,x
|
|
|
|
|
dey
|
|
|
|
|
dex
|
|
|
|
|
bpl .4
|
|
|
|
|
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
PRINTDEC lda PADLEN any Len format ?
|
|
|
|
|
beq .1 no
|
|
|
|
|
|
|
|
|
|
lda #10
|
|
|
|
|
sec yes, Print only digits starting at pos 10-padlen
|
|
|
|
|
sbc PADLEN
|
|
|
|
|
|
|
|
|
|
.1 tax x=0 if no padlen, or x=10-padlen
|
|
|
|
|
|
|
|
|
|
.2 lda ASCBUF,x
|
|
|
|
|
cmp #'0' a zero?
|
|
|
|
|
beq .3
|
|
|
|
|
|
|
|
|
|
inc PADLEN found a non zero, Print all digits, even if 0, next time
|
|
|
|
|
ldy #'0'
|
|
|
|
|
sty PADCHAR
|
|
|
|
|
bra .4
|
|
|
|
|
|
|
|
|
|
.3 cpx #9 last digit ?
|
|
|
|
|
beq .4 Print always
|
|
|
|
|
|
|
|
|
|
ldy PADLEN no pad to fill, do not Print 0
|
|
|
|
|
beq .9
|
|
|
|
|
|
|
|
|
|
lda PADCHAR fill with PADCHAR
|
|
|
|
|
|
|
|
|
|
.4 bit SIGN a sign to print before digits ?
|
|
|
|
|
bpl .5
|
|
|
|
|
pha yes, save whatever we have to print....
|
|
|
|
|
lda #'-'
|
|
|
|
|
jsr K.COutA
|
|
|
|
|
stz SIGN reset flag for next char...
|
|
|
|
|
pla
|
|
|
|
|
|
|
|
|
|
.5 jsr K.COutA
|
|
|
|
|
|
|
|
|
|
.9 inx
|
|
|
|
|
cpx #10
|
|
|
|
|
bne .2
|
|
|
|
|
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
* Convert ASCBUF decimal to HEXBUF
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
DEC2HEX stz HEXBUF
|
|
|
|
|
stz HEXBUF+1
|
|
|
|
|
stz HEXBUF+2
|
|
|
|
|
stz HEXBUF+3
|
|
|
|
|
|
|
|
|
|
ldx #0
|
|
|
|
|
|
|
|
|
|
.1 lda HEXBUF+3 save HEXBUF for 4+1
|
|
|
|
|
pha
|
|
|
|
|
lda HEXBUF+2
|
|
|
|
|
pha
|
|
|
|
|
lda HEXBUF+1
|
|
|
|
|
pha
|
|
|
|
|
lda HEXBUF
|
|
|
|
|
pha
|
|
|
|
|
|
|
|
|
|
asl HEXBUF HEXBUF * 2 -> HEXBUF
|
|
|
|
|
rol HEXBUF+1
|
|
|
|
|
rol HEXBUF+2
|
|
|
|
|
rol HEXBUF+3
|
|
|
|
|
bcs .9 overflow!!!
|
|
|
|
|
|
|
|
|
|
asl HEXBUF HEXBUF * 4 -> HEXBUF
|
|
|
|
|
rol HEXBUF+1
|
|
|
|
|
rol HEXBUF+2
|
|
|
|
|
rol HEXBUF+3
|
|
|
|
|
bcs .9 overflow!!!
|
|
|
|
|
|
|
|
|
|
pla HEXBUF * 4 + HEXBUF -> HEXBUF
|
|
|
|
|
adc HEXBUF
|
|
|
|
|
sta HEXBUF
|
|
|
|
|
pla
|
|
|
|
|
adc HEXBUF+1
|
|
|
|
|
sta HEXBUF+1
|
|
|
|
|
pla
|
|
|
|
|
adc HEXBUF+2
|
|
|
|
|
sta HEXBUF+2
|
|
|
|
|
pla
|
|
|
|
|
adc HEXBUF+3
|
|
|
|
|
sta HEXBUF+3
|
|
|
|
|
bcs .99 overflow!!!
|
|
|
|
|
|
|
|
|
|
asl HEXBUF HEXBUF * 10 -> HEXBUF
|
|
|
|
|
rol HEXBUF+1
|
|
|
|
|
rol HEXBUF+2
|
|
|
|
|
rol HEXBUF+3
|
|
|
|
|
bcs .99 overflow!!!
|
|
|
|
|
|
|
|
|
|
inx
|
|
|
|
|
lda ASCBUF,x
|
|
|
|
|
and #$0F
|
|
|
|
|
|
|
|
|
|
adc HEXBUF
|
|
|
|
|
sta HEXBUF
|
|
|
|
|
bcc .2
|
|
|
|
|
inc HEXBUF+1
|
|
|
|
|
bne .2
|
|
|
|
|
inc HEXBUF+2
|
|
|
|
|
bne .2
|
|
|
|
|
inc HEXBUF+3
|
|
|
|
|
|
|
|
|
|
.2 cpx ASCBUF
|
|
|
|
|
bne .1
|
|
|
|
|
rts
|
|
|
|
|
|
|
|
|
|
.9 pla discard saved HEXBUF
|
|
|
|
|
pla
|
|
|
|
|
pla
|
|
|
|
|
pla
|
|
|
|
|
.99 rts
|
|
|
|
|
*--------------------------------------
|
2016-10-13 06:21:16 +00:00
|
|
|
|
*ACCESS .AS "drwxrwxrwx"
|
2016-10-12 15:46:38 +00:00
|
|
|
|
HEXBUF .BS 4 32 bits max
|
|
|
|
|
BCDBUF .BS 5 5, enough to handle 10 digits (32bits)
|
|
|
|
|
ASCBUF .BS 12 LEN + sign + 10 digits ($FFFFFFFF=4.294.967.295)
|
|
|
|
|
SIGN .BS 1
|
|
|
|
|
PADLEN .BS 1
|
|
|
|
|
PADCHAR .BS 1
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
* SUPERSEEDED by K.PrintFYA
|
2015-11-22 22:30:06 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
* Mini printf for PSTR
|
|
|
|
|
* %d : byte
|
|
|
|
|
* %D : word
|
|
|
|
|
* %h : hex byte
|
|
|
|
|
* %H : hex word
|
2016-05-01 21:13:54 +00:00
|
|
|
|
* %s : hSTR
|
|
|
|
|
* %S : PSTR
|
2015-11-29 22:19:10 +00:00
|
|
|
|
* \e : ESC
|
2015-11-22 22:30:06 +00:00
|
|
|
|
* \n : CR
|
|
|
|
|
*--------------------------------------
|
2016-09-21 15:20:37 +00:00
|
|
|
|
K.PStrOutYA >STYA ZPQuickPtr1
|
2015-11-22 22:30:06 +00:00
|
|
|
|
|
|
|
|
|
ldy #0
|
|
|
|
|
|
2016-09-21 15:20:37 +00:00
|
|
|
|
.1 jsr K.PStrOut.Next
|
2015-11-29 22:19:10 +00:00
|
|
|
|
bne .12
|
|
|
|
|
.8 clc
|
|
|
|
|
rts
|
|
|
|
|
|
|
|
|
|
.12 cmp #'\'
|
2015-11-22 22:30:06 +00:00
|
|
|
|
bne .2
|
2016-09-21 15:20:37 +00:00
|
|
|
|
jsr K.PStrOut.Next
|
2015-11-22 22:30:06 +00:00
|
|
|
|
beq .8
|
|
|
|
|
|
2015-11-29 22:19:10 +00:00
|
|
|
|
cmp #'e'
|
|
|
|
|
bne .11
|
|
|
|
|
lda #27
|
|
|
|
|
bra .6
|
|
|
|
|
|
|
|
|
|
.11 cmp #'n'
|
2015-11-22 22:30:06 +00:00
|
|
|
|
bne .6
|
|
|
|
|
lda #13
|
|
|
|
|
bra .6
|
|
|
|
|
|
|
|
|
|
.2 cmp #'%'
|
|
|
|
|
bne .6
|
|
|
|
|
|
2016-09-21 15:20:37 +00:00
|
|
|
|
jsr K.PStrOut.Next
|
2015-11-22 22:30:06 +00:00
|
|
|
|
beq .8
|
|
|
|
|
cmp #'d'
|
|
|
|
|
bne .3
|
|
|
|
|
phy
|
|
|
|
|
>PULLA
|
2016-09-21 15:20:37 +00:00
|
|
|
|
jsr K.DecOutA
|
2015-11-22 22:30:06 +00:00
|
|
|
|
ply
|
2015-11-29 22:19:10 +00:00
|
|
|
|
bcc .1
|
2015-11-22 22:30:06 +00:00
|
|
|
|
rts
|
|
|
|
|
|
|
|
|
|
.3 cmp #'D'
|
|
|
|
|
bne .4
|
|
|
|
|
phy
|
|
|
|
|
>PULLYA
|
2016-09-21 15:20:37 +00:00
|
|
|
|
jsr K.DecOutYA
|
2015-11-22 22:30:06 +00:00
|
|
|
|
ply
|
2015-11-29 22:19:10 +00:00
|
|
|
|
bcc .1
|
2015-11-22 22:30:06 +00:00
|
|
|
|
rts
|
|
|
|
|
|
|
|
|
|
.4 cmp #'h'
|
|
|
|
|
bne .5
|
|
|
|
|
phy
|
|
|
|
|
>PULLA
|
2016-09-21 15:20:37 +00:00
|
|
|
|
jsr K.HexOutA
|
2015-11-22 22:30:06 +00:00
|
|
|
|
ply
|
2015-11-29 22:19:10 +00:00
|
|
|
|
bcc .1
|
2015-11-22 22:30:06 +00:00
|
|
|
|
rts
|
|
|
|
|
|
|
|
|
|
.5 cmp #'H'
|
|
|
|
|
bne .51
|
|
|
|
|
phy
|
|
|
|
|
>PULLYA
|
2016-09-21 15:20:37 +00:00
|
|
|
|
jsr K.HexOutYA
|
2015-11-22 22:30:06 +00:00
|
|
|
|
ply
|
2015-11-29 22:19:10 +00:00
|
|
|
|
bcc .1
|
2015-11-22 22:30:06 +00:00
|
|
|
|
rts
|
|
|
|
|
|
2015-11-29 22:19:10 +00:00
|
|
|
|
.51 cmp #'s'
|
|
|
|
|
bne .52
|
2016-09-21 15:20:37 +00:00
|
|
|
|
jsr K.PStrOutYAS1
|
2015-11-29 22:19:10 +00:00
|
|
|
|
bcc .1
|
|
|
|
|
rts
|
|
|
|
|
|
|
|
|
|
.52 cmp #'S'
|
|
|
|
|
bne .53
|
2016-09-21 15:20:37 +00:00
|
|
|
|
jsr K.PStrOutYAS2
|
2015-11-29 22:19:10 +00:00
|
|
|
|
bcc .10
|
|
|
|
|
rts
|
|
|
|
|
|
|
|
|
|
.53 tax
|
2015-11-22 22:30:06 +00:00
|
|
|
|
lda #'%'
|
2016-09-21 15:20:37 +00:00
|
|
|
|
jsr K.COutA
|
2015-11-22 22:30:06 +00:00
|
|
|
|
bcs .9
|
|
|
|
|
txa
|
|
|
|
|
|
2016-09-21 15:20:37 +00:00
|
|
|
|
.6 jsr K.COutA
|
2015-11-22 22:30:06 +00:00
|
|
|
|
bcs .9
|
2015-11-29 22:19:10 +00:00
|
|
|
|
.10 jmp .1
|
|
|
|
|
.9 rts
|
|
|
|
|
*--------------------------------------
|
2016-09-21 15:20:37 +00:00
|
|
|
|
K.PStrOut.Next tya
|
2015-11-29 22:19:10 +00:00
|
|
|
|
eor (ZPQuickPtr1)
|
|
|
|
|
beq .8
|
|
|
|
|
iny
|
|
|
|
|
lda (ZPQuickPtr1),y
|
|
|
|
|
.8 rts
|
|
|
|
|
*--------------------------------------
|
2016-09-21 15:20:37 +00:00
|
|
|
|
K.PStrOutYAS1 phy
|
2015-11-29 22:19:10 +00:00
|
|
|
|
>PULLA
|
2016-09-21 15:20:37 +00:00
|
|
|
|
jsr K.GetMemPtrA
|
|
|
|
|
bra K.PStrOutYAS
|
2015-11-22 22:30:06 +00:00
|
|
|
|
|
2016-09-21 15:20:37 +00:00
|
|
|
|
K.PStrOutYAS2 phy
|
2015-11-29 22:19:10 +00:00
|
|
|
|
>PULLYA
|
2016-09-21 15:20:37 +00:00
|
|
|
|
K.PStrOutYAS >STYA ZPQuickPtr2
|
2015-11-29 22:19:10 +00:00
|
|
|
|
|
2016-01-04 07:18:33 +00:00
|
|
|
|
clc
|
|
|
|
|
lda (ZPQuickPtr2)
|
|
|
|
|
tax
|
|
|
|
|
beq .9
|
|
|
|
|
|
|
|
|
|
ldy #1
|
|
|
|
|
.1 lda (ZPQuickPtr2),y
|
2016-09-21 15:20:37 +00:00
|
|
|
|
jsr K.COutA
|
2015-11-29 22:19:10 +00:00
|
|
|
|
bcs .9
|
2016-01-04 07:18:33 +00:00
|
|
|
|
iny
|
|
|
|
|
dex
|
2015-11-29 22:19:10 +00:00
|
|
|
|
bne .1
|
2016-01-04 07:18:33 +00:00
|
|
|
|
|
2015-11-29 22:19:10 +00:00
|
|
|
|
.9 ply
|
|
|
|
|
rts
|
2015-11-22 22:30:06 +00:00
|
|
|
|
*--------------------------------------
|
2016-10-12 15:46:38 +00:00
|
|
|
|
K.DecOutA tay
|
|
|
|
|
lda #0
|
|
|
|
|
K.DecOutYA >STYA HEX
|
|
|
|
|
stz BCD
|
|
|
|
|
stz BCD+1
|
|
|
|
|
stz BCD+2
|
2016-10-12 06:28:57 +00:00
|
|
|
|
|
2016-10-12 15:46:38 +00:00
|
|
|
|
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
|
2016-10-12 06:28:57 +00:00
|
|
|
|
dex
|
|
|
|
|
bne .2
|
|
|
|
|
|
|
|
|
|
cld
|
|
|
|
|
|
2016-10-12 15:46:38 +00:00
|
|
|
|
stz bL0Flag
|
|
|
|
|
ldx #2
|
2016-10-12 06:28:57 +00:00
|
|
|
|
|
2016-10-12 15:46:38 +00:00
|
|
|
|
.4 lda BCD,x
|
2016-10-12 06:28:57 +00:00
|
|
|
|
lsr
|
|
|
|
|
lsr
|
|
|
|
|
lsr
|
|
|
|
|
lsr
|
2016-10-12 15:46:38 +00:00
|
|
|
|
bne .5
|
|
|
|
|
bit bL0Flag
|
|
|
|
|
bpl .6
|
|
|
|
|
.5 sec
|
|
|
|
|
ror bL0Flag
|
2016-10-12 06:28:57 +00:00
|
|
|
|
ora #$30
|
2016-10-12 15:46:38 +00:00
|
|
|
|
jsr K.COutA
|
|
|
|
|
bcs .9
|
2016-10-12 06:28:57 +00:00
|
|
|
|
|
2016-10-12 15:46:38 +00:00
|
|
|
|
.6 lda BCD,x
|
2016-10-12 06:28:57 +00:00
|
|
|
|
and #$0F
|
2016-10-12 15:46:38 +00:00
|
|
|
|
bne .7
|
|
|
|
|
bit bL0Flag
|
|
|
|
|
bpl .8
|
|
|
|
|
.7 sec
|
|
|
|
|
ror bL0Flag
|
|
|
|
|
ora #$30
|
|
|
|
|
jsr K.COutA
|
|
|
|
|
bcs .9
|
2016-10-12 06:28:57 +00:00
|
|
|
|
|
2016-10-12 15:46:38 +00:00
|
|
|
|
.8 dex
|
|
|
|
|
bpl .4
|
2016-10-12 06:28:57 +00:00
|
|
|
|
|
2016-10-12 15:46:38 +00:00
|
|
|
|
bit bL0Flag
|
|
|
|
|
bmi .9
|
|
|
|
|
lda #$30
|
|
|
|
|
jsr K.COutA
|
|
|
|
|
|
|
|
|
|
.9 rts
|
2016-10-12 06:28:57 +00:00
|
|
|
|
*--------------------------------------
|
2015-11-22 22:30:06 +00:00
|
|
|
|
HEX .BS 2
|
|
|
|
|
BCD .BS 3
|
|
|
|
|
bL0Flag .BS 1
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
MAN
|
|
|
|
|
SAVE SYS/KERNEL.S.CIO
|
|
|
|
|
LOAD SYS/KERNEL.S
|
|
|
|
|
ASM
|