home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Set of Apple II Hard Drive Images
/
eric.hdv
/
SOURCE
/
DHRTEST.SRC.txt
< prev
next >
Wrap
Text File
|
2020-08-13
|
6KB
|
282 lines
; DOUBLE HIRES TEST - DRAW BOARD FOR DANCNING NOTES
;
ORG $7000
;
ZPTR EQU $06
;
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
WAIT LDA $C000
BPL WAIT
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 0,172,0,1,170,1,0,167,2,1,165,3
DFB 0,162,4,0,157,5,1,155,6,0,152,7
DFB 1,150,8,0,147,9,1,145,10,0,142,11
;
DFB 0,137,0,1,135,1,0,132,2,1,130,3
DFB 0,127,4,0,122,5,1,120,6,0,117,7
DFB 1,115,8,0,112,9,1,110,10,0,107,11
;
DFB 0,102,0,1,100,1,0,97,2,1,95,3
DFB 0,92,4,0,87,5,1,85,6,0,82,7
DFB 1,80,8,0,77,9,1,75,10,0,72,11
;
DFB 0,67,0,1,65,1,0,62,2,1,60,3
DFB 0,57,4,0,52,5,1,50,6,0,47,7
DFB 1,45,8,0,42,9,1,40,10,0,37,11
;
DFB 0,32,0,1,30,1,0,27,2,1,25,3
DFB 0,22,4,0,17,5,1,15,6,0,12,7
DFB 1,10,8,0,7,9,1,5,10,0,2,11
;
LCFPOS DFB 6,172,128,5,170,129,6,167,130,5,165,131
DFB 6,162,132,6,157,133,5,155,134,6,152,135
DFB 5,150,136,6,147,137,5,145,138,6,142,139
;
DFB 6,137,128,5,135,129,6,132,130,5,130,131
DFB 6,127,132,6,122,133,5,120,134,6,117,135
DFB 5,115,136,6,112,137,5,110,138,6,107,139
;
DFB 6,102,128,5,100,129,6,97,130,5,95,131
DFB 6,92,132,6,87,133,5,85,134,6,82,135
DFB 5,80,136,6,77,137,5,75,138,6,72,139
;
DFB 6,67,128,5,65,129,6,62,130,5,60,131
DFB 6,57,132,6,52,133,5,50,134,6,47,135
DFB 5,45,136,6,42,137,5,40,138,6,37,139
;
DFB 6,32,128,5,30,129,6,27,130,5,25,131
DFB 6,22,132,6,17,133,5,15,134,6,12,135
DFB 5,10,136,6,7,137,5,5,138,6,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
JSR SETX
LDA #$04
STA CHEIGHT
LDX DCHRA
LDA NOTEMAP,X
TAX
DCHRLOOP LDY DCHRY
JSR SETY
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