24 lines
864 B
Text
24 lines
864 B
Text
|
|
PrintString:
|
||
|
|
lda (StringPtr),y
|
||
|
|
beq Terminated
|
||
|
|
cmp #'\' ; a single ascii character is specified in single quotes.
|
||
|
|
beq HandleSpecialChars
|
||
|
|
jsr PrintChar ;unimplemented print routine
|
||
|
|
iny ;next character
|
||
|
|
jmp PrintString ;back to top
|
||
|
|
|
||
|
|
Terminated:
|
||
|
|
rts ;exit
|
||
|
|
|
||
|
|
HandleSpecialChars:
|
||
|
|
iny ;next char
|
||
|
|
lda (StringPtr),y
|
||
|
|
cmp #'n'
|
||
|
|
beq NextLine ;unimplemented new line routine, it ends in "JMP DoneSpecialChar."
|
||
|
|
;Typically this would reset the x cursor and increment the y cursor, which are software variables that
|
||
|
|
;get converted to a VRAM address in some other routine.
|
||
|
|
|
||
|
|
DoneSpecialChar:
|
||
|
|
iny
|
||
|
|
jmp PrintString ;jump back to top. Notice that neither the backslash nor the character after it were actually printed.
|