home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-06-01 | 6.3 KB | 282 lines | [04] ASCII Text (0x0000) |
- ; 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
-