PrintShopCompanion-Apple-II/PSC Source Disk 3 - Calenda.../S_UCAL5.txt

161 lines
2.6 KiB
Plaintext

;
; S:UCAL5
;
; Credit line stuff that didn't fit
; in ICAL. CRBLAK/CRDRAW
;
; INITCAL:move code to homes
;
;-----------
;
; Routine to erase current line
;
CRBLAK LDY CRLINE
LDA TEXTBUFF
BNE >0
STA CRLINE
TAY
JSR >0
LDY #1
;
^0 LDA CRYTBL,Y
STA >1+2
JSR PRINT
^1 BYT RTOSBLAK,CRXB,00
BYT CRXMAXB,7,0
LDY #TEXTBUFF
LDA /TEXTBUFF
STY TMP2
STA TMP3
RTS
;---
;
; Draw
;
CRDRAW LDY CRLINE
JSR CRDRAW2
LDY CRLINE
BNE >1
;
LDA TEXTBUFF,X
BEQ CRRTS
INC CRLINE
BNE CRDRAW
;
^1 LDX CRPOS,Y
LDA TEXTBUFF,X
BNE CRRTS
DEC CRLINE
BEQ CRDRAW
;---
;
; Given Y=0 or 1, draw given line
;
CRDRAW2 STY CRLINE
LDA CRYTBL,Y
STA >2+3
LDX CRPOS,Y
STX >3+1
LDA #0
DEX
^0 INX
LDY TEXTBUFF,X
BEQ >1
CLC
ADC UFONTW-$20,Y
ADC #2
CMP #CRXMAX+1
BLT <0
;
^1 LDA TEXTBUFF,X
PHA
LDA #0
STA TEXTBUFF,X
TXA
PHA
;
JSR PRINT
^2 .DA #PRLOC,CRX,#00
^3 .DA #PRSTR,TEXTBUFF
BYT NOCR,0
;
PLA
TAX
PLA
STA TEXTBUFF,X
;
LDY CRLINE
BEQ >4
LDA #0
STA TEXTBUFF,X
CRRTS RTS
;
^4 STX CRPOS+1
RTS
;
CRYTBL BYT CRY1+2
BYT CRY1+10
CRPOS BYT 0
BYT 0
;-----------
;
; Initialize all the external
; subroutines, move them to their
; homes.
;
SRCLO EPZ $3A
SRCHI EPZ $3B
DSTLO EPZ $3C
DSTHI EPZ $3D
LENLO EPZ $3E
LENHI EPZ $3F
;
INITCAL LDY #EXTERNAL
LDA /EXTERNAL
STY SRCLO
STA SRCHI
LDY #0
;
^0 JSR MOVEGET
STA DSTLO
JSR MOVEGET
STA DSTHI
ORA DSTLO
BEQ MOVERTS
JSR MOVEGET
TAX
JSR MOVEGET
STA LENHI
;
^1 JSR MOVEGET
STA (DSTLO),Y
INC DSTLO
BNE >2
INC DSTHI
^2 TXA
BNE >3
DEC LENHI
^3 DEX
BNE <1
TXA
ORA LENHI
BNE <1
BEQ <0
;
; Get a byte from program data
;
MOVEGET LDA (SRCLO),Y
INC SRCLO
BNE MOVERTS
INC SRCHI
MOVERTS RTS
;-----------
;
;
EXTERNAL:
;
;
USR "UCAL",ORG
;
ICL "S:COMMON"