home *** CD-ROM | disk | FTP | other *** search
Text File | 2001-01-23 | 7.4 KB | 344 lines | [04] ASCII Text (0x0000) |
- ; VELGRAPH.SRC
- ;
- ORG $6000
- ;
- JSR INITDHR
- JSR START
- JMP DONEDHR
- ;
- DISPMODE DFB $01
- INBYTE DFB $00
- PHASE DFB $00
- LASTSTAT DFB $00
- XMITSTS DFB $00
- XMITBYT1 DFB $00
- XMITBYT2 DFB $00
- XMITBYT3 DFB $00
- DBYTES DFB $00
- MIDISLOT DFB $20
- ;
- GETINST EQU $00
- DATA1 EQU $01
- DATA2 EQU $02
- DATA3 EQU $03
- SYSX0 EQU $04
- DATA2B EQU $05
- ZPTR EQU $EE
- ;
- START LDA #$13
- LDX MIDISLOT
- STA $C088,X
- LDA #$11
- STA $C088,X
- WAITMIDI LDA $C000
- BMI ADIOS
- LDX MIDISLOT
- LDA $C088,X
- AND #$01
- BEQ WAITMIDI
- LDX MIDISLOT
- LDA $C089,X
- CMP #$F0
- BEQ SKIPSYSX
- BCS WAITMIDI
- SYSXRET STA INBYTE
- JSR PRCSBYTE
- LDA $C000
- BPL WAITMIDI
- ADIOS LDA $C010
- RTS
- ;
- SKIPSYSX LDX MIDISLOT
- LDA $C088,X
- AND #$01
- BEQ SKIPSYSX
- LDA $C089,X
- BPL SKIPSYSX
- BMI SYSXRET
- ;
- PRCSBYTE LDA PHASE
- PHINST CMP #GETINST
- BEQ PHINST0
- JMP PHDATA3
- PHINST0 LDA INBYTE
- BPL RUNNING
- ;
- STA LASTSTAT
- STA XMITSTS
- CMP #$E0
- BCS TWOBYTES
- CMP #$C0
- BCC TWOBYTES
- ;
- LDA #1
- STA DBYTES
- LDA #DATA1
- STA PHASE
- RTS
- ;
- TWOBYTES LDA #2
- STA DBYTES
- LDA #DATA2
- STA PHASE
- RTS
- ;
- RUNNING LDA LASTSTAT
- STA XMITSTS
- LDA INBYTE
- STA XMITBYT1
- LDA #$FF
- STA XMITBYT2
- LDA DBYTES
- CMP #1
- BEQ SENDMSG
- LDA #DATA3
- STA PHASE
- RTS
- ;
- PHDATA3 CMP #DATA3
- BNE PHDATA2
- LDA INBYTE
- STA XMITBYT2
- LDA #$FF
- STA XMITBYT3
- JMP SENDMSG
- ;
- PHDATA2 CMP #DATA2
- BNE PHDATA1
- LDA INBYTE
- STA XMITBYT1
- LDA #DATA2B
- STA PHASE
- RTS
- ;
- PHDATA1 CMP #DATA1
- BNE PHDATA2B
- LDA INBYTE
- STA XMITBYT1
- LDA #$FF
- STA XMITBYT2
- JMP SENDMSG
- ;
- PHDATA2B CMP #DATA2B
- BNE PHSYSX
- LDA INBYTE
- STA XMITBYT2
- LDA #$FF
- STA XMITBYT3
- JMP SENDMSG
- ;
- PHSYSX RTS
- ;
- SENDMSG LDA XMITSTS
- LDX XMITBYT1
- LDY XMITBYT2
- JSR MIDIGRPH
- SENDEXIT LDA #GETINST
- STA PHASE
- RTS
- ;
- ;-------------------------
- ; MIDIGRPH ROUTINE
- ; A=STATUS BYTE (9X OR 8X)
- ; X=NOTE
- ; Y=VELOCITY
- ;--------------------------
- ;
- MIDIGRPH CMP #$80
- BCC DRAWEXIT
- CMP #$90
- BCC DRAWNOFF
- CMP #$A0
- BCC DRAWNON
- CMP #$E0
- BCC DRAWEXIT
- CMP #$F0
- DRAWEXIT RTS
- ;
- DRAWNOFF LDY #$00
- DRAWNON AND #$0F
- ASL A
- STA DRAWCHNL
- STX DRAWNOTE
- STY DRAWVEL
- LDA DRAWNOTE
- CMP #24
- BCC DRAWEXIT
- CMP #104
- BCS DRAWEXIT
- ;
- LDA #128
- SEC
- SBC DRAWVEL
- STA VELCMPR
- ;
- LDA #$00
- STA AUXFLAG
- LDA #24
- SEC
- SBC DRAWNOTE
- STA NOTECMPR
- LSR A
- STA HORIZPOS
- BCC NOTAUX
- LDA #$01
- STA AUXFLAG
- ;
- NOTAUX LDA #0
- STA POKEBYTE
- LDY #0
- STY VERTPOS
- VERTLOOP LDY VERTPOS
- JSR SETY
- CPY VELCMPR
- BCC NOTYET
- LDA #$7F
- STA POKEBYTE
- NOTYET LDA AUXFLAG
- BNE POKEAUX
- STA $C054
- BEQ POKEIT
- POKEAUX LDA $C055
- ;
- POKEIT LDY HORIZPOS
- LDA POKEBYTE
- STA (ZPTR),Y
- ;
- LDY VERTPOS
- INY
- BCS DRWDONE
- STY VERTPOS
- BCC VERTLOOP
- ;
- DRWDONE RTS
- ;
- DRAWCHNL DFB $00
- DRAWNOTE DFB $00
- DRAWVEL DFB $00
- VELCMPR DFB $00
- NOTECMPR DFB $00
- POKEBYTE DFB $00
- VERTPOS DFB $00
- HORIZPOS DFB $00
- AUXFLAG DFB $00
- ;
- ;
- ; DOUBLE HIRES ROUTINES - DRAW BOARD FOR DANCING NOTES
- ;
- 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
- RTS
- ;
- ;
- ; 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
- ;
- ; 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
- ;
- ; HIGH RES VERTICAL COORDINATE ADDRESSES
- ;
- HGRLINEH DFB $20,$24,$28,$2C,$30,$34,$38,$3C
- DFB $20,$24,$28,$2C,$30,$34,$38,$3C
- DFB $21,$25,$29,$2D,$31,$35,$39,$3D
- DFB $21,$25,$29,$2D,$31,$35,$39,$3D
- DFB $22,$26,$2A,$2E,$32,$36,$3A,$3E
- DFB $22,$26,$2A,$2E,$32,$36,$3A,$3E
- DFB $23,$27,$2B,$2F,$33,$37,$3B,$3F
- DFB $23,$27,$2B,$2F,$33,$37,$3B,$3F
- DFB $20,$24,$28,$2C,$30,$34,$38,$3C
- DFB $20,$24,$28,$2C,$30,$34,$38,$3C
- DFB $21,$25,$29,$2D,$31,$35,$39,$3D
- DFB $21,$25,$29,$2D,$31,$35,$39,$3D
- DFB $22,$26,$2A,$2E,$32,$36,$3A,$3E
- DFB $22,$26,$2A,$2E,$32,$36,$3A,$3E
- DFB $23,$27,$2B,$2F,$33,$37,$3B,$3F
- DFB $23,$27,$2B,$2F,$33,$37,$3B,$3F
- DFB $20,$24,$28,$2C,$30,$34,$38,$3C
- DFB $20,$24,$28,$2C,$30,$34,$38,$3C
- DFB $21,$25,$29,$2D,$31,$35,$39,$3D
- DFB $21,$25,$29,$2D,$31,$35,$39,$3D
- DFB $22,$26,$2A,$2E,$32,$36,$3A,$3E
- DFB $22,$26,$2A,$2E,$32,$36,$3A,$3E
- DFB $23,$27,$2B,$2F,$33,$37,$3B,$3F
- DFB $23,$27,$2B,$2F,$33,$37,$3B,$3F
- HGRLINEL DFB $00,$00,$00,$00,$00,$00,$00,$00
- DFB $80,$80,$80,$80,$80,$80,$80,$80
- DFB $00,$00,$00,$00,$00,$00,$00,$00
- DFB $80,$80,$80,$80,$80,$80,$80,$80
- DFB $00,$00,$00,$00,$00,$00,$00,$00
- DFB $80,$80,$80,$80,$80,$80,$80,$80
- DFB $00,$00,$00,$00,$00,$00,$00,$00
- DFB $80,$80,$80,$80,$80,$80,$80,$80
- DFB $28,$28,$28,$28,$28,$28,$28,$28
- DFB $A8,$A8,$A8,$A8,$A8,$A8,$A8,$A8
- DFB $28,$28,$28,$28,$28,$28,$28,$28
- DFB $A8,$A8,$A8,$A8,$A8,$A8,$A8,$A8
- DFB $28,$28,$28,$28,$28,$28,$28,$28
- DFB $A8,$A8,$A8,$A8,$A8,$A8,$A8,$A8
- DFB $28,$28,$28,$28,$28,$28,$28,$28
- DFB $A8,$A8,$A8,$A8,$A8,$A8,$A8,$A8
- DFB $50,$50,$50,$50,$50,$50,$50,$50
- DFB $D0,$D0,$D0,$D0,$D0,$D0,$D0,$D0
- DFB $50,$50,$50,$50,$50,$50,$50,$50
- DFB $D0,$D0,$D0,$D0,$D0,$D0,$D0,$D0
- DFB $50,$50,$50,$50,$50,$50,$50,$50
- DFB $D0,$D0,$D0,$D0,$D0,$D0,$D0,$D0
- DFB $50,$50,$50,$50,$50,$50,$50,$50
- DFB $D0,$D0,$D0,$D0,$D0,$D0,$D0,$D0
- ;
-