AppleIIAsm-Collection/source/d2_stdio/T.SUB.TXTPUT.ASM
2021-06-05 21:40:51 -04:00

43 lines
1.5 KiB
NASM

*
*``````````````````````````````*
* TXTPUT (NATHAN RIGGS) *
* *
* INPUT: *
* *
* .A = FILL CHAR *
* .X = X POSITION *
* .Y = Y POSITION *
* *
* OUTPUT *
* *
* CHAR TO SCREEN AT X,Y *
* *
* DESTROY: NZCIDV *
* ^^^ ^ *
* *
* CYCLES: 79+ *
* SIZE: 22 BYTES *
*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*
*
]Y1 EQU ZPW1 ; Y COORDINATE (1 BYTE)
]X1 EQU ZPW2 ; X COORDINATE (1 BYTE)
]F EQU ZPW3 ; CHARACTER TO PLOT (1 BYTE)
*
TXTPUT
*
* WITH SOME REARRANGEMENT, STORING VARS FOR LATER
* CAN BE ERASED TO SAVE CYCLES AND BYTES, BUT THIS WOULD
* BE AT THE EXPENSE OF INTERNAL LIBRARY CONSISTENCY
*
STA ]F ; {4C3B} STORE CHARACTER TO PLOT
STY ]Y1 ; {4C3B} STORE Y POSITION
STX ]X1 ; {4C3B} STORE X POSITION
LDA ]Y1 ; {4C3B} LOAD Y POS INTO .A AND
LDY ]X1 ; {4C3B} X POS IN .Y TO CALL GBCALC
JSR GBCALC ; {43C24B} GET SCREEN ADDRESS TO PLOT
LDA ]F ; {4C3B} LOAD .A WITH CHARACTER TO PLOT
STA (GBPSH),Y ; {6C3B} PUSH CHARACTER TO SCREEN ADDR
:EXIT ; THAT WAS RETURNED BY GBCALC
RTS ; {6C1B}
*