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

  1. ; BSMW.SC1
  2. ;
  3. ;DURATION TABLE: TRANSLATES STATUS BYTE TO MIDI DURATION
  4. ;MULTIPLY MIDI DURATION BY 10 TO GET REAL DURATION.
  5. DURATION DFB       $00,$00,$03,$06,$0C,$18,$30,$60
  6.          DFB       $00,$00,$03,$00,$0C,$18,$30,$60 ; 00=FORTE
  7.          DFB       $00,$00,$03,$06,$0C,$18,$30,$60
  8.          DFB       $00,$00,$03,$06,$0C,$18,$30,$60
  9.          DFB       $00,$00,$05,$09,$12,$24,$48,$90
  10.          DFB       $00,$00,$05,$09,$12,$24,$48,$90
  11.          DFB       $00,$00,$05,$09,$12,$24,$48,$90
  12.          DFB       $00,$00,$05,$09,$12,$24,$48,$90
  13.          DFB       $00,$00,$03,$06,$0C,$18,$30,$60
  14.          DFB       $00,$00,$03,$06,$0C,$18,$30,$60
  15.          DFB       $00,$00,$03,$06,$0C,$18,$30,$60
  16.          DFB       $00,$00,$03,$06,$0C,$18,$30,$60 
  17.          DFB       $00,$00,$05,$09,$12,$24,$48,$90
  18.          DFB       $00,$00,$05,$09,$12,$24,$48,$90
  19.          DFB       $00,$00,$05,$09,$12,$24,$48,$90
  20.          DFB       $00,$00,$05,$09,$12,$24,$48,$90
  21. ;
  22.          DFB       $00,$00,$02,$04,$08,$10,$20,$40
  23.          DFB       $00,$00,$02,$04,$08,$10,$20,$40
  24.          DFB       $00,$00,$02,$04,$08,$10,$20,$40
  25.          DFB       $00,$00,$02,$04,$08,$10,$20,$40
  26.          DFB       $00,$00,$03,$06,$0C,$18,$30,$60
  27.          DFB       $00,$00,$03,$06,$0C,$18,$30,$60
  28.          DFB       $00,$00,$03,$06,$0C,$18,$30,$60
  29.          DFB       $00,$00,$03,$06,$0C,$18,$30,$60            
  30.          DFB       $00,$00,$02,$04,$08,$10,$20,$40
  31.          DFB       $00,$00,$02,$04,$08,$10,$20,$40
  32.          DFB       $00,$00,$02,$04,$08,$10,$20,$40
  33.          DFB       $00,$00,$02,$04,$08,$10,$20,$40
  34.          DFB       $00,$00,$03,$06,$0C,$18,$30,$60
  35.          DFB       $00,$00,$03,$06,$0C,$18,$30,$60
  36.          DFB       $00,$00,$03,$06,$0C,$18,$30,$60
  37.          DFB       $00,$00,$03,$06,$0C,$18,$30,$60            
  38. ;
  39. SUBTR    DFB       $00      ;SUBTRACTION REGISTER
  40. CURRNOTE DFB       $00,00,00,00,00,00
  41. ;
  42. PRCSNOTE LDA       STS
  43.          CMP       #$09      ;DON'T PROCESS DYNAMICS
  44.          BEQ       OUTTA
  45.          CMP       #$0B
  46.          BEQ       OUTTA
  47.          LDA       #$00
  48.          STA       SUBTR
  49.          LDA       DTA
  50.          BPL       DONTSUB
  51.          LDA       #$0C      ;OCTAVE UP
  52.          STA       SUBTR
  53. DONTSUB  LDA       DTA
  54.          AND       #$1F      ;ISOLATE NOTE
  55.          TAX                 ;INTO X
  56.          LDA       DTA
  57.          AND       #$60      ;GET ACCID
  58.          BEQ       NOACC
  59.          LDA       CMAJOR,X
  60.          STA       ACCID,X
  61.          LDA       DTA
  62.          AND       #$60
  63.          CMP       #$20      ;IF NATURAL, EXIT
  64.          BEQ       NOACC
  65.          CMP       #$30      ;IF FLAT, INC ONLY
  66.          BEQ       INCONLY
  67.          DEC       ACCID,X   ;SHARP: -2,+1 = -1
  68.          DEC       ACCID,X
  69. INCONLY  INC       ACCID,X
  70. ;
  71. NOACC    LDA       ACCID,X
  72.          SEC
  73.          SBC       SUBTR
  74.          LDX       XSAVE
  75.          STA       CURRNOTE,X
  76.          LDA       STS
  77.          AND       #$10      ;REST?
  78.          BEQ       REST
  79.          JSR       NOTEON
  80. REST     JSR       NOTEOFF
  81. OUTTA    JMP       GOBACK
  82. ;
  83. NOTEON   LDX       XSAVE
  84.          TXA
  85.          ORA       #$90
  86.          JSR       PRINTIT
  87.          LDA       CURRNOTE,X
  88.          JSR       PRINTIT
  89.          LDA       #$40
  90.          JSR       PRINTIT
  91.          RTS
  92. ;        
  93. NOTEOFF  LDA       #$80      ;PRINT DUR      
  94.          JSR       PRINTIT
  95.          LDA       DUR
  96.          JSR       PRINTIT
  97.          LDY       XSAVE     ;PRINT 90 X 0
  98.          TYA
  99.          ORA       #$90
  100.          JSR       PRINTIT
  101.          LDA       CURRNOTE,Y
  102.          JSR       PRINTIT
  103.          LDA       #$00
  104.          JSR       PRINTIT
  105.          JMP       GOBACK
  106. ;
  107. PRINTIT  JSR       $FDDA
  108.          RTS
  109.