home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Set of Apple II Hard Drive Images
/
pdoseric.hdv
/
SOURCE
/
BSMW.SC1.txt
< prev
next >
Wrap
Text File
|
2020-08-13
|
4KB
|
109 lines
; 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