ô > MIDItrp ô SOUND --> MIDI !ô Syntax: MIDIon (OFF|) (: 2mcode%=&FFFF0970:oldv=&AFE < ã P=0 ¸ 1 F P%=mcode% P [OPT P*3 Z .initX dLDA #1:LDY #0:LDX #&A8 nJSR &FFDA:LDA (&A8),Y xCMP #13:BEQ init4 ‚ € #&DF:CMP #—"O":BEQ MIDIoff Œ%JSR digit:ASL A:ASL A:ASL A:ASL A –TAX:JSR digit:STX &A8  #„A &A8:STA txreg+1:STA status+1 ª!STA statusI1+1:STA statusI2+1 ´INC txreg+1 ¾ .init4 È(LDA &20C:CMP #newwrd € 255:BNE init2 Ò+LDA &20D:CMP #newwrd 256:BEQ init_end Ü .init2 æLDA &20C:STA oldv ðLDA &20D:STA oldv+1 úLDA #newwrd € 255:STA &20C LDA #newwrd 256:STA &20D  .init_end LDA #0:STA channel:LDA #3 " .statusI1 ,STA &FCF0:LDA #17 6 .statusI2 @STA &FCF0:RTS J .MIDIoff T+LDA &20C:CMP #newwrd € 255:BNE initExit ^+LDA &20D:CMP #newwrd 256:BNE initExit h)LDA oldv:STA &20C:LDA oldv+1:STA &20D r .initExit |RTS † .digit LDA (&A8),Y:INY šCMP #—"9"+1:BCC digit2 ¤SBC #7:.digit2 ® € #15:RTS ¸:  .newwrd ÌCMP #7:BEQ new_sound Ö .do_old àJMP (oldv) ê.new_sound ôSTX &A8:STY &A9 þLDY #1:LDA (&A8),Y CMP #&F0:BCC new_sound2 JSR extend:.exit LDX &A8:LDY &A9:LDA #7:RTS &.new_sound2 0 € #&F0:CMP #&10:BEQ no_sound :DEY:LDA (&A8),Y:TAX D€ #15:BEQ do_old_sound N"LDA channel:„A #&80:JSR output XLDA last,X:JSR output bLDA #0:JSR output lLDY #2:LDA (&A8),Y vINY:„A (&A8),Y €BEQ no_sound ŠLDY #4:LDA (&A8),Y ”LSR A:LSR A:CLC:ADC #35 žSTA last,X:PHA ¨"LDA channel:„A #&90:JSR output ²PLA:JSR output ¼LDA #60:JSR output:\ VOL Æ .no_sound ÐLDX &A8:LDY &A9:LDA #7 ÚBIT ignore:BMI do_old äRTS î.do_old_sound ø%LDX &A8:LDY &A9:LDA #7:JMP (oldv)  .output  PHA:LDA #2:.loop  .status  BIT &FCF0:BNE go *BIT &FF:BPL loop:.go:PLA 4 .txreg >STA &FCF1:RTS H .extend RDEY:CMP #&FF:BEQ extend2 \LDA (&A8),Y:€ #&F0:STA temp fLDA (&A8),Y:CLC:ADC channel p€ #&0F:„A temp:JSR output zINY:INY:INY:INY:LDA temp „CMP #&F0:BCS extend_end ŽCMP #&C0:BCS extend_1 ˜!LDA (&A8),Y:€ #127:JSR output ¢DEY:DEY:.extend_1 ¬LDA (&A8),Y:€ #127 ¶JMP output À .extend2 Ê#LDA (&A8),Y:CMP #&FE:BEQ AllOff ÔCMP #&FD:BEQ things Þ.extend_end:RTS è.AllOff:LDX #127:.AllLoop ò"LDA channel:„A #&80:JSR output üTXA:JSR output LDA #0:JSR output DEX:BPL AllLoop:RTS  .things $LDY #4:LDA (&A8),Y:€ #1:TAX .LDY #6:LDA (&A8),Y 8STA channel,X:RTS B .init L.channel:EQUB 0 V.ignore:EQUB 0 `.temp:EQUB 0 j .last tEQUW 0:EQUW 0:EQUW 0 ~+]:ç(P%€&FFFF)>oldv ñ'"Move back a bit"' ˆP%=init:[OPT P*3 ’ JMP initX œ]í ¦Cñ"*SAVE MIDIon ";~mcode%;" ";~P%„&FFFF0000;" ";~init „&FFFF0000 °ç ¿(100)=" " Ö init ÿ