Min gräns går vid 16-bitars mikrocontrollers verkar det som. Jag började kolla i S-50 (som har 8096, gissningsvis samma med W-30) en gång av en anledning jag inte minns, men tröttnade fort. Samma med Nordlead (inte 8096, men där sitter det någon 68000-baserad MCU som kontrollprocessor, vid sidan av 56000-DSP:erna). S-10 har något 8051-derivat, liksom Juno-2:an. I D-50 sitter det en obskyr NEC-CPU (µPD78312), också en 8-bitare, men som jag minns det var väldigt besvärligt att hitta ett datablad med opkodlista till, eller en disassembler.
Hänger väl ihop med att jag var inbiten Z80-maskinkodhackare på sin tid.
Det är ju en del jobb att göra några större funktionsändringar, men att leta upp var all notes off skickas är i praktiken relativt lätt. Speciellt om det görs i ren kod; i 8051 så är det i praktiken bara ackumulatorn som man laddar direkt, så man får leta efter en MOV A, #7Bh någonstans i koden. I Juno-2 finns ett enda sånt ställe i EPROMmet, som min disassembler betecknar L0380:
Kod:
L0380:
2B8C 74B0 MOV A, #0B0h ; MIDI CC
2B8E 456B ORL A, 6Bh ; or with MIDI ch
2B90 7151 ACALL L0172 ; transmit
2B92 747B MOV A, #7Bh ; 123 = All Notes Off
2B94 7151 ACALL L0172 ; transmit
2B96 E4 CLR A ; 0 (second data bytes in message)
2B97 7151 ACALL L0172 ; transmit
2B99 22 RET ; done
Det kluriga är dock att L0380 anropas från två olika ställen, så just nu försöker jag fundera ut om ett av de anropen bör vara kvar, det kan t ex vara något läge där man byter mod på synten och man snabbt vill ha tyst på alla toner som man skickar ut all-notes-off, och det kan få vara kvar, det är bara "normalläget" när man släpper alla tangenter vid vanligt spelande som jag vill disabla.