AppleIIAsm-Collection/source/disk1_stdio/T.SUB.DPRINT
nathanriggs c8cac53c5e Rev 0.4 updates
Massive updates that changes the way most subroutines are handled. Major bugfixes, various utilities added, started higher-level libraries.
2019-04-26 18:49:10 -04:00

77 lines
1.8 KiB
Plaintext

*
*``````````````````````````````*
* DPRINT :: PRINT FROM MEMORY *
*- -*
* PRINTS DATA FROM SPECIFIED *
* MEMORY LOCATION UNTIL *
* REACHING 00 (STRING TERM). *
*- -*
* CLOBBERS: *
* *
* FLAGS: -------- REG: A-YM *
*- -*
* CYCLES: 25+ *
* SIZE: *
*- -*
* USAGE: *
* LDA #>(ADDRESS) *
* PHA *
* LDA #<(ADDRESS) *
* PHA *
* JSR DPRINT *
*- -*
* ENTRY *
* *
* TOP OF STACK *
* *
* LOW BYTE OF RETURN ADDRESS *
* HI BYTE OF RETURN ADDRESS *
* LOW BYTE OF PRINT ADDRESS *
* HI BYTE OF PRINT ADDRESS *
*- -*
* EXIT *
* *
* TOP OF STACK *
* *
* LOW BYTE OF RETURN ADDRESS *
* HI BYTE OF RETURN ADDRESS *
* *
* A = LOW BYTE OF ADDRESS *
* X = UNCHANGED *
* Y = LENGTH OF STRING *
*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*
*
DPRINT
*
** SAVE RETURN ADDRESS
*
PLA
STA RETADR
PLA
STA RETADR+1
*
** GET ADDRESS, STORE IN ZERO PAGE
*
PLA
STA ADDR1
PLA
STA ADDR1+1
*
LDY #$00
:LOOP
LDA (ADDR1),Y
BEQ :EXIT
JSR COUT1
INY
BNE :LOOP
:EXIT
*
** RESTORE RETURN ADDRESS
*
LDA RETADR+1
PHA
LDA RETADR
PHA
*
RTS