;DRUM GLOVE ; ;INDEX FINGER = PDL 2 SNARE ;MIDDLE FINGER = PDL 3 TOMTOM ;RING FINGER = PDL 0 CLOSED HIHAT ;PINKY = PDL 1 OPEN HIHAT ;THUMB = PB0 BASS ; READ4PDL EQU $6F00 PB0DATA EQU $6F03 PB1DATA EQU $6F04 PB2DATA EQU $6F05 GC0DATA EQU $6F06 GC1DATA EQU $6F07 GC2DATA EQU $6F08 GC3DATA EQU $6F09 ; ORG $6000 JMP INIT ; PB0CHNL DFB $99 PB0NOTE DFB 36 ;BASS PB0VEL DFB $40 PB1CHNL DFB $99 PB1NOTE DFB 49 ;CRASH CYMBAL PB1VEL DFB $40 ; GC0CHNL DFB $99 GC0NOTE DFB 42 ;CLOSED HIHAT GC0VEL DFB $40 GC1CHNL DFB $99 GC1NOTE DFB 46 ;OPEN HIHAT GC1VEL DFB $40 GC2CHNL DFB $99 GC2NOTE DFB 38 ;SNARE GC2VEL DFB $40 GC3CHNL DFB $99 GC3NOTE DFB 47 ;TOM-TOM GC3VEL DFB $40 ; CURRPB0 DFB $00 CURRPB1 DFB $00 CURRGC0 DFB $00 CURRGC1 DFB $00 CURRGC2 DFB $00 CURRGC3 DFB $00 PREVPB0 DFB $00 PREVPB1 DFB $00 PREVGC0 DFB $00 PREVGC1 DFB $00 PREVGC2 DFB $00 PREVGC3 DFB $00 ; INIT LDA #$13 STA $C0A8 LDA #$11 STA $C0A8 LOOP JSR READ4PDL ;READ 4 PADDLES AND 3 BUTTONS LDA PB0DATA STA CURRPB0 LDA PB1DATA STA CURRPB1 LDA GC0DATA STA CURRGC0 LDA GC1DATA STA CURRGC1 LDA GC2DATA STA CURRGC2 LDA GC3DATA STA CURRGC3 ; LDA CURRPB0 CMP PREVPB0 BEQ CHKPB1 JMP PB0CHG CHKPB1 LDA CURRPB1 CMP PREVPB1 BEQ CHKGC0 JMP PB1CHG CHKGC0 LDA CURRGC0 CMP PREVGC0 BEQ CHKGC1 JMP GC0CHG CHKGC1 LDA CURRGC1 CMP PREVGC1 BEQ CHKGC2 JMP GC1CHG CHKGC2 LDA CURRGC2 CMP PREVGC2 BEQ CHKGC3 JMP GC2CHG CHKGC3 LDA CURRGC3 CMP PREVGC3 BEQ GOBACK JMP GC3CHG ; GOBACK LDA CURRPB0 STA PREVPB0 LDA CURRPB1 STA PREVPB1 LDA CURRGC0 STA PREVGC0 LDA CURRGC1 STA PREVGC1 LDA CURRGC2 STA PREVGC2 LDA CURRGC3 STA PREVGC3 LDA $C000 BMI DONE JMP LOOP DONE LDA $C010 RTS ; PB0CHG LDA CURRPB0 BNE PB0DOWN ; LDA PB0CHNL JSR MIDIXMIT LDA PB0NOTE JSR MIDIXMIT LDA #$00 JSR MIDIXMIT JMP CHKPB1 ; PB0DOWN LDA PB0CHNL JSR MIDIXMIT LDA PB0NOTE JSR MIDIXMIT LDA PB0VEL JSR MIDIXMIT JMP CHKPB1 ; PB1CHG LDA CURRPB1 BNE PB1DOWN ; LDA PB1CHNL JSR MIDIXMIT LDA PB1NOTE JSR MIDIXMIT LDA #$00 JSR MIDIXMIT JMP CHKGC0 ; PB1DOWN LDA PB1CHNL JSR MIDIXMIT LDA PB1NOTE JSR MIDIXMIT LDA PB1VEL JSR MIDIXMIT JMP CHKGC0 ; GC0CHG LDA CURRGC0 BPL GC0DOWN ; LDA GC0CHNL JSR MIDIXMIT LDA GC0NOTE JSR MIDIXMIT LDA #$00 JSR MIDIXMIT JMP CHKGC1 ; GC0DOWN LDA GC0CHNL JSR MIDIXMIT LDA GC0NOTE JSR MIDIXMIT LDA GC0VEL JSR MIDIXMIT JMP CHKGC1 ; GC1CHG LDA CURRGC1 BPL GC1DOWN ; LDA GC1CHNL JSR MIDIXMIT LDA GC1NOTE JSR MIDIXMIT LDA #$00 JSR MIDIXMIT JMP CHKGC2 ; GC1DOWN LDA GC1CHNL JSR MIDIXMIT LDA GC1NOTE JSR MIDIXMIT LDA GC1VEL JSR MIDIXMIT JMP CHKGC2 ; GC2CHG LDA CURRGC2 BPL GC2DOWN ; LDA GC2CHNL JSR MIDIXMIT LDA GC2NOTE JSR MIDIXMIT LDA #$00 JSR MIDIXMIT JMP CHKGC3 ; GC2DOWN LDA GC2CHNL JSR MIDIXMIT LDA GC2NOTE JSR MIDIXMIT LDA GC2VEL JSR MIDIXMIT JMP CHKGC3 ; GC3CHG LDA CURRGC3 BPL GC3DOWN ; LDA GC3CHNL JSR MIDIXMIT LDA GC3NOTE JSR MIDIXMIT LDA #$00 JSR MIDIXMIT JMP GOBACK ; GC3DOWN LDA GC3CHNL JSR MIDIXMIT LDA GC3NOTE JSR MIDIXMIT LDA GC3VEL JSR MIDIXMIT JMP GOBACK ; MIDIXMIT STA $C0A9 WAITTDRE LDA $C0A8 AND #$02 BEQ WAITTDRE RTS ;