; ************************* ; * 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 #= 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