MiniMemoryTester/src/strings.s

76 lines
889 B
ArmAsm
Raw Normal View History

2015-03-04 20:21:36 +00:00
**** MACROS
* GOXY #x;#y
* PRINTXY #x;#y;StringAddrWord
**** FUNCTIONS
2015-03-01 19:44:56 +00:00
* GoXY
* PrintStringsX
* PrintString
2015-03-04 20:21:36 +00:00
GOXY MAC
ldx ]1
ldy ]2
stx $24
sty $25
jsr VTAB
<<<
PRINTXY MAC
ldx ]1
ldy ]2
stx $24
sty $25
jsr VTAB
lda #]3
ldy #>]3
jsr PrintString
<<<
2015-03-01 19:44:56 +00:00
GoXY stx $24
sty $25
jsr VTAB
rts
2015-03-04 20:21:36 +00:00
* lda #MainMenuStrs
* ldy #>MainMenuStrs
* ldx #05 ; horiz pos
PrintStringsX stx _printstringsx_horiz
2015-03-01 19:44:56 +00:00
sta $0
sty $1
2015-03-04 20:21:36 +00:00
:loop lda _printstringsx_horiz
sta $24
lda $0 ; slower, but allows API reuse
2015-03-01 19:44:56 +00:00
ldy $1
jsr PrintString ; y is last val
iny
lda ($0),y
beq :done
tya ; not done so add strlen to source ptr
clc
adc $0
sta $0
bcc :nocarry
inc $1
:nocarry bra :loop
:done rts
_printstringsx_horiz db 00
* PrintString (A=Low Byte, Y=High Byte)
PrintString sta :loop+1
sty :loop+2
2015-03-01 19:44:56 +00:00
ldy #0
:loop lda $FFFF,y ; dummy bytes
2015-03-01 19:44:56 +00:00
beq :done
jsr COUT
iny
bra :loop
:done rts