home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-04-11 | 7.1 KB | 246 lines | [04] ASCII Text (0x0000) |
- ; *************************
- ; * DISPLAY.SRC0
- ; *************************
- ;
- ;
- ; INTRUPT VARIABLES
- CODEFLAG EQU 22 ;OFFSET IN PSEUDOZP
- CODEHOOK EQU 23
- MIDIBYTE EQU 25
- BASL EQU $0B ;USER VECTOR
- ;
- ZPVECT EQU $06 ;USED FOR ADDRESSING SCREEN
- ;
- ;
- ORG $6A00
- ORIGIN JMP SETUP
- ;
- INBYTE DFB $00
- STS DFB $91
- SCRNLO DFB $00
- SCRNHI DFB $00
- BYTESAVE DFB $00
- ;
- ; PROGRAM CHANGE DATA STORED HERE (START ADRS+8)
- ;
- PROG1 DFB $00,$00,$00,$00,$00,$00,$00,$00
- DFB $00,$00,$00,$00,$00,$00,$00,$00
- PROG2 DFB $00,$00,$00,$00,$00,$00,$00,$00
- DFB $00,$00,$00,$00,$00,$00,$00,$00
- VOLUME DFB $40,$40,$40,$40,$40,$40,$40,$40
- DFB $40,$40,$40,$40,$40,$40,$40,$40
- BRILL DFB $02,$02,$02,$02,$02,$02,$02,$02
- DFB $02,$02,$02,$02,$02,$02,$02,$02
- ;
- MULTI DFB $01
- REVERB DFB $03
- EFFECT DFB $04
- CHANNEL DFB $00
- VOLFLAG DFB $00
- TRANSP DFB $00
- MARKER DFB $5D
- KARAOKE DFB $00 ;00=OFF 01=IGNORE NOTE-ON'S WITH VEL=$41
- ;
- SETUP LDA #>ENTRY ;HOOK TO INTERRUPT HANDLER
- LDY #CODEHOOK
- STA (BASL),Y
- LDA #<ENTRY
- LDY #CODEHOOK+1
- STA (BASL),Y
- LDA #$01
- LDY #CODEFLAG
- STA (BASL),Y
- ;
- LDX #$00 ;POPULATE SCRNSAV TABLE
- GETSCRN LDA ADRSLO,X
- STA ZPVECT
- LDA ADRSHI,X
- STA ZPVECT+1
- LDY #$00
- LDA (ZPVECT),Y
- STA SCRNSAV,X
- INX
- BPL GETSCRN
- CLC
- RTS
- ;
- ;
- ENTRY LDY #MIDIBYTE
- LDA (BASL),Y
- STA INBYTE
- LDA STS
- BEQ CHK90
- ;
- LDA INBYTE
- BPL STS91
- ;
- CHK90 LDA INBYTE
- AND #$F0
- CMP #$90
- BNE CHK80
- LDA INBYTE
- AND #$0F
- STA CHANNEL
- CMP #$09
- BCS DRUMPART
- LDA #$91
- STA STS
- CLC
- RTS
- DRUMPART LDA #$99
- STA STS
- SEC
- RTS
- CHK80 CMP #$80
- BNE CHKC0
- LDA INBYTE
- AND #$0F
- STA CHANNEL
- LDA #$81
- STA STS
- CLC
- RTS
- CHKC0 CMP #$C0
- BNE CHKB0
- LDA INBYTE
- AND #$0F
- STA CHANNEL
- LDA #$C1
- STA STS
- CLC
- RTS
- CHKB0 CMP #$B0
- BNE INVAL
- LDA INBYTE
- AND #$0F
- STA CHANNEL
- LDA #$B1
- STA STS
- CLC
- RTS
- ;
- INVAL LDA #$00
- STA STS
- CLC
- RTS
- ;
- STS91 LDA STS
- CMP #$91
- BNE STS92
- ;
- JSR TRANSPOS
- ;
- LDX INBYTE
- LDA ADRSLO,X
- STA SCRNLO
- LDA ADRSHI,X
- STA SCRNHI
- STX BYTESAVE
- LDA #$92
- STA STS
- CLC
- RTS
- ;
- STS92 LDA STS
- CMP #$92
- BNE STS81
- ;
- LDA #$91
- STA STS
- LDX INBYTE
- BEQ NOTEOFF
- ;
- LDA KARAOKE
- BEQ NOKARA
- LDA INBYTE
- CMP #$41
- BNE NOKARA
- LDA #$00 ;CHG VEL TO 00
- STA INBYTE
- LDY #MIDIBYTE
- STA (BASL),Y ;CHG INPUT BYTE
- NOKARA LDA SCRNLO
- STA ZPVECT
- LDA SCRNHI
- STA ZPVECT+1
- ;
- ; DETERMINE WHETHER MARKER OR CHANNEL # WILL BE DISPLAYED
- LDA CHANNEL
- BEQ USEMARK ; USE MARKER FOR CHANNEL 0
- CMP #$0A
- BCS USEALPHA ; IF CHNL >= 10 USE ALPHA A,B,C,D,E,F
- CLC
- ADC #$B0 ; ELSE USE NUMBER 1-9
- JMP POKEIT
- USEALPHA CLC
- ADC #$B7 ; ALPHA- B7+A=C1
- JMP POKEIT
- USEMARK LDA MARKER
- JMP POKEIT
- ;
- NOTEOFF LDA SCRNLO
- STA ZPVECT
- LDA SCRNHI
- STA ZPVECT+1
- LDX BYTESAVE
- LDA SCRNSAV,X
- JMP POKEIT
- ;
- STS81 LDA STS
- CMP #$81
- BNE STS82
- ;
- JSR TRANSPOS
- ;
- LDX INBYTE
- LDA ADRSLO,X
- STA SCRNLO
- LDA ADRSHI,X
- STA SCRNHI
- STX BYTESAVE
- LDA #$82
- STA STS
- CLC
- RTS
- ;
- STS82 LDA STS
- CMP #$82
- BNE STSC1
- ;
- LDA #$81
- STA STS
- ;
- LDA SCRNLO
- STA ZPVECT
- LDA SCRNHI
- STA ZPVECT+1
- LDX BYTESAVE
- LDA SCRNSAV,X
- JMP POKEIT
- ;
- STSC1 LDA STS
- CMP #$C1
- BNE STSB1
- ;
- ; MOVE PROGRAM 1 TO PROGRAM 2, THEN GET NEW PROGRAM 2
- ;
- LDX CHANNEL
- LDA PROG1,X
- STA PROG2,X
- LDA INBYTE
- STA PROG1,X
- CLC
- RTS
- ;
- STSB1 LDA STS
- CMP #$B1
- BNE STSB2
- ;
- LDA INBYTE
- CMP #$07
- BNE NOT07
- LDA #$1
- STA VOLFLAG
- ;
- CHN DISPLAY.SRC0A
-