home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Set of Apple II Hard Drive Images
/
eric.hdv
/
SOURCE
/
DANCNOTE.SC4.txt
< prev
next >
Wrap
Text File
|
2020-08-13
|
7KB
|
288 lines
; DOUBLE HIRES ROUTINES - DRAW BOARD FOR DANCING NOTES
;
ZPTR EQU $EE
;
INITDHR STA $C050 ;TEXT OFF
STA $C057 ;HI RES ON
STA $C052 ;FULL SCREEN
STA $C00D ;80 COLUMNS ON
STA $C05E ;ANNUNCIATOR 3 ON
STA $C001 ;80 STORE ON - ALLOWS PAGE2 TO SWITCH MAIN/AUX
STA $C055 ;ACCESS AUX MEMORY
JSR CLEARSCR
STA $C054 ;ACCESS MAIN MEMORY
JSR CLEARSCR
JSR DRAWGRID
RTS
;
DONEDHR STA $C051 ;TEXT ON
STA $C056 ;HIRES OFF
STA $C00C ;80COL OFF
STA $C054 ;PAGE 1
STA $C05E ;TURN OFF AN3
RTS
;
CLEARSCR LDA #$20
STA ZPTR+1
LDA #$00
STA ZPTR
CLEARSC1 LDA #$00
LDY #$00
CLEARSC2 STA (ZPTR),Y
INY
BNE CLEARSC2
INC ZPTR+1
LDA ZPTR+1
CMP #$40
BCC CLEARSC1
RTS
;
DRAWGRID LDY #$00
JSR HORIZLN
LDY #177
JSR HORIZLN
JSR VERTLNS
JSR DRAWNUMS
;;; JSR CHARTEST
RTS
;
DRAWNUMS LDA #$00
STA NUMPTR
NUMLOOP LDA NUMPTR
TAX
LDA NUMDATA+1,X
TAY
LDA NUMDATA+2,X
PHA
LDA NUMDATA,X
TAX
PLA
JSR DRAWNUM
INC NUMPTR
INC NUMPTR
INC NUMPTR
LDA NUMPTR
CMP NUMCOUNT
BNE NUMLOOP
RTS
;
;CHARTEST LDA #$00
; STA CHRPTR
;CHRLOOP LDA CHRPTR
; TAX
; LDA UCSPOS+1,X
; TAY
; LDA UCSPOS+2,X
; PHA
; LDA UCSPOS,X
; TAX
; PLA
; JSR DRAWCHAR
; INC CHRPTR
; INC CHRPTR
; INC CHRPTR
; LDA CHRPTR
; CMP CHRCOUNT
; BNE CHRLOOP
; RTS
;
; DATA FOR ROW OF NUMBERS TO BE DRAWN ACROSS SCREEN
; EVERY 3 BYTES INDICATES XCOORD, YCOORD, AND CHARACTER
;
NUMPTR DFB 00
NUMCOUNT DFB 69
NUMDATA DFB 2,179,1,7,179,2,12,179,3,17,179,4,22,179,5
DFB 27,179,6,32,179,7,37,179,8,42,179,9
DFB 46,179,1,47,179,0,51,179,1,52,179,1
DFB 56,179,1,57,179,2,61,179,1,62,179,3
DFB 66,179,1,67,179,4,71,179,1,72,179,5
DFB 76,179,1,77,179,6
;
;CHRPTR DFB 00
;CHRCOUNT DFB 255
UCSPOS DFB 2,172,0,3,170,1,2,167,2,3,165,3
DFB 2,162,4,2,157,5,3,155,6,2,152,7
DFB 3,150,8,2,147,9,3,145,10,2,142,11
;
DFB 2,137,0,3,135,1,2,132,2,3,130,3
DFB 2,127,4,2,122,5,3,120,6,2,117,7
DFB 3,115,8,2,112,9,3,110,10,2,107,11
;
DFB 2,102,0,3,100,1,2,97,2,3,95,3
DFB 2,92,4,2,87,5,3,85,6,2,82,7
DFB 3,80,8,2,77,9,3,75,10,2,72,11
;
DFB 2,67,0,3,65,1,2,62,2,3,60,3
DFB 2,57,4,2,52,5,3,50,6,2,47,7
DFB 3,45,8,2,42,9,3,40,10,2,37,11
;
DFB 2,32,0,3,30,1,2,27,2,3,25,3
DFB 2,22,4,2,17,5,3,15,6,2,12,7
DFB 3,10,8,2,7,9,3,5,10,2,2,11
;
LCFPOS DFB 2,172,128,1,170,129,2,167,130,1,165,131
DFB 2,162,132,2,157,133,1,155,134,2,152,135
DFB 1,150,136,2,147,137,1,145,138,2,142,139
;
DFB 2,137,128,1,135,129,2,132,130,1,130,131
DFB 2,127,132,2,122,133,1,120,134,2,117,135
DFB 1,115,136,2,112,137,1,110,138,2,107,139
;
DFB 2,102,128,1,100,129,2,97,130,1,95,131
DFB 2,92,132,2,87,133,1,85,134,2,82,135
DFB 1,80,136,2,77,137,1,75,138,2,72,139
;
DFB 2,67,128,1,65,129,2,62,130,1,60,131
DFB 2,57,132,2,52,133,1,50,134,2,47,135
DFB 1,45,136,2,42,137,1,40,138,2,37,139
;
DFB 2,32,128,1,30,129,2,27,130,1,25,131
DFB 2,22,132,2,17,133,1,15,134,2,12,135
DFB 1,10,136,2,7,137,1,5,138,2,2,139
;
;
; HORIZLN - DRAWS HORIZ LINE ACROSS SCREEN. SET Y=VERTICAL COORDINATE
;
HORIZLN JSR SETY
STA $C055
JSR HORIZLN1
STA $C054
JSR HORIZLN1
RTS
HORIZLN1 LDA #$7F
LDY #39
HORIZLN2 STA (ZPTR),Y
DEY
BPL HORIZLN2
RTS
;
; VERTLNS - DRAW VERTICAL LINES FOR DANCING NOTE DISPLAY
;
VERTLNS LDY #176
STY VERTY
VYLOOP LDY VERTY
JSR SETY
LDX #79
JSR SETX
LDA #$40
LDY XOFFSET
STA (ZPTR),Y
LDX #75
VXLOOP JSR SETX
LDA #$01
LDY XOFFSET
STA (ZPTR),Y
DEX
DEX
DEX
DEX
DEX
BPL VXLOOP
DEC VERTY
LDA VERTY
BNE VYLOOP
RTS
;
VERTY DFB $00
;
; SETX - GIVEN X COORD OF A CHARACTER, SET APPROPRIATE MODE AND CALC OFFSET
;
SETX LDA DHRXMAP,X ;LOOK UP X COORDINATE TO GET OFFSET
STA $C054
BPL SETX1
STA $C055
SETX1 AND #$7F
STA XOFFSET
RTS
XOFFSET DFB $00
;
; SETY - GIVEN Y COORD, SET BASE ADDRESS FOR POKING BYTES ON THAT LINE
;
SETY LDA HGRLINEL,Y
STA ZPTR
LDA HGRLINEH,Y
STA ZPTR+1
RTS
;
; DRAWNUM - DRAWS NUMBER. X=HORIZ PSN 0-79 Y=VERT COORD A=NUMBER 0-9
;
DRAWNUM CMP #10
BCS DRAWNUMX
CPX #79
BCS DRAWNUMX
CPY #187
BCS DRAWNUMX
STA DNUMA
STX DNUMX
STY DNUMY
;
JSR SETX
;
LDA #$05
STA DHEIGHT
LDA DNUMA
ASL A
ASL A
CLC
ADC DNUMA
TAX
DNUMLOOP LDY DNUMY
JSR SETY
LDA NUMBER0,X
LDY XOFFSET
STA (ZPTR),Y
INX
INC DNUMY
DEC DHEIGHT
LDA DHEIGHT
BNE DNUMLOOP
DRAWNUMX RTS
DNUMA DFB $00
DNUMX DFB $00
DNUMY DFB $00
DHEIGHT DFB $00
;
; DRAWCHAR - X=HORIZ CHAR POSN (0-79) Y=VERT COORD
; A=CHARACTER: 0=c 1=C 2=d 3=D 4=e 5=f 6=F 7=g 8=G 9=a 10=A 11=b
; 12=c 13=C,etc, same for 24,36,48,etc.
; 128=C d D e E F g G a A b B
; 140=C 141=d,etc, same for 152,etc.
;DRAWCHAR CPX #79
; BCS DRAWCHRX
; CPY #188
; BCS DRAWCHRX
; STA DCHRA
; STX DCHRX
; STY DCHRY
; LDA DHRXMAP,X ;LOOK UP X COORDINATE TO GET OFFSET
; STA $C054
; BPL SETX1A
; STA $C055
;SETX1A AND #$7F
; STA XOFFSET
; LDA #$04
; STA CHEIGHT
; LDX DCHRA
; LDA NOTEMAP,X
; TAX
;DCHRLOOP LDY DCHRY
; LDA HGRLINEL,Y
; STA ZPTR
; LDA HGRLINEH,Y
; STA ZPTR+1
; LDA LETTERA,X
; LDY XOFFSET
; STA (ZPTR),Y
; INX
; INC DCHRY
; DEC CHEIGHT
; LDA CHEIGHT
; BNE DCHRLOOP
;DRAWCHRX RTS
DCHRA DFB $00
DCHRX DFB $00
DCHRY DFB $00
CHEIGHT DFB $00
;
CHN CHARSET.SRC