47 lines
1.1 KiB
Plaintext
47 lines
1.1 KiB
Plaintext
|
|
||
|
.ifndef INCLUDE_PRINT_SLOW
|
||
|
INCLUDE_PRINT_SLOW = 1
|
||
|
|
||
|
.include "programs/sleep.s65"
|
||
|
.include "system/lcd.s65"
|
||
|
|
||
|
|
||
|
;********************************************************************************
|
||
|
; @function Print a null-terminated string
|
||
|
; @param ARG0-1: Address of the string to print
|
||
|
; @param x: time to sleep in centiseconds
|
||
|
;********************************************************************************
|
||
|
.proc print_slow
|
||
|
ldy #$00
|
||
|
@print_loop:
|
||
|
lda (ARG0),y
|
||
|
beq @print_end
|
||
|
phx
|
||
|
jsr sleep
|
||
|
plx
|
||
|
jsr lcd_char
|
||
|
iny
|
||
|
bra @print_loop
|
||
|
@print_end:
|
||
|
rts
|
||
|
.endproc
|
||
|
|
||
|
;********************************************************************************
|
||
|
; @macro Print a null-terminated string
|
||
|
; @param message: Address of the message
|
||
|
; @param time_cs: time to sleep in centiseconds
|
||
|
;********************************************************************************
|
||
|
.macro PrintSlow message,time_cs
|
||
|
jsr lcd_clear
|
||
|
lda #.LOBYTE(message)
|
||
|
sta ARG0
|
||
|
lda #.HIBYTE(message)
|
||
|
sta ARG1
|
||
|
phx
|
||
|
ldx #time_cs
|
||
|
jsr print_slow
|
||
|
plx
|
||
|
.endmacro
|
||
|
|
||
|
.endif ; guard
|