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