AppleIIAsm-Collection/source/d2_stdio/T.SUB.DPRINT.ASM

34 lines
1.1 KiB
NASM
Raw Normal View History

*
*``````````````````````````````*
* DPRINT (NATHAN RIGGS) *
* *
* INPUT: *
* *
* WPAR1 = STRING ADDRESS (2B) *
* *
* OUTPUT: *
* *
* PRINT A ZERO-TERMINATED *
* STRING AT A GIVEN ADDRESS. *
* *
* DESTROYS: NZCIDV *
* ^^^ ^ *
* *
2021-06-06 01:40:51 +00:00
* CYCLES: 112+ *
* SIZE: 13 BYTES *
*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*
*
2021-06-06 01:40:51 +00:00
]ADDR1 EQU ZPW1 ; INDIRECT ADDRESS IS PASSED HERE
*
DPRINT
*
2021-06-06 01:40:51 +00:00
LDY #$00 ; {3C2B} RESET COUNTER {NZ}
:LOOP
LDA (]ADDR1),Y ; {6C2B} GET NEXT CHARACTER IN STRING {NZ}
BEQ :EXIT ; {3C2B} IF CHAR = $00 THEN EXIT
2021-06-06 01:40:51 +00:00
JSR COUT1 ; {89C3B} OTHERWISE, PRINT CHAR {NZCV}
INY ; {2C1B} INCREAS COUNTER {NZ}
BNE :LOOP ; {3C2B} IF COUNTER < 256, LOOP
:EXIT
RTS ; {6C1B} RETURN TO CALLING ROUTINE