home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-09-25 | 3.6 KB | 109 lines | [04] ASCII Text (0x0000) |
- ; BSMW.SC1
- ;
- ;DURATION TABLE: TRANSLATES STATUS BYTE TO MIDI DURATION
- ;MULTIPLY MIDI DURATION BY 10 TO GET REAL DURATION.
- DURATION DFB $00,$00,$03,$06,$0C,$18,$30,$60
- DFB $00,$00,$03,$00,$0C,$18,$30,$60 ; 00=FORTE
- DFB $00,$00,$03,$06,$0C,$18,$30,$60
- DFB $00,$00,$03,$06,$0C,$18,$30,$60
- DFB $00,$00,$05,$09,$12,$24,$48,$90
- DFB $00,$00,$05,$09,$12,$24,$48,$90
- DFB $00,$00,$05,$09,$12,$24,$48,$90
- DFB $00,$00,$05,$09,$12,$24,$48,$90
- DFB $00,$00,$03,$06,$0C,$18,$30,$60
- DFB $00,$00,$03,$06,$0C,$18,$30,$60
- DFB $00,$00,$03,$06,$0C,$18,$30,$60
- DFB $00,$00,$03,$06,$0C,$18,$30,$60
- DFB $00,$00,$05,$09,$12,$24,$48,$90
- DFB $00,$00,$05,$09,$12,$24,$48,$90
- DFB $00,$00,$05,$09,$12,$24,$48,$90
- DFB $00,$00,$05,$09,$12,$24,$48,$90
- ;
- DFB $00,$00,$02,$04,$08,$10,$20,$40
- DFB $00,$00,$02,$04,$08,$10,$20,$40
- DFB $00,$00,$02,$04,$08,$10,$20,$40
- DFB $00,$00,$02,$04,$08,$10,$20,$40
- DFB $00,$00,$03,$06,$0C,$18,$30,$60
- DFB $00,$00,$03,$06,$0C,$18,$30,$60
- DFB $00,$00,$03,$06,$0C,$18,$30,$60
- DFB $00,$00,$03,$06,$0C,$18,$30,$60
- DFB $00,$00,$02,$04,$08,$10,$20,$40
- DFB $00,$00,$02,$04,$08,$10,$20,$40
- DFB $00,$00,$02,$04,$08,$10,$20,$40
- DFB $00,$00,$02,$04,$08,$10,$20,$40
- DFB $00,$00,$03,$06,$0C,$18,$30,$60
- DFB $00,$00,$03,$06,$0C,$18,$30,$60
- DFB $00,$00,$03,$06,$0C,$18,$30,$60
- DFB $00,$00,$03,$06,$0C,$18,$30,$60
- ;
- SUBTR DFB $00 ;SUBTRACTION REGISTER
- CURRNOTE DFB $00,00,00,00,00,00
- ;
- PRCSNOTE LDA STS
- CMP #$09 ;DON'T PROCESS DYNAMICS
- BEQ OUTTA
- CMP #$0B
- BEQ OUTTA
- LDA #$00
- STA SUBTR
- LDA DTA
- BPL DONTSUB
- LDA #$0C ;OCTAVE UP
- STA SUBTR
- DONTSUB LDA DTA
- AND #$1F ;ISOLATE NOTE
- TAX ;INTO X
- LDA DTA
- AND #$60 ;GET ACCID
- BEQ NOACC
- LDA CMAJOR,X
- STA ACCID,X
- LDA DTA
- AND #$60
- CMP #$20 ;IF NATURAL, EXIT
- BEQ NOACC
- CMP #$30 ;IF FLAT, INC ONLY
- BEQ INCONLY
- DEC ACCID,X ;SHARP: -2,+1 = -1
- DEC ACCID,X
- INCONLY INC ACCID,X
- ;
- NOACC LDA ACCID,X
- SEC
- SBC SUBTR
- LDX XSAVE
- STA CURRNOTE,X
- LDA STS
- AND #$10 ;REST?
- BEQ REST
- JSR NOTEON
- REST JSR NOTEOFF
- OUTTA JMP GOBACK
- ;
- NOTEON LDX XSAVE
- TXA
- ORA #$90
- JSR PRINTIT
- LDA CURRNOTE,X
- JSR PRINTIT
- LDA #$40
- JSR PRINTIT
- RTS
- ;
- NOTEOFF LDA #$80 ;PRINT DUR
- JSR PRINTIT
- LDA DUR
- JSR PRINTIT
- LDY XSAVE ;PRINT 90 X 0
- TYA
- ORA #$90
- JSR PRINTIT
- LDA CURRNOTE,Y
- JSR PRINTIT
- LDA #$00
- JSR PRINTIT
- JMP GOBACK
- ;
- PRINTIT JSR $FDDA
- RTS
-