mirror of
https://github.com/nathanriggs/AppleIIAsm-Collection.git
synced 2025-02-17 09:30:26 +00:00
115 lines
3.6 KiB
Plaintext
115 lines
3.6 KiB
Plaintext
|
*
|
||
|
*``````````````````````````````*
|
||
|
* TFILLA :: TEXT FILL AREA *
|
||
|
*- -*
|
||
|
* FILLS A RECTANGULAR AREA OF *
|
||
|
* THE SCREEN WITH THE DESIRED *
|
||
|
* CHARACTER. *
|
||
|
*- -*
|
||
|
* CLOBBERS: *
|
||
|
* *
|
||
|
* FLAGS: ???----- REG: AXYM *
|
||
|
*- -*
|
||
|
* CYCLES: ??? *
|
||
|
* SIZE: *
|
||
|
*- -*
|
||
|
* USAGE: *
|
||
|
* LDA (LEFT BOUND) *
|
||
|
* PHA *
|
||
|
* LDA (RIGHT BOUND) *
|
||
|
* PHA *
|
||
|
* LDA (TOP BOUND) *
|
||
|
* PHA *
|
||
|
* LDA (BOTTOM BOUND) *
|
||
|
* PHA *
|
||
|
* LDA (FILL CHAR) *
|
||
|
* PHA *
|
||
|
* JSR TFILLA *
|
||
|
*- -*
|
||
|
* ENTRY *
|
||
|
* *
|
||
|
* TOP OF STACK *
|
||
|
* *
|
||
|
* LOW BYTE OF RETURN ADDRESS *
|
||
|
* HI BYTE OF RETURN ADDRESS *
|
||
|
* FILL CHAR (:FILL) *
|
||
|
* BOTTOM BOUND (:BOTTOM) *
|
||
|
* TOP BOUND (:TOP) *
|
||
|
* RIGHT BOUND (:RIGHT) *
|
||
|
* LEFT BOUND (:LEFT) *
|
||
|
*- -*
|
||
|
* EXIT *
|
||
|
* *
|
||
|
* TOP OF STACK *
|
||
|
* *
|
||
|
* LOW BYTE OF RETURN ADDRESS *
|
||
|
* HI BYTE OF RETURN ADDRESS *
|
||
|
* *
|
||
|
* A = LOW BYTE OF ADDRESS *
|
||
|
* X = COUNTER DATA; TRASH *
|
||
|
* Y = COUNTER DATA; TRASH *
|
||
|
* STRING *
|
||
|
*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*
|
||
|
*
|
||
|
TFILLA
|
||
|
*
|
||
|
** SAVE RETURN ADDRESS
|
||
|
*
|
||
|
PLA
|
||
|
STA :RETADR
|
||
|
PLA
|
||
|
STA :RETADR+1
|
||
|
*
|
||
|
** LOAD PARAMETERS
|
||
|
*
|
||
|
PLA
|
||
|
STA :FILL
|
||
|
PLA
|
||
|
STA :BOTTOM
|
||
|
PLA
|
||
|
STA :TOP
|
||
|
PLA
|
||
|
STA :RIGHT
|
||
|
PLA
|
||
|
STA :LEFT
|
||
|
*
|
||
|
|
||
|
LDY :TOP ; LOAD STARTING Y
|
||
|
:LOOPY
|
||
|
STY CURSV
|
||
|
JSR VTAB ; SET VERTICAL
|
||
|
LDX :LEFT ; CURSOR POSITION
|
||
|
DEX
|
||
|
:LOOPX
|
||
|
INX
|
||
|
STX CURSH
|
||
|
JSR VTAB ; SET HORIZONTAL
|
||
|
LDA :FILL
|
||
|
JSR COUT1 ; PRINT FILL CHAR
|
||
|
CPX :RIGHT ; IF X < RIGHT MAX
|
||
|
BNE :LOOPX ; LOOP; ELSE, CONTINUE
|
||
|
* ; END X LOOP
|
||
|
INY
|
||
|
CPY :BOTTOM ; IF Y < BOTTOM MAX
|
||
|
BNE :LOOPY ; LOOP; ELSE, CONTINUE
|
||
|
*
|
||
|
:EXIT
|
||
|
*
|
||
|
** RESTORE RETURN ADDRESS
|
||
|
*
|
||
|
LDA :RETADR+1
|
||
|
PHA
|
||
|
LDA :RETADR
|
||
|
PHA
|
||
|
*
|
||
|
RTS
|
||
|
*
|
||
|
** DATA
|
||
|
*
|
||
|
:LEFT DS 1
|
||
|
:RIGHT DS 1
|
||
|
:BOTTOM DS 1
|
||
|
:TOP DS 1
|
||
|
:FILL DS 1
|
||
|
:RETADR DS 2
|