8000: 00 00 00 ... 8003: JSR &848E 8006: JMP &AB3B 8009: STAA &80 800B: CPX #&7F36 800E: BCS &8037 8010: LDAA #&F1 8012: TST &7F39 8015: BEQ &801A 8017: JSR &9511 801A: LDAB #&7F 801C: TST &00,X 801E: BEQ &805D 8020: TIM #&04,&9D 8023: BNE &805D 8025: JSR &CBD7 8028: LDAA #&B0 802A: JSR &CBDD 802D: LDAA &80 802F: JSR &DEB7 8032: TBA 8033: JSR &DEB7 8036: RTS 8037: LDAA #&F9 8039: TST &7F30 803C: BEQ &8041 803E: JSR &9511 8041: LDAB #&7F 8043: TST &00,X 8045: BEQ &805D 8047: TIM #&04,&9D 804A: BNE &805D 804C: JSR &CBD7 804F: LDAA #&B0 8051: JSR &CBE4 8054: LDAA &80 8056: JSR &DEB7 8059: TBA 805A: JSR &DEB7 805D: RTS 805E: STAA &80 8060: CPX #&7F36 8063: BCS &8075 8065: LDAA #&F1 8067: TST &7F39 806A: BEQ &8072 806C: AIM #&EF,&A4 806F: JSR &9505 8072: CLRB 8073: BRA &801C 8075: LDAA #&F9 8077: TST &7F30 807A: BEQ &8082 807C: AIM #&EF,&A4 807F: JSR &9505 8082: CLRB 8083: BRA &8043 8085: LDAA #&F4 8087: JSR &DEB7 808A: LDAA #&B3 808C: JSR &DEB7 808F: LDAA &CB 8091: SUBA #&0A 8093: BCC &8096 8095: CLRA 8096: STAA &D7 8098: LSRA 8099: STAA &80 809B: JSR &DEB7 809E: TIM #&04,&9D 80A1: BNE &80D4 80A3: JSR &CBD7 80A6: JSR &CDD0 80A9: CMPA #&01 80AB: BEQ &80B1 80AD: BHI &80D5 80AF: BSR &80D5 80B1: LDAA #&D0 80B3: JSR &CBE4 80B6: LDAA &80 80B8: JSR &DEB7 80BB: JSR &E073 80BE: LDAA &7F34 80C1: BEQ &80D4 80C3: JSR &CBD7 80C6: LDAA #&B0 80C8: JSR &CBE4 80CB: LDAA #&40 80CD: JSR &DEB7 80D0: CLRA 80D1: JSR &DEB7 80D4: RTS 80D5: LDAA #&D0 80D7: JSR &CBDD 80DA: LDAA &80 80DC: JSR &DEB7 80DF: JSR &E073 80E2: LDAA &7F3D 80E5: BEQ &80F8 80E7: JSR &CBD7 80EA: LDAA #&B0 80EC: JSR &CBDD 80EF: LDAA #&40 80F1: JSR &DEB7 80F4: CLRA 80F5: JSR &DEB7 80F8: RTS 80F9: LDAB #&BB 80FB: LDAA &7F58 80FE: BEQ &8108 8100: CMPA #&02 8102: BEQ &810E 8104: BLT &8108 8106: BRA &80BE 8108: LDAA #&F9 810A: BSR &816F 810C: BRA &80BE 810E: LDAA #&F4 8110: BSR &816F 8112: BRA &80BE 8114: LDAB #&BB 8116: LDAA &7F58 8119: BEQ &8123 811B: CMPA #&02 811D: BHI &8129 811F: BLT &8123 8121: BRA &80E2 8123: LDAA #&F1 8125: BSR &815D 8127: BRA &80E2 8129: LDAA #&F4 812B: BSR &815D 812D: BRA &80E2 812F: AIM #&DF,&9A 8132: LDAB #&BB 8134: LDAA &7F58 8137: BEQ &813F 8139: CMPA #&02 813B: BHI &8151 813D: BEQ &814A 813F: LDAA #&F1 8141: BSR &8158 8143: LDAA #&F9 8145: BSR &816A 8147: JMP &8085 814A: LDAA #&F4 814C: BSR &816A 814E: JMP &8085 8151: LDAA #&F4 8153: BSR &8158 8155: JMP &8085 8158: TST &7F6A 815B: BEQ &8166 815D: TST &7F39 8160: BEQ &8166 8162: JSR &9505 8165: RTS 8166: JSR &DEB7 8169: RTS 816A: TST &7F61 816D: BEQ &8166 816F: TST &7F30 8172: BEQ &8166 8174: JSR &9505 8177: RTS 8178: OIM #&20,&9A 817B: LDAB #&BB 817D: LDAA &7F58 8180: BEQ &8188 8182: CMPA #&02 8184: BHI &8198 8186: BEQ &8192 8188: LDAA #&F1 818A: BSR &81DA 818C: LDAA #&F9 818E: BSR &81E8 8190: BRA &819C 8192: LDAA #&F4 8194: BSR &81E8 8196: BRA &819C 8198: LDAA #&F4 819A: BSR &81DA 819C: JSR &E076 819F: JSR &CDD0 81A2: CMPA #&01 81A4: BEQ &81AA 81A6: BHI &81C2 81A8: BSR &81C2 81AA: TST &7F34 81AD: BEQ &81C1 81AF: JSR &CBD7 81B2: LDAA #&B0 81B4: JSR &CBE4 81B7: LDAA #&40 81B9: JSR &DEB7 81BC: LDAA #&7F 81BE: JSR &DEB7 81C1: RTS 81C2: LDAA &7F3D 81C5: BEQ &81D9 81C7: JSR &CBD7 81CA: LDAA #&B0 81CC: JSR &CBDD 81CF: LDAA #&40 81D1: JSR &DEB7 81D4: LDAA #&7F 81D6: JSR &DEB7 81D9: RTS 81DA: TST &7F6A 81DD: BEQ &81C1 81DF: TST &7F39 81E2: BEQ &81D9 81E4: JSR &9511 81E7: RTS 81E8: TST &7F61 81EB: BEQ &81D9 81ED: TST &7F30 81F0: BEQ &81F5 81F2: JSR &9511 81F5: RTS 81F6: LDAB #&BB 81F8: LDAA &7F58 81FB: BEQ &8205 81FD: CMPA #&02 81FF: BEQ &820B 8201: BLT &8205 8203: BRA &81AA 8205: LDAA #&F9 8207: BSR &81ED 8209: BRA &81AA 820B: LDAA #&F4 820D: BSR &81ED 820F: BRA &81AA 8211: LDAB #&BB 8213: LDAA &7F58 8216: BEQ &8220 8218: CMPA #&02 821A: BHI &8226 821C: BLT &8220 821E: BEQ &81C2 8220: LDAA #&F1 8222: BSR &81DF 8224: BRA &81C2 8226: LDAA #&F4 8228: BSR &81DF 822A: BRA &81C2 822C: CMPA #&E0 822E: BEQ &8235 8230: CMPA #&E1 8232: BEQ &8235 8234: RTS 8235: LDAA &7E98 8238: CMPA #&02 823A: BNE &8242 823C: LDAA &7F54 823F: JMP &A4DA 8242: CMPA #&03 8244: BNE &8234 8246: LDAA &7F55 8249: JMP &A4DA ***** set split point 824C: LDAA #&59 824E: SBA A = note number + 6 824F: CMPA &7F54 compare with upper split point 8252: BNE &825B 8254: TAB 8255: DECB B = note number + 5 8256: CMPB &7F55 compare with lower split point 8259: BEQ &8234 if equal RTS 825B: STAA &80 store new split point in &80 825D: JSR &BCCC 8260: JSR &BD58 8263: LDAA &80 8265: STAA &7F54 8268: DECA 8269: STAA &7F55 826C: OIM #&04,&99 826F: JSR &C7E7 8272: LDAA &8E 8274: CMPA #&02 8276: BNE &822C 8278: JMP &AD96 **************************************** read key matrix 827B: LDX #&173F 827E: STX &90 8280: LDX #&3FFF 8283: STX &92 8285: LDX #&1747 8288: STX &94 828A: LDX #&174F 828D: STX &96 828F: CLRB for scan n = 0 to 7 8290: LDX &90 8292: INX 8293: STX &90 8295: LDAA &00,X get last status (&1740) + scan n 8297: STAA &80 8299: LDX &92 829B: INX 829C: STX &92 829E: LDAA &00,X get matrix + scan n 82A0: STAA &81 82A2: COMA 82A3: ANDA &80 82A5: LDX &94 82A7: INX 82A8: STX &94 82AA: STAA &00,X &1748 + scan n = new keys pressed 82AC: BEQ &82AF no keys pressed ? 82AE: INCB inc B if new keys pressed 82AF: LDAA &80 82B1: COMA 82B2: ANDA &81 82B4: LDX &96 82B6: INX 82B7: STX &96 82B9: STAA &00,X &1750 + scan n = new keys released 82BB: BEQ &82BE no keys released ? 82BD: INCB inc B if new keys released 82BE: LDX &90 82C0: LDAA &81 82C2: STAA &00,X last status + scan n = matrix + scan n 82C4: CPX #&1747 82C7: BNE &8290 key matrix now read, B = new presses + new releases 82C9: STAB &7EFF 82CC: LDAA &1745 82CF: BITA #&40 82D1: BNE &82ED br if 'SPLIT' not pressed get split point 82D3: INC &7EFA 82D6: LDAA #&1E 82D8: SUBA &7EFA 82DB: BCC &82F0 skip if 7EFA > 1E 82DD: LDX #&15FF ptr to note table ? 82E0: LDAB #&53 B = 83 82E2: INX 82E3: LDAA &00,X get note table entry 82E5: BEQ &82EA br if note not pressed 82E7: JMP &824C jump if key pressed, B = 83 - note number 82EA: DECB 82EB: BNE &82E2 loop for 82 keys 82ED: CLR &7EFA ? ... 82F0: LDAA &174F get key row 7 new presses 82F3: BITA #&02 82F5: BEQ &8300 br if not 'Bend Polarity' 82F7: LDAB #&BF 82F9: LDAA #&F4 82FB: STAA &B0 voice board ptr = both 82FD: JSR &8796 tx F4, BF, 0 8300: LDAA &174F get key row 7 new presses 8303: BITA #&01 8305: BEQ &830A br if not 'Lfo Trig' 8307: OIM #&80,&99 830A: ROLA 830B: BCC &8383 br if not 'Pedal Switch' ********** process pedal switch press... 830D: LDAB &7F00 get assigned Pedal function 8310: ANDB #&07 JSR by B... 8312: LDX #&831E 8315: ASLB 8316: ABX 8317: LDD &00,X 8319: XGDX 831A: JSR &00,X 831C: BRA &8383 sub addresses for JSR 831E: 835A Patch Shift 8320: 832E Porta On 8322: 8003 Chase On/Off 8324: 81F6 Upper Hold on 8326: 8211 Lower Hold on 8328: 8B50 Both Hold on 832A: 8381 n/a 832C: 8382 n/a ********** porta on 832E: JSR &E065 turn porta on 8331: LDAA #&F4 8333: LDAB #&B5 8335: JSR &9511 tx F4, B5, 7F 8338: LDAB #&7F send midi porta on 833A: JSR &CBD7 tx F5 833D: LDAA #&B0 833F: JSR &CBDD tx Bn (n = lower midi ch) 8342: LDAA #&41 8344: JSR &DEB7 tx 41 8347: TBA 8348: JSR &DEB7 tx 7F 834B: LDAA #&B0 834D: JSR &CBE4 tx Bn (n = upper midi ch) 8350: LDAA #&41 8352: JSR &DEB7 tx 41 8355: TBA 8356: JSR &DEB7 tx 7F 8359: RTS ********** patch shift 835A: CLRA 835B: STAA &8E display function = patch name 835D: LDAA #&20 835F: TIM #&01,&A7 8362: BNE &836D 8364: LDX #&1380 8367: STAA &17,X 8369: STAA &1B,X 836B: STAA &1C,X clear patch number 836D: LDAA &AA get current abs patch 836F: INCA 8370: ANDA #&3F wrap at max patch 8372: TAB 8373: LSRA 8374: LSRA 8375: LSRA 8376: STAA &7E87 7E87 = abs patch div 8 (bank) 8379: ANDB #&07 837B: STAB &7E88 7E88 = abs patch mod 8 (number) 837E: JMP &9FEF recall patch 8381: RTS 8382: RTS ********** 8383: LDAA &174E get row 6 new keys 8386: BITA #&40 8388: BEQ &838F br if not 'Hold Switch' 838A: JSR &8178 838D: BRA &838F 838F: LDAA &1757 get row 7 new releases 8392: BITA #&02 8394: BEQ &839F br if not 'Bend Polarity' 8396: LDAB #&BF 8398: LDAA #&F4 839A: STAA &B0 voice board ptr = both 839C: JSR &8789 tx &F4, &BF, &7F 839F: LDAA &1757 get row 7 new releases 83A2: BITA #&01 83A4: BEQ &83AC br if not 'LFO Trig' 83A6: AIM #&7F,&99 reset &99 bit 7 83A9: OIM #&01,&9A set &9A bit 1 83AC: ROLA 83AD: BCC &83DE br if not 'Pedal Switch' ********** process pedal switch release... 83AF: LDAB &7F00 get assigned Pedal function 83B2: ANDB #&07 JSR by B... 83B4: LDX #&83C0 83B7: ASLB 83B8: ABX 83B9: LDD &00,X 83BB: XGDX 83BC: JSR &00,X 83BE: BRA &83DE sub addresses for JSR 83C0: 83EA ignore if Patch Shift 83C2: 83D0 Porta off 83C4: 83EA ignore if Chase 83C6: 80F9 Upper Hold off 83C8: 8114 Lower Hold off 83CA: 8B4D Both Hold off 83CC: 83EA n/a 83CE: 83EA n/a ********** 83D0: JSR &E062 83D3: LDAA #&F4 83D5: LDAB #&B5 83D7: JSR &9505 83DA: CLRB 83DB: JMP &833A 83DE: LDAA &1756 get key row 6 releases 83E1: BITA #&40 test for 'HOLD' released 83E3: BEQ &83EB 83E5: JSR &812F 83E8: BRA &83EB 83EA: RTS 83EB: LDAB &1757 get key row 7 releases 83EE: RORB 83EF: RORB 83F0: RORB 83F1: RORB 83F2: ROLA 83F3: RORB 83F4: ROLA 83F5: RORB 83F6: ROLA 83F7: RORB 83F8: ROLA move bend range bits into A 83F9: ANDA #&0F 83FB: BEQ &8442 no bend range sw released ? 83FD: STAA &81 83FF: LDAA &1747 get key row 7 status 8402: RORA 8403: RORA 8404: RORA 8405: RORA 8406: ROLB 8407: RORA 8408: ROLB 8409: RORA 840A: ROLB 840B: RORA 840C: ROLB move bend range bits into B 840D: ANDB #&0F 840F: LDAA &81 ? 8411: LDX #&8432 8414: ABX 8415: LDAA &00,X get bend scale for range position 8417: TAB 8418: STAA &7F57 store bend range 841B: JSR &A37F 841E: LDAA &8E 8420: ANDA #&F0 8422: CMPA #&E0 8424: BNE &8442 8426: LDAA &7E98 8429: CMPA #&05 842B: BNE &8442 842D: JSR &A4FC 8430: BRA &8442 8432: 00 00 00 00 00 00 00 60 .......` 843A: 00 00 00 40 00 20 00 00 ...@. .. 8442: TIM #&01,&A7 8445: BEQ &844A 8447: JMP &9343 844A: TST &7EFF 844D: BNE &8450 844F: RTS 8450: LDAA &8E 8452: ROLA 8453: BCS &846A 8455: ROLA 8456: BCS &8461 8458: ROLA 8459: BCS &845E 845B: JMP &847F 845E: JMP &8677 8461: ROLA 8462: BCS &8467 8464: JMP &9803 8467: JMP &9B39 846A: ROLA 846B: BCS &8473 846D: ROLA 846E: BCS &847C 8470: JMP &9074 8473: ROLA 8474: BCS &8479 8476: JMP &9D7F 8479: JMP &87A3 847C: JMP &9C82 847F: CLRB B = 0 8480: LDAA &174B get key row 3 new presses 8483: RORA 8484: BCS &84AB br if 'CHASE FUNC' 8486: INCB B = 1 8487: RORA 8488: BCS &84AB br if 'CHASE TIME' 848A: INCB B = 2 848B: RORA 848C: BCC &84B2 br if 'CHASE ON/OFF' not pressed 848E: LDAA &7F72 get Chase Play mode 8491: BNE &849D br if Chase on 8493: OIM #&01,&A1 8496: JSR &8C98 8499: CLRA 849A: STAA &8E disp func = patch name 849C: RTS 849D: CLRA 849E: STAA &7F72 reset Chase Play 84A1: OIM #&01,&A1 84A4: OIM #&04,&99 84A7: JSR &C7E7 84AA: RTS 84AB: STAB &7E92 store 0 for 'CHASE FUNC', 1 for 'CHASE TIME' 84AE: CLRA 84AF: JMP &A9EE 84B2: RORA 84B3: RORA 84B4: BCS &84BC br if 'SEQ REC' pressed 84B6: RORA 84B7: BCC &84BF br if 'SEQ ON/OFF' not pressed 84B9: JMP &93CE 84BC: JMP &92F6 84BF: LDAA &174E get row 6 new presses 84C2: BITA #&08 84C4: BEQ &84C9 br if not 'ENTER' 84C6: JMP &AB3B 84C9: LDAA &8E get function display 84CB: CMPA #&02 84CD: BLT &84D9 br if FD = patch or tone 84CF: LDAB &174C get row 4 new presses 84D2: BITB #&10 84D4: BEQ &84D9 br if not 'FUNC DISPLAY' 84D6: JMP &AD10 84D9: JSR &872B check patch keys 84DC: CMPB #&08 84DE: BGE &84E6 br if not patch key pressed 84E0: STAB &7E87 store patch bank 84E3: JMP &9FEF load patch 84E6: LDAA &1749 get row 1 new presses 84E9: BEQ &84FF br if no keys 84EB: LDAB &1741 84EE: COMB 84EF: CBA 84F0: BNE &84FF br if row status changed 84F2: JSR &8737 B = number of key pressed or 8 84F5: CMPB #&08 84F7: BGE &84FF br if no key pressed 84F9: STAB &7E88 store patch number 84FC: JMP &9FEF load patch 84FF: LDAA &8E get function display 8501: CMPA #&01 8503: BHI &856B br if not patch or tone 8505: JSR &86E4 check for CH FUNC, CH TIME, and key pad 8508: CMPA #&09 850A: BHI &8512 br if no key pressed 850C: STAA &7E92 store key value from &86E4 850F: JMP &AC81 8512: LDAA &7F58 get key mode 8515: CMPA #&01 8517: BGT &856B br if not dual or split 8519: LDAA &174D get row 5 new presses 851C: BITA #&08 851E: BEQ &854A br if not 'LOWER' 8520: LDX #&1700 8523: STX &7F11 tone edit buffer ptr = lower 8526: LDAA &8E get disp func 8528: TAB 8529: ANDB #&F0 852B: TSTB test for upper nybble bits 852C: BNE &8549 br if any set 852E: RORA 852F: BCS &8537 br if func disp b1 set (tone names) 8531: LDAB #&1A lower tone point on 8533: LDAA #&1F upper tone point off 8535: BRA &853B 8537: LDAB #&06 lower tone point on 8539: LDAA #&14 upper tone point off 853B: JSR &8652 turn on point at char in B 853E: TAB 853F: LDX #&13C0 8542: ABX 8543: LDAA &00,X 8545: ANDA #&7F 8547: STAA &00,X turn off point at char in A 8549: RTS ... 854A: BITA #&10 854C: BEQ &856B br if not 'UPPER' 854E: LDX #&7F80 8551: STX &7F11 tone edit buffer ptr = upper 8554: LDAA &8E get disp func 8556: TAB 8557: ANDB #&F0 8559: TSTB test for upper nybble bits 855A: BNE &8549 br if any set 855C: RORA 855D: BCS &8565 br if func disp b1 set (tone names) 855F: LDAA #&1A lower tone point off 8561: LDAB #&1F upper tone point on 8563: BRA &853B 8565: LDAA #&06 lower tone point off 8567: LDAB #&14 upper tone point on 8569: BRA &853B ********** 856B: LDAA &174C get row 4 new presses 856E: RORA 856F: BCS &857A br if 'PATCH' edit 8571: RORA 8572: BCS &857D br if 'TONE' edit 8574: RORA 8575: BCC &8580 br if not 'MIDI' edit 8577: JMP &A6BA 857A: JMP &A406 857D: JMP &A641 8580: LDAB &8E 8582: LDAA &174C get row 4 new presses 8585: ROLA 8586: BCC &858B br if not 'C2' Assign 8588: JMP &A843 858B: ROLA 858C: BCC &8591 br if not 'C1' Assign 858E: JMP &A864 8591: ROLA 8592: BCC &8597 br if not 'PEDAL' Assign 8594: JMP &A7CC 8597: CLRB 8598: LDAA &174D get row 5 new presses 859B: ROLA 859C: BCC &85A4 br if not 'WHOLE' key mode 859E: OIM #&01,&A1 85A1: JMP &A918 85A4: ROLA 85A5: BCC &85AD br if not 'SPLIT' key mode 85A7: OIM #&01,&A1 85AA: JMP &A90E 85AD: ROLA 85AE: BCC &85B6 br if not 'DUAL' key mode 85B0: OIM #&01,&A1 85B3: JMP &A905 85B6: LDAA &174E get row 6 new presses 85B9: RORA 85BA: BCC &85C0 br if not 'MASTER TUNE' 85BC: CLRA 85BD: JMP &AA07 85C0: RORA 85C1: BCC &85C7 br if not 'WRITE' 85C3: CLRA 85C4: JMP &AA26 85C7: LDAA &174C get row 4 new presses 85CA: BITA #&10 85CC: BEQ &85D5 br if not 'FUNC DISPLAY' 85CE: LDAA &8E 85D0: BEQ &85E6 85D2: JMP &AD10 85D5: LDAA &174D get row 5 new presses 85D8: BITA #&04 85DA: BEQ &85E5 br if not 'NAME' 85DC: JSR &AFDA 85DF: OIM #&01,&A2 set patch edit flag 85E2: JMP &AAEF 85E5: RTS ********** set function display to tone names 85E6: LDAA #&01 85E8: STAA &8E function display = 1 (tone names) 85EA: JSR &AFDA clear flash/point 85ED: LDX #&1384 X to char 4 of display 85F0: LDAA &7F66 get lower tone number 85F3: JSR &865D write tone number at X 85F6: LDX #&16FF 85F9: STX &90 ptr to lower tone edit buffer 85FB: LDX #&1387 85FE: STX &92 ptr to display char 7 8600: LDAA #&0A 8602: STAA &80 8604: JSR &A54C write lower tone name to display 8607: LDX #&1392 X to char 18 of display 860A: LDAA &7F5D get upper tone number 860D: JSR &865D write tone number at X 8610: LDX #&7F7F 8613: STX &90 ptr to upper tone edit buffer 8615: LDX #&1395 8618: STX &92 ptr to display char 21 861A: LDAA #&0A 861C: STAA &80 861E: JSR &A54C write upper tone name to display 8621: CLRA 8622: LDX #&13C0 ptr to display flash/point mem 8625: STAA &1A,X clear display points 8627: STAA &1F,X 8629: TIM #&02,&A1 lower tone modified ? 862C: BEQ &8630 862E: LDAA #&40 set tone number to flash 8630: STAA &05,X 8632: STAA &06,X 8634: STAA &07,X 8636: CLRA 8637: TIM #&04,&A1 upper tone modifed ? 863A: BEQ &863E 863C: LDAA #&40 set tone number to flash 863E: STAA &13,X 8640: STAA &14,X 8642: STAA &15,X 8644: LDX &7F11 get current edit tone 8647: CPX #&1700 is it lower tone ? 864A: BNE &8650 864C: LDAB #&06 current edit tone point at 6 - lower 864E: BRA &8652 8650: LDAB #&14 current edit tone point at 14 - upper ...turn on point at char in B 8652: LDX #&13C0 8655: ABX 8656: LDAB &00,X 8658: ORAB #&80 865A: STAB &00,X turn on point for current edit tone 865C: RTS ********** store number in A in display mem at X 0 - 99 displayed as 1 - 100 865D: INCA 865E: LDAB #&20 8660: STAB &00,X 8662: STAB &03,X 8664: CMPA #&64 8666: BNE &866D 8668: CLRA 8669: STAA &03,X 866B: LDAA #&0A 866D: LDAB #&0A 866F: JSR &CDAA 8672: STAA &01,X 8674: STAB &02,X 8676: RTS ********** 8677: JSR &8682 867A: CMPA #&7F 867C: BEQ &8681 867E: JMP &A38E 8681: RTS 8682: JSR &86E4 8685: CMPA #&7F 8687: BEQ &86AA 8689: CMPA #&FF 868B: BEQ &86AD 868D: LDX #&1380 8690: LDAB &7E9A 8693: ABX 8694: STAA &00,X 8696: LDX &7E93 8699: STAA &00,X 869B: INX 869C: INCB 869D: CPX #&7E98 86A0: BNE &86A4 86A2: DEX 86A3: DECB 86A4: STX &7E93 86A7: STAB &7E9A 86AA: LDAA #&7F 86AC: RTS 86AD: LDX #&7E95 86B0: LDAA &02,X 86B2: CMPA #&20 86B4: BNE &86C7 86B6: LDAA &01,X 86B8: CMPA #&20 86BA: BEQ &86D8 86BC: LDAA &00,X 86BE: LDAB #&0A 86C0: MUL 86C1: LDAA &01,X 86C3: ABA 86C4: JMP &86DA 86C7: LDAA &00,X 86C9: CMPA #&01 86CB: BEQ &86E0 86CD: LDAA &01,X 86CF: LDAB #&0A 86D1: MUL 86D2: LDAA &02,X 86D4: ABA 86D5: JMP &86DA 86D8: LDAA &00,X 86DA: DECA 86DB: STAA &7E9C 86DE: CLRA 86DF: RTS 86E0: LDAA #&64 86E2: BRA &86DA ********** check for key presses on key pad 86E4: LDAA #&09 A = 9 86E6: LDAB &174B get new keys row 3 86E9: CMPB #&80 86EB: BEQ &872A br if 'PAD 9' 86ED: DECA A = 8 86EE: CMPB #&40 86F0: BEQ &872A br if 'PAD 8' 86F2: LDAB &174A get new keys row 2 86F5: BEQ &871F br if none pressed 86F7: DECA A = 7 86F8: CMPB #&80 86FA: BEQ &872A br if 'PAD 7' 86FC: DECA A = 6 86FD: CMPB #&40 86FF: BEQ &872A br if 'PAD 6' 8701: DECA A = 5 8702: CMPB #&20 8704: BEQ &872A br if 'PAD 5' 8706: DECA A = 4 8707: CMPB #&10 8709: BEQ &872A br if 'PAD 4' 870B: DECA A = 3 870C: CMPB #&08 870E: BEQ &872A br if 'PAD 3' 8710: DECA A = 2 8711: CMPB #&04 8713: BEQ &872A br if 'PAD 2' 8715: DECA A = 1 8716: CMPB #&02 8718: BEQ &872A br if 'PAD 1' 871A: DECA A = 0 871B: CMPB #&01 871D: BEQ &872A br if 'PAD 0' 871F: CLRA A = 0 8720: DECA A = #&FF 8721: LDAB &174E 8724: BITB #&08 8726: BNE &872A br if 'ENTER' 8728: LDAA #&7F 872A: RTS ********** check for new patch keys return B = 0 - 7 for A - H, or 8 for no press 872B: LDAA &1748 get row 0 new presses 872E: BEQ &875F br if no patch key 8730: LDAB &1740 8733: COMB 8734: CBA 8735: BNE &875F br if patch key status changed jsr to here with row data in A, B => key number 8737: CLRB B = 0 8738: CMPA #&01 873A: BEQ &8761 br if 'PATCH A' 873C: INCB B = 1 873D: CMPA #&02 873F: BEQ &8761 br if 'PATCH B' 8741: INCB B = 2 8742: CMPA #&04 8744: BEQ &8761 br if 'PATCH C' 8746: INCB B = 3 8747: CMPA #&08 8749: BEQ &8761 br if 'PATCH D' 874B: INCB B = 4 874C: CMPA #&10 874E: BEQ &8761 br if 'PATCH E' 8750: INCB B = 5 8751: CMPA #&20 8753: BEQ &8761 br if 'PATCH F' 8755: INCB B = 6 8756: CMPA #&40 8758: BEQ &8761 br if 'PATCH G' 875A: INCB B = 7 875B: CMPA #&80 875D: BEQ &8761 br if 'PATCH H' 875F: LDAB #&08 B = 8 8761: RTS ********** rotary encoder read 8762: LDAA &174E get matrix row 6 new on 8765: BITA #&20 test rot enc clock 8767: BEQ &8786 br if no clock 8769: LDAA &7F17 rot enc clock count 876C: CMPA &7F0A rot enc clock divider 876F: BLT &8782 8771: CLRA 8772: STAA &7F17 reset clock count to 0 8775: LDAA &1746 get row 6 on 8778: BITA #&80 test rot enc dir 877A: BEQ &877F br if ACW 877C: CLRA 877D: INCA 877E: RTS return A = 1 - CW movement 877F: CLRA 8780: DECA 8781: RTS return A = &FF - ACW movement 8782: INCA 8783: STAA &7F17 inc clock count 8786: LDAA #&7F &7F = no movement 8788: RTS return A = &7F ********** tx byte at &B0, B, #&7F 8789: JSR &CBD1 878C: TBA 878D: JSR &DEB7 8790: LDAA #&7F 8792: JSR &DEB7 8795: RTS ********** tx byte at &B0, B, #&00 8796: JSR &CBD1 8799: TBA 879A: JSR &DEB7 879D: LDAA #&00 879F: JSR &DEB7 87A2: RTS ********** 87A3: ROLA 87A4: BCC &87AF 87A6: ROLA 87A7: BCS &87AC 87A9: JMP &902C 87AC: JMP &9068 87AF: BRA &87CB 87B1: LDAB &8E 87B3: LDAA &174C 87B6: BITA #&20 87B8: BNE &87C5 87BA: BITA #&40 87BC: BNE &87C8 87BE: BITA #&80 87C0: BEQ &87CB 87C2: JMP &A843 87C5: JMP &A7CC 87C8: JMP &A864 87CB: LDAA &174D 87CE: BITA #&20 87D0: BEQ &87D8 87D2: OIM #&01,&A1 87D5: JMP &A905 87D8: BITA #&40 87DA: BEQ &87E2 87DC: OIM #&01,&A1 87DF: JMP &A90E 87E2: BITA #&80 87E4: BEQ &87EC 87E6: OIM #&01,&A1 87E9: JMP &A918 87EC: LDAA &174E 87EF: RORA 87F0: RORA 87F1: BCC &87F8 87F3: LDAA &8E 87F5: JMP &AA26 87F8: LDAB &8E 87FA: LDAA &174D 87FD: RORA 87FE: BCC &880A 8800: CMPB #&E1 8802: BEQ &8807 8804: JSR &A406 8807: JMP &AAE3 880A: RORA 880B: BCC &8817 880D: CMPB #&E0 880F: BEQ &8814 8811: JSR &A406 8814: JMP &AAE9 8817: RORA 8818: BCC &881D 881A: JMP &AAEF 881D: LDAA &174C 8820: RORA 8821: BCS &882C 8823: RORA 8824: BCS &882F 8826: RORA 8827: BCC &8832 8829: JMP &A6BA 882C: JMP &AB3B 882F: JMP &A641 8832: LDAA &8E 8834: CMPA #&E2 8836: BNE &883B 8838: JMP &8F85 883B: JSR &86E4 883E: CMPA #&7E 8840: BHI &885B 8842: TSTA 8843: BEQ &885B 8845: STAA &7E95 8848: LDX #&1380 884B: STAA &05,X 884D: LDAA #&20 884F: STAA &06,X 8851: LDAA &8E 8853: STAA &7E9E 8856: LDAA #&F0 8858: STAA &8E 885A: RTS 885B: LDAA &8E 885D: RORA 885E: BCC &8863 8860: JMP &88EF 8863: LDAA #&05 8865: STAA &7F0A set rot enc clock divider 8868: JSR &8762 886B: CMPA #&7F 886D: BEQ &889A 886F: LDAB &7E98 8872: CMPA #&01 8874: BNE &8885 8876: CMPB #&28 8878: BEQ &889A 887A: INCB 887B: CMPB #&13 887D: BEQ &887A 887F: CMPB #&1C 8881: BEQ &887A 8883: BRA &8891 8885: TSTB 8886: BEQ &889A 8888: DECB 8889: CMPB #&13 888B: BEQ &8888 888D: CMPB #&1C 888F: BEQ &8888 8891: STAB &7E98 8894: JSR &A406 8897: JMP &AAE3 889A: RTS 889B: LDAB &174E 889E: BITB #&20 88A0: BEQ &88D7 88A2: INC &00FE 88A5: LDAB &1746 88A8: BITB #&80 88AA: BEQ &88C2 88AC: TIM #&10,&9D 88AF: BNE &88B6 88B1: OIM #&10,&9D 88B4: BRA &88D7 88B6: LDAB &FE 88B8: LSRB 88B9: LSRB 88BA: LSRB 88BB: INCB 88BC: ABA 88BD: BPL &88C1 88BF: LDAA #&7F 88C1: RTS 88C2: TIM #&10,&9D 88C5: BEQ &88CC 88C7: AIM #&EF,&9D 88CA: BRA &88D7 88CC: LDAB &FE 88CE: LSRB 88CF: LSRB 88D0: LSRB 88D1: COMB 88D2: ABA 88D3: BPL &88C1 88D5: CLRA 88D6: RTS 88D7: LDAA #&F0 88D9: CLR &00FE 88DC: RTS 88DD: LDX #&7F52 88E0: ABX 88E1: LDAA &00,X 88E3: STAA &80 88E5: BSR &889B 88E7: TSTA 88E8: BMI &88EE 88EA: STAA &00,X 88EC: BRA &8907 88EE: RTS 88EF: LDAB &7E98 88F2: LDX #&890D 88F5: ABX 88F6: LDAA &00,X 88F8: BEQ &88DD 88FA: STAA &7F0A set rot enc clock divider 88FD: JSR &8762 8900: CMPA #&7F 8902: BEQ &88EE 8904: STAA &7E99 8907: OIM #&01,&A1 890A: JMP &8951 890D: 00 01 05 05 00 07 07 00 ........ 8915: 00 00 00 0A 05 07 01 07 ........ 891D: 00 07 07 07 0A 05 07 01 ........ 8925: 07 00 07 07 07 00 07 01 ........ 892D: 07 04 04 01 01 01 01 07 ........ 8935: 01 39 .9 ********** display factor value in A as '0' - '99' 8937: LDX #&139E 893A: STX &92 ptr to display char 1E 893C: ANDA #&7F force valid value 893E: LDX #&E148 ptr to 0-127 => 0-99 lookup table 8941: TAB 8942: ABX 8943: LDAA &00,X translate value 8945: LDX &92 8947: LDAB #&0A divide value by 10 8949: JSR &CDAA 894C: STAA &00,X store quotient as 10s 894E: STAB &01,X store remainder as units 8950: RTS ********** 8951: LDAB &7E98 get current edit factor 8954: LDX #&8F33 8957: ASLB 8958: ABX 8959: LDX &00,X 895B: JMP &00,X 895D: LDAB &7F58 get key mode 8960: BEQ &8974 8962: ADDB &7E99 8965: ANDB #&03 8967: LDX #&896C 896A: BRA &8957 JMP table... B = &7F58 + &7E99 896C: A905 B = 0 896E: A90E B = 1 8970: A918 B = 2 8972: A918 B = 3 ********** 8974: LDAB &7E99 8977: CMPB #&01 8979: BEQ &8967 897B: TSTB 897C: BEQ &898A 897E: LDAA &7F7B 8981: BNE &8984 8983: INCA 8984: COMA 8985: ANDA #&03 8987: STAA &7F7B 898A: CLRA 898B: STAA &7F0B 898E: JMP &A908 8991: LDAB &7F52 8994: STAB &7F52 8997: CMPB #&40 8999: BGE &899F 899B: LDAA #&40 899D: BRA &89A4 899F: LDAA #&80 89A1: SBA 89A2: LDAB #&40 89A4: STAA &7F0C 89A7: STAB &7F0D 89AA: LDAA &7F58 89AD: CMPA #&02 89AF: BGE &89B7 89B1: JSR &89C1 89B4: JSR &89DF 89B7: TIM #&02,&A4 89BA: BEQ &89BD 89BC: RTS 89BD: CLRA 89BE: JMP &A468 89C1: LDAA #&F1 89C3: LDAB &7F0C 89C6: LDX #&1729 89C9: JSR &DEB7 89CC: LDAA #&9E 89CE: JSR &DEB7 89D1: LDAA &00,X 89D3: MUL 89D4: ASLD 89D5: ASLD 89D6: LDAB &7F59 89D9: MUL 89DA: ASLD 89DB: JSR &DEB7 89DE: RTS 89DF: LDAA #&F9 89E1: LDAB &7F0D 89E4: LDX #&7FA9 89E7: BRA &89C9 89E9: RTS 89EA: LDAB &7F54 89ED: LDAA &7E99 89F0: CMPA #&01 89F2: BNE &89FB 89F4: CMPB #&53 89F6: BEQ &8A17 89F8: INCB 89F9: BRA &8A00 89FB: CMPB #&07 89FD: BEQ &8A17 89FF: DECB 8A00: STAB &80 8A02: JSR &BCCC 8A05: JSR &BD58 8A08: LDAB &80 8A0A: STAB &7F54 8A0D: TBA 8A0E: JSR &A4DA 8A11: OIM #&04,&99 8A14: JSR &C7E7 8A17: RTS 8A18: LDAB &7F55 8A1B: LDAA &7E99 8A1E: CMPA #&01 8A20: BNE &8A29 8A22: CMPB #&52 8A24: BEQ &8A3D 8A26: INCB 8A27: BRA &8A2E 8A29: CMPB #&06 8A2B: BEQ &8A3D 8A2D: DECB 8A2E: STAB &80 8A30: JSR &BCCC 8A33: JSR &BD58 8A36: LDAB &80 8A38: STAB &7F55 8A3B: BRA &8A0D 8A3D: RTS 8A3E: JSR &8937 8A41: JMP &B313 8A44: RTS 8A45: LDAB &7F57 8A48: LDAA &7E99 8A4B: CMPA #&01 8A4D: BNE &8A57 8A4F: CMPB #&60 8A51: BEQ &8A66 8A53: ADDB #&20 8A55: BRA &8A5C 8A57: TSTB 8A58: BEQ &8A66 8A5A: SUBB #&20 8A5C: STAB &7F57 8A5F: TBA 8A60: JSR &A37F 8A63: JMP &A4FC 8A66: RTS 8A67: LDAB &8E 8A69: BEQ &8A82 8A6B: CMPB #&E0 8A6D: BEQ &8A7B 8A6F: CMPB #&E1 8A71: BEQ &8A7B 8A73: CMPB #&D2 8A75: BEQ &8A7B 8A77: CMPB #&D0 8A79: BNE &8A82 8A7B: LDAB &7E98 8A7E: CMPB #&07 8A80: BEQ &8A8A 8A82: STAA &7F59 8A85: BRA &8A90 8A87: LDAA &7F59 8A8A: STAA &7F59 8A8D: JSR &8937 8A90: LDAB &7F58 8A93: LDAA #&F4 8A95: CMPB #&02 8A97: BLT &8AA1 8A99: BGT &8A9E 8A9B: JMP &89E1 8A9E: JMP &89C3 8AA1: OIM #&02,&A4 8AA4: LDAB &7F52 8AA7: JSR &8994 8AAA: AIM #&FD,&A4 8AAD: RTS 8AAE: STAA &81 8AB0: JSR &8937 8AB3: LDAB &7E98 8AB6: ADDB #&B0 8AB8: LDAA &81 8ABA: ADDA &80 8ABC: BEQ &8AE4 8ABE: LDAA #&F4 8AC0: TST &0080 8AC3: BEQ &8ACF 8AC5: TST &0081 8AC8: BNE &8AD2 8ACA: JSR &9505 8ACD: BRA &8AD2 8ACF: JSR &9511 8AD2: LDAA #&F4 8AD4: JSR &DEB7 8AD7: LDAA &7E98 8ADA: ADDA #&84 8ADC: JSR &DEB7 8ADF: LDAA &81 8AE1: JSR &DEB7 8AE4: RTS 8AE5: LDX #&7F52 8AE8: LDAB &7E98 8AEB: AIM #&FE,&A0 8AEE: CMPB #&0B 8AF0: BEQ &8AF5 8AF2: OIM #&01,&A0 8AF5: ABX 8AF6: LDAA &00,X 8AF8: LDAB &7E99 8AFB: CMPB #&01 8AFD: BNE &8B06 8AFF: CMPA #&63 8B01: BGE &8B19 8B03: INCA 8B04: BRA &8B0A 8B06: TSTA 8B07: BEQ &8B19 8B09: DECA 8B0A: STAA &00,X 8B0C: LDAB #&E1 8B0E: STAB &7E9E 8B11: JSR &A399 8B14: LDAA &D1 8B16: JMP &A560 8B19: RTS 8B1A: LDAB &7F5F 8B1D: LDX #&8B43 8B20: LDAA &7E99 8B23: CMPA #&01 8B25: BNE &8B30 8B27: CMPB #&06 8B29: BEQ &8B43 8B2B: ABX 8B2C: LDAA &01,X 8B2E: BRA &8B37 8B30: CMPB #&00 8B32: BEQ &8B43 8B34: ABX 8B35: LDAA &00,X 8B37: STAA &7F5F 8B3A: JSR &A567 8B3D: OIM #&04,&99 8B40: JSR &C7E7 8B43: RTS 8B44: 04 05 06 00 01 02 ...... ********** 8B4A: JMP &8937 8B4D: CLRA 8B4E: BRA &8B52 8B50: LDAA #&01 8B52: STAA &7F63 8B55: LDAB &8E 8B57: ANDB #&F0 8B59: CMPB #&E0 8B5B: BNE &8B67 8B5D: LDAB &7E98 8B60: CMPB #&10 8B62: BNE &8B67 8B64: JSR &A814 8B67: LDAB &7F58 8B6A: CMPB #&03 8B6C: BNE &8BA8 8B6E: RTS 8B6F: LDX #&7F52 8B72: LDAB &7E98 8B75: ABX 8B76: LDAA &00,X 8B78: ANDA #&01 8B7A: LDAB &7E99 8B7D: CMPB #&01 8B7F: BNE &8B8A 8B81: CMPA #&01 8B83: BGE &8B94 8B85: INCA 8B86: LDAA #&01 8B88: BRA &8B8F 8B8A: CMPA #&00 8B8C: BEQ &8B94 8B8E: DECA 8B8F: STAA &00,X 8B91: JSR &A814 8B94: RTS 8B95: LDAA &7F58 8B98: CMPA #&03 8B9A: BEQ &8B6F 8B9C: LDAA &7F63 8B9F: STAA &80 8BA1: JSR &8B6F 8BA4: CMPA &80 8BA6: BEQ &8BD6 8BA8: TAB 8BA9: LDX #&7F33 8BAC: LDAA &7F58 8BAF: CMPA #&02 8BB1: BNE &8BC6 8BB3: LDAA #&41 8BB5: STAA &80 8BB7: LDAA #&F4 8BB9: TSTB 8BBA: BEQ &8BC1 8BBC: LDAB #&B5 8BBE: JMP &8039 8BC1: LDAB #&B5 8BC3: JMP &8077 8BC6: LDAA #&41 8BC8: TSTB 8BC9: BEQ &8BD1 8BCB: LDAB #&B5 8BCD: JSR &8009 8BD0: RTS 8BD1: LDAB #&B5 8BD3: JSR &805E 8BD6: RTS 8BD7: LDAA &7F58 8BDA: CMPA #&02 8BDC: BEQ &8B6F 8BDE: LDAA &7F6C 8BE1: STAA &80 8BE3: JSR &8B6F 8BE6: CMPA &80 8BE8: BEQ &8BD6 8BEA: LDX #&7F3C 8BED: TAB 8BEE: LDAA &7F58 8BF1: CMPA #&03 8BF3: BNE &8BC6 8BF5: LDAA #&41 8BF7: STAA &80 8BF9: LDAA #&F4 8BFB: TSTB 8BFC: BEQ &8C03 8BFE: LDAB #&B5 8C00: JMP &8012 8C03: LDAB #&B5 8C05: JMP &8067 8C08: RTS 8C09: RTS 8C0A: LDAB &7F68 8C0D: LDX #&8B43 8C10: LDAA &7E99 8C13: CMPA #&01 8C15: BNE &8C20 8C17: CMPB #&06 8C19: BEQ &8C33 8C1B: ABX 8C1C: LDAA &01,X 8C1E: BRA &8C27 8C20: CMPB #&00 8C22: BEQ &8C33 8C24: ABX 8C25: LDAA &00,X 8C27: STAA &7F68 8C2A: JSR &A567 8C2D: OIM #&04,&99 8C30: JSR &C7E7 8C33: RTS 8C34: RTS 8C35: LDX #&1380 8C38: LDAB #&2D 8C3A: CMPA #&01 8C3C: BEQ &8C40 8C3E: LDAB #&2B 8C40: STAB &1E,X 8C42: RTS 8C43: JMP &8937 8C46: RTS ***** 8C47: LDAA &7F70 get chase play mode 8C4A: LDAB &7E99 get factor direction 8C4D: CMPB #&01 8C4F: BNE &8C58 br if not inc inc chase mode 8C51: CMPA #&02 8C53: BEQ &8C46 br if chase mode already 2 8C55: INCA increment chase play mode 8C56: BRA &8C5D dec chase mode 8C58: CMPA #&00 8C5A: BEQ &8C46 br if mode already 0 8C5C: DECA 8C5D: STAA &7F70 store chase play mode 8C60: JSR &A580 display play mode 8C63: JMP &CE5D ***** 8C66: LDAA &7F71 get chase play time 8C69: LDAB &7E99 get factor direction 8C6C: CMPB #&01 8C6E: BNE &8C77 br if not inc inc chase time 8C70: CMPA #&7F 8C72: BEQ &8C46 br if time already 7F 8C74: INCA inc time 8C75: BRA &8C7C dec chase time 8C77: CMPA #&03 br if time already 3 8C79: BEQ &8C46 8C7B: DECA dec time 8C7C: STAA &7F71 store chase time 8C7F: JSR &8937 display time as 0 - 99 8C82: JMP &CE5D ***** 8C85: LDAA &7F72 get chase play status 8C88: ANDA #&01 8C8A: LDAB &7E99 get factor direction 8C8D: CMPB #&01 8C8F: BNE &8CD5 br if not inc inc chase play 8C91: TSTA 8C92: BNE &8C46 br if chase is already on 8C94: INCA chase play = on 8C95: JSR &A814 display 'ON' 8C98: LDAB #&E1 8C9A: JSR &A905 8C9D: CLRA 8C9E: CLRB 8C9F: STD &7E83 8CA2: STD &7E79 8CA5: LDX #&7E7C 8CA8: LDD #&7C00 8CAB: STD &02,X 8CAD: STD &00,X 8CAF: LDX #&7E75 8CB2: LDD #&7D2C 8CB5: STD &02,X 8CB7: STD &00,X 8CB9: CLRA 8CBA: STAA &7E85 8CBD: STAA &7E7B 8CC0: LDX #&7E6F 8CC3: LDAA #&7F 8CC5: STAA &00,X 8CC7: STAA &01,X 8CC9: STAA &02,X 8CCB: STAA &03,X 8CCD: STAA &04,X 8CCF: STAA &05,X 8CD1: LDAA #&01 8CD3: BRA &8CDD dec chase play 8CD5: TSTA 8CD6: BEQ &8CE6 br if already off 8CD8: DECA chase play = off 8CD9: JSR &A814 display 'OFF' 8CDC: CLRA 8CDD: STAA &7F72 store chase play 8CE0: OIM #&04,&99 8CE3: JSR &C7E7 8CE6: RTS ********** 8CE7: LDAA &7E99 8CEA: LDAB &7E98 8CED: LDX #&7F52 8CF0: ABX 8CF1: LDAB &00,X 8CF3: ANDB #&1F 8CF5: CMPA #&01 8CF7: BNE &8D02 8CF9: CMPB #&10 8CFB: BNE &8CFF 8CFD: LDAB #&FF 8CFF: INCB 8D00: BRA &8D08 8D02: TSTB 8D03: BNE &8D07 8D05: LDAB #&11 8D07: DECB 8D08: PSHX 8D09: STAB &80 8D0B: JSR &BCCC 8D0E: JSR &BD58 8D11: LDAB &80 8D13: PULX 8D14: STAB &00,X 8D16: TBA 8D17: JSR &A596 8D1A: LDAB &7E98 8D1D: CMPB #&21 8D1F: BNE &8D31 get upper midi tx channel 8D21: LDAA &7F73 get UP MIDI CH SEND 8D24: CMPA #&10 8D26: BNE &8D2B br if not &10 8D28: LDAA &7F2D get mf UPPER CHANNEL 8D2B: ANDA #&0F 8D2D: STAA &7F13 store in upper midi ch 8D30: RTS get lower midi tx channel 8D31: LDAA &7F74 get LO MIDI CH SEND 8D34: CMPA #&10 8D36: BNE &8D3B br if not &10 8D38: LDAA &7F36 get mf LOWER CHANNEL 8D3B: ANDA #&0F 8D3D: STAA &7F14 store in lower midi ch 8D40: RTS 8D41: LDAB &7E98 get current edit factor 8D44: LDX #&7F52 ptr to patch edit buffer 8D47: ABX 8D48: LDAA &00,X get factor value 8D4A: LDAB &7E99 8D4D: CMPB #&01 8D4F: BNE &8D5A 8D51: CMPA #&80 8D53: BNE &8D57 8D55: LDAA #&FF 8D57: INCA 8D58: BRA &8D60 8D5A: TSTA 8D5B: BNE &8D5F 8D5D: LDAA #&81 8D5F: DECA 8D60: STAA &00,X 8D62: LDAB &7E98 8D65: CMPB #&24 8D67: BGT &8D90 8D69: CMPA #&80 8D6B: BEQ &8D7E 8D6D: CMPB #&24 8D6F: BEQ &8D81 8D71: TAB 8D72: JSR &CBD7 8D75: LDAA #&C0 8D77: JSR &CBE4 8D7A: TBA 8D7B: JSR &DEB7 8D7E: JMP &A5A0 8D81: CMPA #&80 8D83: BEQ &8DAA 8D85: TAB 8D86: JSR &CBD7 8D89: LDAA #&C0 8D8B: JSR &CBDD 8D8E: BRA &8D7A 8D90: CMPB #&25 8D92: BNE &8DAD 8D94: CMPA #&80 8D96: BEQ &8DAA 8D98: TAB 8D99: JSR &CBD7 8D9C: LDAA #&B0 8D9E: JSR &CBE4 8DA1: LDAA #&07 8DA3: JSR &DEB7 8DA6: TBA 8DA7: JSR &DEB7 8DAA: JMP &A5AA 8DAD: CMPA #&80 8DAF: BEQ &8DAA 8DB1: TAB 8DB2: JSR &CBD7 8DB5: LDAA #&B0 8DB7: JSR &CBDD 8DBA: BRA &8DA1 8DBC: LDAA &7F79 8DBF: ANDA #&07 8DC1: LDAB &7E99 8DC4: CMPB #&01 8DC6: BNE &8DCF 8DC8: CMPA #&04 8DCA: BEQ &8E0A 8DCC: INCA 8DCD: BRA &8DD3 8DCF: TSTA 8DD0: BEQ &8E0A 8DD2: DECA 8DD3: STAA &80 8DD5: JSR &BCCC 8DD8: JSR &BD58 8DDB: LDAA &80 8DDD: STAA &7F79 8DE0: JMP &A5B6 8DE3: LDAB &7F7A 8DE6: LDAA &7E99 8DE9: CMPA #&01 8DEB: BNE &8DF4 8DED: CMPB #&53 8DEF: BEQ &8E0A 8DF1: INCB 8DF2: BRA &8DF9 8DF4: CMPB #&07 8DF6: BEQ &8E0A 8DF8: DECB 8DF9: STAB &80 8DFB: JSR &BCCC 8DFE: JSR &BD58 8E01: LDAB &80 8E03: STAB &7F7A 8E06: TBA 8E07: JMP &A4DA 8E0A: RTS 8E0B: LDAA #&3F 8E0D: STAA &80 8E0F: LDAB &7E98 8E12: LDX #&7F52 8E15: ABX 8E16: LDAB &00,X 8E18: BITB #&40 8E1A: BEQ &8E2D 8E1C: LDAA &7E99 8E1F: CMPA #&01 8E21: BEQ &8E26 8E23: DECB 8E24: BRA &8E3C 8E26: CMPB #&7F 8E28: BEQ &8E58 8E2A: INCB 8E2B: BRA &8E3C 8E2D: LDAA &7E99 8E30: CMPA #&01 8E32: BEQ &8E3B 8E34: CMPB #&00 8E36: BEQ &8E58 8E38: DECB 8E39: BRA &8E3C 8E3B: INCB 8E3C: STAB &00,X 8E3E: STAB &1772 8E41: LDAA &7E98 8E44: CMPA #&01 8E46: BNE &8E59 8E48: LDAA &7F58 8E4B: CMPA #&00 8E4D: BNE &8E52 8E4F: JSR &8EB0 8E52: LDX #&139D 8E55: JMP &B538 8E58: RTS 8E59: LDAB &1771 8E5C: STAB &86 8E5E: LDAB &7F58 get key mode 8E61: BNE &8E70 8E63: TAB 8E64: LDAA &7F53 get dual detune 8E67: JSR &B560 8E6A: STAA &1771 8E6D: TBA 8E6E: BRA &8E74 8E70: CMPB #&02 8E72: BGE &8E96 8E74: CMPA #&0E 8E76: BEQ &8EA1 8E78: LDAA &7F68 8E7B: CMPA #&01 8E7D: BEQ &8E83 8E7F: CMPA #&05 8E81: BNE &8E96 8E83: LDAA #&F1 8E85: JSR &DEB7 8E88: LDAA #&BE 8E8A: JSR &DEB7 8E8D: LDAA &1772 8E90: JSR &B560 8E93: JSR &DEB7 8E96: LDAA &86 8E98: STAA &1771 8E9B: LDX #&139D 8E9E: JMP &B538 8EA1: LDAA &7F5F 8EA4: CMPA #&01 8EA6: BEQ &8EAC 8EA8: CMPA #&05 8EAA: BNE &8E96 8EAC: LDAA #&F9 8EAE: BRA &8E85 8EB0: LDAA #&F1 8EB2: JSR &DEB7 8EB5: LDAA #&B4 8EB7: JSR &DEB7 8EBA: LDAA &1772 8EBD: JSR &B560 8EC0: STAA &80 8EC2: JSR &DEB7 8EC5: LDAA #&BE 8EC7: JSR &DEB7 8ECA: LDAA &7F68 8ECD: CMPA #&01 8ECF: BEQ &8ED5 8ED1: CMPA #&05 8ED3: BNE &8EE9 8ED5: LDAA &1771 8ED8: STAA &86 8EDA: LDAA &7F69 8EDD: JSR &B560 8EE0: JSR &DEB7 8EE3: LDAA &86 8EE5: STAA &1771 8EE8: RTS 8EE9: LDAA &80 8EEB: JSR &DEB7 8EEE: RTS 8EEF: JSR &CBD1 8EF2: LDAA #&B4 8EF4: JSR &DEB7 8EF7: LDAA &1771 8EFA: STAA &80 8EFC: JSR &DEB7 8EFF: LDAA #&BE 8F01: JSR &DEB7 8F04: LDAA &80 8F06: JSR &DEB7 8F09: RTS 8F0A: LDX #&7F52 8F0D: LDAB &7E98 8F10: ABX 8F11: LDAB &00,X 8F13: LDAA &7E99 8F16: CMPA #&01 8F18: BEQ &8F21 8F1A: CMPB #&E8 8F1C: BEQ &8F32 8F1E: DECB 8F1F: BRA &8F26 8F21: CMPB #&18 8F23: BEQ &8F32 8F25: INCB 8F26: STAB &00,X 8F28: TBA 8F29: JSR &A4B7 8F2C: OIM #&04,&99 8F2F: JSR &C7E7 8F32: RTS ********** table for JMP indirect at 895B B = &7E98 8F33: 8991 B = 0 8E0B B = 1 89EA B = 2 8A18 B = 3 8A3E B = 4 8A45 B = 5 895D B = 6 8A87 B = 7 8AAE B = 8 8AAE B = 9 8AAE B = A 8AE5 B = B 8F0A B = C 8B1A B = D 8E0B B = E 8B6F B = F 8B4A B = 10 8B95 B = 11 8B6F B = 12 8C08 B = 13 8AE5 B = 14 8F0A B = 15 8C0A B = 16 8E0B B = 17 8B6F B = 18 8B4A B = 19 8BD7 B = 1A 8B6F B = 1B 8C34 B = 1C 8C43 B = 1D 8C47 B = 1E 8C66 B = 1F 8C85 B = 20 8CE7 B = 21 8CE7 B = 22 8D41 B = 23 8D41 B = 24 8D41 B = 25 8D41 B = 26 8DBC B = 27 8DE3 B = 28 ********** 8F85: LDAA &174D 8F88: BITA #&08 8F8A: BEQ &8F96 8F8C: LDAA &7E9A 8F8F: BEQ &8FC8 8F91: STAA &80 8F93: DECA 8F94: BRA &8FA4 8F96: BITA #&10 8F98: BEQ &8FC9 8F9A: LDAA &7E9A 8F9D: CMPA #&11 8F9F: BGE &8FC8 8FA1: STAA &80 8FA3: INCA 8FA4: LDX #&13C5 8FA7: LDAB &80 8FA9: ABX 8FAA: LDAB &00,X 8FAC: ANDB #&7F 8FAE: STAB &00,X 8FB0: TAB 8FB1: LDX #&13C5 8FB4: ABX 8FB5: LDAB &00,X 8FB7: ORAB #&80 8FB9: STAB &00,X 8FBB: STAA &7E9A 8FBE: TAB 8FBF: LDX #&7F40 8FC2: ABX 8FC3: LDAB &00,X 8FC5: STAB &7E9B 8FC8: RTS 8FC9: JSR &8FE3 8FCC: CMPA #&7F 8FCE: BEQ &8FC8 8FD0: STAA &7E9B 8FD3: LDAB &7E9A 8FD6: LDX #&7F40 8FD9: ABX 8FDA: STAA &00,X 8FDC: LDX #&1385 8FDF: ABX 8FE0: STAA &00,X 8FE2: RTS 8FE3: LDAA #&05 8FE5: STAA &7F0A set rot enc clock divider 8FE8: JSR &8762 8FEB: CMPA #&7F 8FED: BEQ &900A 8FEF: LDAB &7E9B 8FF2: ABA 8FF3: CMPA #&5B 8FF5: BGT &9006 8FF7: BEQ &8FFF 8FF9: CMPA #&40 8FFB: BGT &9005 8FFD: BEQ &9003 8FFF: LDAA #&41 9001: BRA &9005 9003: LDAA #&5A 9005: RTS 9006: LDAA #&3F 9008: BRA &9005 900A: JSR &86E4 900D: CMPA #&7F 900F: BNE &9005 9011: LDAA &1749 9014: BEQ &9021 9016: LDX #&9023 9019: INX 901A: RORA 901B: BCC &9019 901D: LDAA &00,X 901F: BRA &9005 9021: LDAA #&7F 9023: RTS 9024: BLT &9050 9026: BLE &9084 9028: PSHX 9029: WAI 902A: BGT &904C 902C: JSR &86E4 902F: CMPA #&7F 9031: BEQ &9067 9033: STAA &7E96 9036: LDX #&1380 9039: STAA &05,X 903B: LDAA &06,X 903D: ORAA #&40 903F: STAA &06,X 9041: LDAA &7E95 9044: DECA 9045: STAA &80 9047: ASLA 9048: ASLA 9049: ASLA 904A: LDAB &80 904C: ABA 904D: LDAB &7E96 9050: ABA 9051: TAB 9052: LDX #&E603 9055: ABX 9056: LDAA &00,X 9058: CMPA #&80 905A: BEQ &905F 905C: STAA &7E98 905F: JSR &A406 9062: LDAA &7E9E 9065: STAA &8E 9067: RTS 9068: RTS 9069: LDAA &174C 906C: BITA #&08 906E: BEQ &9073 9070: JMP &9611 9073: RTS 9074: ROLA 9075: BCC &907A 9077: ROLA 9078: BCS &9069 907A: LDAA &8E 907C: CMPA #&82 907E: BEQ &90A0 9080: LDAA &7F58 9083: CMPA #&01 9085: BGT &90A0 9087: LDAA &174D 908A: BITA #&08 908C: BEQ &9097 908E: LDX #&1700 9091: STX &7F11 9094: JMP &A641 9097: BITA #&10 9099: BEQ &90A0 909B: LDX #&7F80 909E: BRA &9091 90A0: LDAA &174D 90A3: ROLA 90A4: BCC &90AC 90A6: OIM #&01,&A1 90A9: JMP &A918 90AC: ROLA 90AD: BCC &90B5 90AF: OIM #&01,&A1 90B2: JMP &A90E 90B5: ROLA 90B6: BCC &90BE 90B8: OIM #&01,&A1 90BB: JMP &A905 90BE: LDAA &174E 90C1: RORA 90C2: RORA 90C3: BCC &90CA 90C5: LDAA &8E 90C7: JMP &AA26 90CA: CLRB 90CB: LDAA &174D 90CE: RORA 90CF: BCS &90D9 90D1: INCB 90D2: RORA 90D3: BCS &90D9 90D5: INCB 90D6: RORA 90D7: BCC &90DF 90D9: STAB &7E92 90DC: JMP &AC1A 90DF: LDAA &174C 90E2: RORA 90E3: BCS &90EE 90E5: RORA 90E6: BCS &90F1 90E8: RORA 90E9: BCC &90F4 90EB: JMP &A6BA 90EE: JMP &A406 90F1: JMP &AB3B 90F4: LDAA &8E get function display 90F6: BITA #&10 90F8: BEQ &90FD br if bit 4 not set 90FA: JMP &9204 90FD: CMPA #&82 90FF: BNE &9104 br if func disp not #&82 9101: JMP &91A7 9104: LDAA &174C get row 4 new presses 9107: BITA #&08 9109: BEQ &910E br if not 'RECALL' 910B: JMP &957E 910E: JSR &86E4 9111: CMPA #&7E 9113: BHI &912D 9115: TSTA 9116: BEQ &912D 9118: STAA &7E95 911B: STAA &1390 911E: LDAA #&20 9120: STAA &1391 9123: LDAA &8E 9125: STAA &7E9E 9128: ORAA #&10 912A: STAA &8E 912C: RTS 912D: LDAA &8E 912F: RORA 9130: BCC &9135 9132: JMP &9170 9135: JSR &8762 9138: CMPA #&7F 913A: BEQ &916F 913C: LDAB &7E98 913F: LDX #&EDEC 9142: CMPA #&FF 9144: BEQ &915E 9146: CMPB #&84 9148: BEQ &916F 914A: INCB 914B: ABX 914C: LDAA &00,X 914E: BPL &9156 9150: LDAB &01,X 9152: ANDB #&7F 9154: BRA &913F 9156: STAB &7E98 9159: STAB &80 915B: JMP &A8BD 915E: CMPB #&00 9160: BEQ &916F 9162: DECB 9163: ABX 9164: LDAA &00,X 9166: BPL &9156 9168: DEX 9169: LDAB &00,X 916B: LDAA #&FF 916D: BRA &913F 916F: RTS 9170: LDAA &174E 9173: BITA #&20 9175: BEQ &91A6 9177: LDX &7F11 917A: LDAB &D3 917C: ABX 917D: LDAB &0B,X 917F: LDAA &1746 9182: ROLA 9183: BCC &918C 9185: CMPB #&7F 9187: BEQ &91A6 9189: INCB 918A: BRA &9190 918C: TSTB 918D: BEQ &91A6 918F: DECB 9190: STAB &0B,X 9192: LDX &7F11 9195: CPX #&1700 9198: BNE &919F 919A: OIM #&02,&A1 919D: BRA &91A2 919F: OIM #&04,&A1 91A2: TBA 91A3: JMP &B43A 91A6: RTS 91A7: LDAA &174D 91AA: BITA #&08 91AC: BEQ &91B8 91AE: LDAA &7E9A 91B1: BEQ &91E9 91B3: STAA &80 91B5: DECA 91B6: BRA &91C6 91B8: BITA #&10 91BA: BEQ &91EA 91BC: LDAA &7E9A 91BF: CMPA #&09 91C1: BGE &91E9 91C3: STAA &80 91C5: INCA 91C6: LDX #&13D0 91C9: LDAB &80 91CB: ABX 91CC: LDAB &00,X 91CE: ANDB #&7F 91D0: STAB &00,X 91D2: STAA &7E9A 91D5: TAB 91D6: LDX #&13D0 91D9: ABX 91DA: LDAA &00,X 91DC: ORAA #&80 91DE: STAA &00,X 91E0: LDX &7F11 91E3: ABX 91E4: LDAB &00,X 91E6: STAB &7E9B 91E9: RTS 91EA: JSR &8FE3 91ED: CMPA #&7F 91EF: BEQ &91E9 91F1: STAA &7E9B 91F4: LDAB &7E9A 91F7: LDX &7F11 91FA: ABX 91FB: STAA &00,X 91FD: LDX #&1390 9200: ABX 9201: STAA &00,X 9203: RTS 9204: JSR &86E4 9207: CMPA #&08 9209: BHI &9232 920B: TSTA 920C: BEQ &9232 920E: STAA &7E96 9211: LDX #&1391 9214: STAA &00,X 9216: LDAA &4F,X 9218: ORAA #&40 921A: STAA &4F,X 921C: LDAA &7E95 921F: DECA 9220: ASLA 9221: ASLA 9222: ASLA 9223: ASLA 9224: LDAB &7E96 9227: DECB 9228: ABA 9229: TAB 922A: JSR &9156 922D: LDAA &7E9E 9230: STAA &8E 9232: RTS 9233: RTS 9234: JSR &872B 9237: CMPB #&08 9239: BGE &9240 923B: STAB &7E87 923E: BRA &9256 9240: LDAA &1749 9243: BEQ &9264 9245: LDAB &1741 9248: COMB 9249: CBA 924A: BNE &9264 924C: JSR &8737 924F: CMPB #&08 9251: BGE &9264 9253: STAB &7E88 9256: CLR &008E 9259: LDAA #&20 925B: STAA &1397 925E: STAA &139B 9261: JMP &9FEF 9264: RTS ********** sequencer messages 9265: 53 45 51 55 45 4E 43 45 SEQUENCE 926D: 52 20 20 52 45 50 45 41 R REPEA 9275: 54 20 20 20 20 20 20 20 T 927D: 20 20 20 53 45 51 55 45 SEQUE 9285: 4E 43 45 52 20 20 20 20 NCER 928D: 20 20 20 20 20 54 45 4D TEM 9295: 50 4F 20 20 20 20 PO ***** 929B: JSR &8762 929E: CMPA #&7F 92A0: BEQ &9234 92A2: TSTB 92A3: BNE &92C1 92A5: LDAB &7EEE 92A8: ANDB #&01 92AA: CMPA #&01 92AC: BNE &92BB 92AE: CMPB #&01 92B0: BEQ &92BA 92B2: INCB 92B3: STAB &7EEE 92B6: TBA 92B7: JSR &A814 92BA: RTS 92BB: TSTB 92BC: BEQ &92BA 92BE: DECB 92BF: BRA &92B3 92C1: JMP &936C 92C4: LDAA &174E get row 6 new presses 92C7: BITA #&08 92C9: BEQ &92CE br if not 'ENTER' 92CB: JMP &AB3B 92CE: LDAA &174B get row 3 new presses 92D1: BITA #&20 92D3: BEQ &92D8 br if not 'SEQ ON/OFF' 92D5: JMP &93CE 92D8: LDAA &174B get row 3 new presses 92DB: LDAB &7E98 get current factor 92DE: BITA #&10 92E0: BEQ &929B br if not 'SEQ REC' 92E2: CMPB #&01 92E4: BNE &92E8 br if factor != 1 92E6: BRA &9303 92E8: LDAA #&01 92EA: LDX #&927F 92ED: JSR &94AC 92F0: LDAB &7EF1 92F3: JMP &9386 'SEQ REC' pressed... 92F6: JSR &AFDA clear disp f/p 92F9: LDAA &1742 get key row 2 92FC: BITA #&20 92FE: BNE &9303 br if pad 5 not pressed 9300: JMP &FD31 9303: LDAA #&B0 9305: STAA &8E disp func = #&B0 9307: CLRA 9308: LDX #&9264 930B: JSR &94AC 930E: LDAA &7EEE 9311: JMP &A814 9314: JSR &872B 9317: CMPB #&08 9319: BGE &9321 931B: STAB &7E87 931E: JMP &9FEF 9321: LDAA &1749 9324: BEQ &935A 9326: LDAB &1741 9329: COMB 932A: CBA 932B: BNE &935A 932D: JSR &8737 9330: CMPB #&08 9332: BGE &935A 9334: STAB &7E88 9337: JMP &9FEF 933A: LDAA #&13 933C: STAA &BE 933E: JSR &EA4E 9341: BRA &93B4 9343: TIM #&80,&A7 9346: BNE &933A 9348: LDAA &174B 934B: BITA #&20 934D: BEQ &9314 934F: OIM #&08,&A5 9352: TIM #&02,&A7 9355: BNE &93B4 9357: JMP &9390 935A: TIM #&04,&A7 935D: BNE &938F 935F: TIM #&40,&A7 9362: BNE &93A4 9364: LDAA #&02 9366: STAA &7F0A set rot enc clock divider 9369: JSR &8762 936C: LDAB &7EF1 936F: CMPA #&7F 9371: BEQ &938F 9373: CMPA #&01 9375: BNE &937E 9377: CMPB #&C8 9379: BEQ &938F 937B: INCB 937C: BRA &9383 937E: CMPB #&28 9380: BEQ &938F 9382: DECB 9383: STAB &7EF1 9386: JSR &953D 9389: LDAB &7EF1 938C: JMP &ABBB 938F: RTS 9390: OIM #&04,&99 9393: JSR &C7E7 9396: LDX #&13FF 9399: JSR &951E 939C: LDX #&77FF 939F: JSR &951E 93A2: BRA &93C2 93A4: TST &7EEE 93A7: BEQ &9390 93A9: LDAA #&01 93AB: STAA &A7 93AD: LDAA #&01 93AF: STAA &7EEB 93B2: BRA &9424 93B4: JSR &E047 93B7: LDAA &7EE4 93BA: LDAB #&FF 93BC: STAA &00,X 93BE: STAB &01,X 93C0: STAB &02,X 93C2: CLR &00A7 93C5: JSR &965E 93C8: JSR &CE63 93CB: JMP &AB3B 93CE: JSR &AFDA 93D1: LDAA &1743 get row 3 status 93D4: BITA #&08 93D6: BEQ &943D br if 'SEQ FUNC' 93D8: JSR &D259 check for cart 93DB: TIM #&08,&9A 93DE: BEQ &93EA br if cart Ok 93E0: LDAA #&06 93E2: STAA &BE 93E4: JSR &EA4E display 'INSERT CARTRIDGE' 93E7: JMP &AB3B 93EA: LDX #&2000 93ED: LDAA #&A5 93EF: CMPA &00,X 93F1: BEQ &93F9 br if first byte of cart = #&A5 93F3: STAA &00,X set first byte to #&A5 93F5: LDAA #&10 93F7: BRA &93E2 display 'MISMATCH' 93F9: INX 93FA: LDAA #&53 93FC: CMPA &00,X 93FE: BNE &93F3 br if second byte cart != #&53 9400: JSR &A359 9403: LDX #&94A1 9406: STX &90 9408: LDX #&1396 940B: STX &92 940D: LDAA #&06 940F: STAA &80 9411: JSR &A54C 9414: LDAA #&01 9416: STAA &A7 9418: LDAA &7EE9 941B: JSR &9386 941E: OIM #&08,&A5 9421: JSR &9647 9424: CLRA 9425: CLR &7EE4 9428: STAA &8E 942A: AIM #&FB,&A5 942D: CLR &7EFC 9430: LDX #&2010 9433: STX &7EE2 9436: STX &7EE0 9439: AIM #&F7,&A5 943C: RTS 943D: JSR &D259 9440: TIM #&08,&9A 9443: BNE &93E0 9445: JSR &D23B 9448: LDAA #&07 944A: TIM #&08,&99 944D: BNE &93E2 944F: JSR &9C65 9452: TIM #&08,&9A 9455: BEQ &945D 9457: LDX #&27F0 945A: CLRB 945B: BRA &9462 945D: LDX #&3FF0 9460: LDAB #&10 9462: STAB &A7 9464: STX &7EE7 9467: LDX #&2000 946A: LDAA #&A5 946C: CMPA &00,X 946E: BNE &93F3 9470: INX 9471: LDAA #&53 9473: CMPA &00,X 9475: BEQ &947A 9477: JMP &93F3 947A: LDX #&9490 947D: JSR &94C3 9480: OIM #&08,&A5 9483: ORAB #&03 9485: STAB &A7 9487: LDAA #&64 9489: STAA &7EF1 948C: JSR &953D 948F: BRA &9424 9491: 53 45 51 20 20 52 45 43 SEQ REC 9499: 20 20 20 52 45 41 44 59 READY 94A1: 20 20 54 45 4D 50 4F 20 TEMPO 94A9: 31 30 30 100 94AC: STAA &7E98 94AF: LDAA #&02 94B1: STAA &7F0A set rot enc clock divider 94B4: STX &90 94B6: LDX #&1384 94B9: STX &92 94BB: LDAA #&1B 94BD: STAA &80 94BF: JSR &A54C 94C2: RTS 94C3: STX &90 94C5: LDX #&1384 94C8: STX &92 94CA: LDAA #&1B 94CC: STAA &80 94CE: JMP &A54C 94D1: TIM #&20,&A7 94D4: BEQ &94DE 94D6: AIM #&DF,&A7 94D9: LDAA &AA 94DB: JMP &8370 94DE: LDAA &A5 94E0: ROLA 94E1: BCC &94E9 94E3: AIM #&7F,&A5 94E6: JMP &8178 94E9: ROLA 94EA: BCC &94F2 94EC: AIM #&BF,&A5 94EF: JMP &812F 94F2: ROLA 94F3: BCC &94FB 94F5: AIM #&DF,&A5 94F8: JMP &8331 94FB: ROLA 94FC: BCC &9504 94FE: AIM #&EF,&A5 9501: JMP &83D3 9504: RTS 9505: JSR &DEB7 9508: TBA 9509: JSR &DEB7 950C: CLRA 950D: JSR &DEB7 9510: RTS 9511: JSR &DEB7 9514: TBA 9515: JSR &DEB7 9518: LDAA #&7F 951A: JSR &DEB7 951D: RTS 951E: LDAB #&53 9520: CLRA 9521: INX 9522: STAA &00,X 9524: DECB 9525: BNE &9521 9527: RTS 9528: XGDX 9529: CLR &00EE 952C: CPX &92 952E: BCS &953C 9530: STX &96 9532: LDD &94 9534: ADDD &96 9536: XGDX 9537: INC &00EE 953A: BRA &952C 953C: RTS 953D: LDAB &7EF1 9540: CLRA 9541: STD &92 9543: COMA 9544: COMB 9545: ADDD #&0001 9548: STD &94 954A: LDAA #&25 954C: LDAB #&80 954E: JSR &9528 9551: LDAA &EE 9553: STAA &81 9555: XGDX 9556: TBA 9557: CLRB 9558: JSR &9528 955B: LDAA &81 955D: LDAB &EE 955F: STD &7EE9 9562: RTS **************************************** recall original edited tones 9563: 2A 2A 2A 2A 2A 2A 2A 20 ******* 956B: 20 20 52 45 43 41 4C 4C RECALL 9573: 20 20 20 2A 2A 2A 2A 2A ***** 957B: 2A 2A 2A *** 957E: LDAA &8E get display function 9580: STAA &7E9E store in 7E9E 9583: ORAA #&18 9585: STAA &8E set display function 9587: LDX #&9562 ptr to RECALL message 958A: STX &90 958C: LDX #&1384 958F: STX &92 9591: LDAA #&1B 9593: STAA &80 9595: JSR &A54C copy message to display 9598: LDAA &7F58 get key mode 959B: CMPA #&02 959D: BEQ &95BB br if key mode = 2 959F: BGT &95B6 br if key mode > 2 95A1: LDAA #&F9 upper voice board cmd 95A3: LDAB &7F5D get upper tone number 95A6: BSR &95C5 95A8: LDAA &80 95AA: STAA &81 95AC: LDAA #&F1 lower voice board cmd 95AE: LDAB &7F66 get lower tone number 95B1: BSR &95C5 95B3: JMP &CE8B key mode > 2 95B6: LDAB &7F66 get lower tone number 95B9: BRA &95BE key mode = 2... 95BB: LDAB &7F5D get upper tone number 95BE: LDAA #&F4 both voice boards cmd 95C0: BSR &95C5 95C2: JMP &CE8B ********** recall tone... 95C5: JSR &DEB7 tx voice board cmd 95C8: LDAA #&3B 95CA: CMPB #&32 95CC: BGE &95D9 br if tone >= 50 95CE: MUL 95CF: TIM #&80,&A4 95D2: BNE &95E1 br if internal 95D4: ADDD #&20A0 add offset to cart tone 95D7: BRA &95E4 95D9: SUBB #&32 sub 50 from tone number 95DB: MUL 95DC: ADDD #&F1A8 add offset to ROM preset 95DF: BRA &95E4 95E1: ADDD #&6060 add offset to internal tone 95E4: XGDX 95E5: LDAB #&0A 95E7: ABX move ptr to data 95E8: LDAA #&2D 95EA: STAA &87 data length 95EC: LDAB #&80 B = tone cmd 95EE: INX 95EF: CMPB #&8C 95F1: BNE &95F9 br if not cmd 8C 95F3: INCB skip 8C, 8D and 8E 95F4: INCB 95F5: INCB 95F6: INX 95F7: INX 95F8: INX 95F9: TBA 95FA: JSR &DEB7 tx tone cmd 95FD: INCB 95FE: LDAA &00,X get data 9600: ANDA #&7F force valid data 9602: CMPB #&9F 9604: BNE &9608 9606: STAA &80 store VCA MODE in &80 9608: JSR &DEB7 tx data 960B: DEC &0087 960E: BNE &95EE loop if not finished 9610: RTS ********** 9611: LDAA &7E98 9614: JSR &A650 9617: LDAA &7E9E 961A: STAA &8E 961C: LDAA &7F58 961F: CMPA #&02 9621: BEQ &9639 9623: BGT &9634 9625: LDAA #&F9 9627: LDX #&7F80 962A: JSR &963E 962D: LDAA #&F1 962F: LDX #&1700 9632: BRA &963E 9634: LDX #&1700 9637: BRA &963C 9639: LDX #&7F80 963C: LDAA #&F4 963E: STAA &B0 voice board ptr = both 9640: JSR &D023 9643: JSR &8A90 9646: RTS 9647: AIM #&F7,&08 964A: JSR &CBD7 964D: LDAA #&FA 964F: JSR &DEB7 9652: JSR &9673 9655: LDAA #&01 9657: STAA &7EEB 965A: OIM #&08,&08 965D: RTS 965E: AIM #&F7,&08 9661: JSR &CBD7 9664: LDAA #&FC 9666: JSR &DEB7 9669: JSR &9673 966C: AIM #&F7,&A5 966F: OIM #&08,&08 9672: RTS 9673: TIM #&04,&11 9676: BNE &9673 9678: LDAA #&7D 967A: DECA 967B: BNE &967A 967D: RTS 967E: 00 00 00 ... ********** reset sysex status 9681: LDAB &A2 get sysex status 9683: ANDB #&1F reset WSF, RQF and DatOK 9685: STAB &A2 store status 9687: LDAB &A3 get sysex status 9689: ANDB #&07 reset ERR,EOF,RJC,RXErr 968B: STAB &A3 store sysex status 968D: RTS ********** set whole display to flash 968E: LDAA #&40 9690: LDX #&13C0 9693: LDAB #&10 9695: STAA &00,X 9697: INX 9698: DECB 9699: BNE &9695 969B: JSR &B632 write display mem to fip 969E: RTS ********** 969F: TIM #&80,&A3 96A2: BNE &96B3 96A4: TIM #&40,&A3 96A7: BNE &96B3 96A9: JSR &FE5C 96AC: LDAA &174E 96AF: BITA #&08 96B1: BEQ &969F 96B3: RTS 96B4: AIM #&FB,&A3 96B7: LDX &7EE0 96BA: LDAB #&80 96BC: STAB &87 96BE: CLR &0082 96C1: LDAB &00,X 96C3: CLRA 96C4: ASLD 96C5: ASLD 96C6: ASLD 96C7: ASLD 96C8: TAB 96C9: JSR &DEB7 96CC: LDAA &00,X 96CE: ANDA #&0F 96D0: JSR &DEB7 96D3: ABA 96D4: ADDA &82 96D6: STAA &82 96D8: PSHX 96D9: JSR &FE5C 96DC: PULX 96DD: LDAA &174E 96E0: BITA #&08 96E2: BNE &96FE 96E4: INX 96E5: XGDX 96E6: LDX #&0FA0 96E9: DEX 96EA: BNE &96E9 96EC: XGDX 96ED: DEC &0087 96F0: BNE &96C1 96F2: CLRA 96F3: SUBA &82 96F5: ANDA #&7F 96F7: JSR &DEB7 96FA: STX &7EE0 96FD: RTS 96FE: OIM #&04,&A3 9701: RTS 9702: AIM #&7F,&A3 9705: LDAB #&45 9707: BRA &9716 9709: LDAB #&4E 970B: JSR &9716 970E: BRA &977B ***** send sysex ACK 9710: LDAB #&43 9712: BRA &9716 ***** send sysex RJC 9714: LDAB #&4F 9716: JSR &CBEB send sysex header - opcode in B 9719: LDAA #&F7 971B: JSR &DEB7 971E: RTS ***** 971F: LDAB #&41 9721: BRA &9725 9723: LDAB #&40 9725: JSR &CBEB 9728: JSR &9C11 972B: TIM #&08,&9A 972E: BNE &9739 9730: LDAA #&64 9732: LDAB #&1C 9734: LDX #&4000 9737: BRA &9740 9739: LDAA #&16 973B: LDAB #&6A 973D: LDX #&2800 9740: STX &7EE7 9743: AIM #&7F,&A3 9746: JSR &DEB7 9749: TBA 974A: JSR &DEB7 974D: LDAA #&F7 974F: JSR &DEB7 9752: RTS 9753: JSR &D259 9756: TIM #&08,&9A 9759: BEQ &9760 975B: LDAA #&06 975D: JMP &9B81 9760: JSR &9681 9763: LDAA &7E98 9766: CMPA #&03 9768: BNE &976D 976A: JMP &B5E6 976D: JSR &9723 9770: JSR &969F 9773: LDAA &A3 9775: ROLA 9776: BCS &9780 9778: JSR &9714 977B: LDAA #&17 977D: JMP &9B81 9780: JSR &968E 9783: AIM #&7F,&A3 9786: LDX #&2000 9789: STX &7EE0 978C: LDAB #&42 978E: JSR &CBEB 9791: AIM #&7F,&A3 9794: JSR &96B4 9797: TIM #&04,&A3 979A: BNE &9778 979C: TIM #&80,&A3 979F: BNE &97AB 97A1: JSR &FE5C 97A4: LDAA &174E 97A7: BITA #&08 97A9: BEQ &979C 97AB: LDAA &A3 97AD: ROLA 97AE: BCC &9778 97B0: LDX &7EE0 97B3: CPX &7EE7 97B6: BCS &978C 97B8: JSR &9702 97BB: JSR &969F 97BE: LDAA #&03 97C0: STAA &BE 97C2: JSR &EA4E 97C5: JMP &AB3B 97C8: JSR &D21D 97CB: TIM #&08,&99 97CE: BEQ &97D3 97D0: JMP &9966 97D3: LDX #&5FFF 97D6: STX &92 97D8: LDX #&7F2A 97DB: STX &90 97DD: LDAA #&14 97DF: STAA &87 97E1: LDX &90 97E3: INX 97E4: STX &90 97E6: LDAA &00,X 97E8: LDX &92 97EA: INX 97EB: STX &92 97ED: STAA &00,X 97EF: CMPA &00,X 97F1: BEQ &97F6 97F3: JMP &D215 97F6: DEC &0087 97F9: BNE &97E1 97FB: LDAA #&14 97FD: STAA &BE 97FF: JSR &EA4E 9802: RTS 9803: LDAA &1746 9806: BITA #&02 9808: BNE &9832 980A: LDAA &174E 980D: BITA #&04 980F: BEQ &9825 9811: LDAA #&60 9813: LDAB #&00 9815: STAB &BE 9817: LDAB &7E9E 981A: BNE &981F 981C: OIM #&07,&A2 981F: STAA &8E 9821: JSR &EC7E 9824: RTS 9825: LDAA &174E 9828: BITA #&10 982A: BEQ &9832 982C: LDAA #&70 982E: LDAB #&01 9830: BRA &9815 9832: LDAA &174E 9835: BITA #&02 9837: BEQ &9847 9839: JSR &983F 983C: JMP &AB3B 983F: LDAA #&05 9841: STAA &BE 9843: JSR &EA4E 9846: RTS 9847: LDAA &174C 984A: RORA 984B: BCC &9856 984D: LDAA #&01 984F: STAA &A2 9851: LDAA #&E0 9853: JMP &AA26 9856: RORA 9857: BCC &9862 9859: LDAA #&02 985B: STAA &A2 985D: LDAA #&80 985F: JMP &AA26 9862: RORA 9863: BCC &98A2 9865: LDAA #&04 9867: STAA &A2 9869: LDAA #&A0 986B: JMP &AA26 986E: LDAA &174E 9871: BITA #&08 9873: BEQ &9883 9875: LDAA &7E98 9878: BEQ &987D 987A: JMP &9753 987D: JSR &97C8 9880: JMP &AB3B 9883: JSR &8762 9886: CMPA #&7F 9888: BEQ &989D 988A: ADDA &7E98 988D: ANDA #&03 988F: STAA &7E98 9892: CMPA #&02 9894: BLT &989E 9896: ADDA #&08 9898: STAA &BE 989A: JSR &EA4E 989D: RTS 989E: LDAA #&12 98A0: BRA &9898 98A2: LDAA &8E 98A4: BITA #&10 98A6: BEQ &98EF 98A8: BITA #&08 98AA: BNE &986E 98AC: JMP &9AAF 98AF: LDAA &174E 98B2: BITA #&08 98B4: BEQ &98EE 98B6: TIM #&80,&A4 98B9: BNE &98C0 98BB: JSR &9941 98BE: BRA &98C3 98C0: JSR &996E 98C3: LDAA &7F5D 98C6: STAA &7E9F 98C9: LDX #&7F80 98CC: BSR &98DC 98CE: LDAA &7F66 98D1: STAA &7E9F 98D4: LDX #&1700 98D7: BSR &98DC 98D9: JMP &AB3B 98DC: STX &7F11 98DF: CMPA #&33 98E1: BCS &98EB 98E3: LDAA #&0F 98E5: STAA &BE 98E7: JSR &EA4E 98EA: RTS 98EB: JSR &D172 98EE: RTS 98EF: BITA #&08 98F1: BEQ &98F5 98F3: BRA &98AF 98F5: JSR &872B 98F8: CMPB #&08 98FA: BGE &9904 98FC: TBA 98FD: LDAB &7F16 9900: JSR &AA82 9903: RTS 9904: LDAA &1749 9907: JSR &8737 990A: CMPB #&08 990C: BGE &9913 990E: LDAA &7F15 9911: BRA &9900 9913: LDAA &174F 9916: BITA #&04 9918: BEQ &991D 991A: JMP &AA91 991D: LDAA &1757 9920: BITA #&04 9922: BNE &991A 9924: LDAA &174E 9927: BITA #&08 9929: BEQ &996D 992B: OIM #&08,&A0 992E: LDAA &1747 9931: BITA #&04 9933: BNE &993B 9935: JSR &9941 9938: JMP &AB3B 993B: JSR &996E 993E: JMP &AB3B 9941: JSR &D259 9944: TIM #&08,&9A 9947: BEQ &994D 9949: LDAA #&06 994B: BRA &9968 994D: JSR &D23B 9950: TIM #&08,&99 9953: BNE &9966 9955: JSR &D278 9958: TSTA 9959: BEQ &9961 995B: JSR &EA4E 995E: JMP &AB3B 9961: LDX #&2C25 9964: BRA &9979 9966: LDAA #&07 9968: STAA &BE 996A: JSR &EA4E 996D: RTS 996E: LDX #&6BE5 9971: JSR &D21D 9974: TIM #&08,&99 9977: BNE &9966 write current patch to memory 9979: STX &92 997B: LDAA &7F15 997E: LDAB #&08 9980: MUL 9981: ADDB &7F16 9984: LDAA #&30 9986: MUL 9987: ADDD &92 9989: STD &92 998B: LDX #&7F3F 998E: STX &90 9990: LDAA #&12 9992: STAA &87 9994: LDX &90 9996: INX 9997: STX &90 9999: LDAA &00,X 999B: LDX &92 999D: INX 999E: STX &92 99A0: STAA &00,X 99A2: CMPA &00,X 99A4: BEQ &99A9 99A6: JMP &D215 99A9: DEC &0087 99AC: BNE &9994 99AE: LDAA &7F5C 99B1: ROLA 99B2: LDAB &7F57 99B5: ROLB 99B6: ROLB 99B7: RORA 99B8: STAA &09,X 99BA: LDAA &7F52 99BD: ROLA 99BE: ROLB 99BF: RORA 99C0: STAA &01,X 99C2: LDAA &7F55 99C5: ROLA 99C6: LDAB &7F58 99C9: RORB 99CA: RORA 99CB: STAA &04,X 99CD: LDAA &7F54 99D0: ROLA 99D1: RORB 99D2: RORA 99D3: STAA &03,X 99D5: LDAA &7F59 99D8: ROLA 99D9: LDAB &7F79 99DC: RORB 99DD: RORA 99DE: STAA &06,X 99E0: LDAA &7F56 99E3: ROLA 99E4: RORB 99E5: RORA 99E6: STAA &05,X 99E8: LDAA &7F5B 99EB: ROLA 99EC: LDAB &7F7B 99EF: RORB 99F0: RORA 99F1: STAA &08,X 99F3: LDAA &7F79 99F6: ANDA #&07 99F8: STAA &1D,X 99FA: LDAA &7F5A 99FD: ROLA 99FE: RORB 99FF: RORA 9A00: STAA &07,X 9A02: LDAA &7F53 9A05: STAA &02,X 9A07: LDAA &7F5D 9A0A: ROLA 9A0B: LDAB &7F61 9A0E: RORB 9A0F: RORA 9A10: STAA &0A,X 9A12: LDAA &7F5E 9A15: STAA &0B,X 9A17: LDAA &7F60 9A1A: STAA &0C,X 9A1C: LDAA &7F62 9A1F: ROLA 9A20: LDAB &7F63 9A23: RORB 9A24: RORA 9A25: STAA &0D,X 9A27: LDAA &7F64 9A2A: ANDA #&01 9A2C: STAA &0E,X 9A2E: LDAA &7F66 9A31: ROLA 9A32: LDAB &7F6A 9A35: RORB 9A36: RORA 9A37: STAA &0F,X 9A39: LDAA &7F67 9A3C: STAA &10,X 9A3E: LDAA &7F69 9A41: STAA &11,X 9A43: LDAA &7F6B 9A46: ROLA 9A47: LDAB &7F6C 9A4A: RORB 9A4B: RORA 9A4C: STAA &12,X 9A4E: LDAA &7F6D 9A51: ANDA #&01 9A53: STAA &13,X 9A55: LDAA &7F71 9A58: ROLA 9A59: LDAB &7F70 9A5C: RORB 9A5D: RORA 9A5E: STAA &15,X 9A60: LDAA &7F6F 9A63: ROLA 9A64: RORB 9A65: RORA 9A66: STAA &14,X 9A68: LDAA &7F5F 9A6B: CLRB 9A6C: LSRD 9A6D: LSRD 9A6E: LSRD 9A6F: LDAA &7F73 9A72: ANDA #&1F 9A74: ABA 9A75: STAA &16,X 9A77: LDAA &7F68 9A7A: CLRB 9A7B: LSRD 9A7C: LSRD 9A7D: LSRD 9A7E: LDAA &7F74 9A81: ANDA #&1F 9A83: ABA 9A84: STAA &17,X 9A86: LDAA &7F7A 9A89: ROLA 9A8A: LDAB &7F72 9A8D: RORB 9A8E: RORA 9A8F: STAA &1C,X 9A91: LDAA &7F79 9A94: STAA &1D,X 9A96: LDAA #&04 9A98: STAA &80 9A9A: LDAB #&17 9A9C: ABX 9A9D: STX &92 9A9F: LDX #&7F74 9AA2: STX &90 9AA4: JSR &A54C 9AA7: LDAA #&01 9AA9: STAA &BE 9AAB: JSR &EA4E 9AAE: RTS 9AAF: LDAA &8E 9AB1: BITA #&04 9AB3: BNE &9B16 9AB5: LDAA &174F 9AB8: BITA #&04 9ABA: BEQ &9ABF 9ABC: JMP &AA91 9ABF: LDAA &1757 9AC2: BNE &9ABC 9AC4: JSR &86E4 9AC7: CMPA #&7F 9AC9: BEQ &9AFE 9ACB: TSTA 9ACC: BEQ &9AFE 9ACE: CMPA #&FF 9AD0: BEQ &9AFF 9AD2: STAA &7E95 9AD5: LDX #&1398 9AD8: STAA &00,X 9ADA: LDAA #&5F 9ADC: STAA &01,X 9ADE: LDAA #&20 9AE0: STAA &02,X 9AE2: STAA &04,X 9AE4: STAA &05,X 9AE6: STAA &06,X 9AE8: LDX #&7E95 9AEB: STAA &01,X 9AED: STAA &02,X 9AEF: INX 9AF0: STX &7E93 9AF3: LDAA #&19 9AF5: STAA &7E9A 9AF8: LDAA &8E 9AFA: ORAA #&04 9AFC: STAA &8E 9AFE: RTS 9AFF: LDAA &7E9F 9B02: CMPA #&33 9B04: BCS &9B10 9B06: LDAA #&0F 9B08: STAA &BE 9B0A: JSR &EA4E 9B0D: JMP &AAAD 9B10: JSR &D172 9B13: JMP &AB3B 9B16: JSR &8682 9B19: CMPA #&7F 9B1B: BEQ &9AFE 9B1D: LDAA &7E9C 9B20: STAA &7E9F 9B23: LDAA &8E 9B25: ANDA #&FB 9B27: STAA &8E 9B29: LDX #&139C 9B2C: LDAA #&4F 9B2E: STAA &00,X 9B30: LDAA #&4B 9B32: STAA &01,X 9B34: LDAA #&3F 9B36: STAA &02,X 9B38: RTS 9B39: LDAA &174E 9B3C: BITA #&08 9B3E: BNE &9B65 9B40: LDAA &174E 9B43: BITA #&02 9B45: BEQ &9B4D 9B47: JSR &983F 9B4A: JMP &AB3B 9B4D: LDAA &174C 9B50: RORA 9B51: BCC &9B57 9B53: EIM #&01,&A2 toggle patch edit flag 9B56: RTS 9B57: RORA 9B58: BCC &9B5E 9B5A: EIM #&02,&A2 toggle tone edit flag 9B5D: RTS 9B5E: RORA 9B5F: BCC &9B64 9B61: EIM #&04,&A2 toggle midi edit flag 9B64: RTS 9B65: JSR &D259 9B68: TIM #&08,&9A 9B6B: BEQ &9B71 9B6D: LDAA #&06 9B6F: BRA &9B81 9B71: LDAA &8E 9B73: BITA #&10 9B75: BEQ &9BCB 9B77: JSR &D23B 9B7A: TIM #&08,&99 9B7D: BEQ &9B89 9B7F: LDAA #&07 9B81: STAA &BE 9B83: JSR &EA4E 9B86: JMP &AB3B 9B89: TIM #&01,&A2 test patch edit flag 9B8C: BEQ &9BA0 br if not patch edit 9B8E: JSR &9C65 9B91: TIM #&08,&9A 9B94: BEQ &9B9A 9B96: LDAA #&15 9B98: BRA &9B81 9B9A: OIM #&01,&9D 9B9D: JSR &D0E1 9BA0: TIM #&02,&A2 test tone edit flag 9BA3: BEQ &9BB8 br if not tone edit 9BA5: JSR &9C65 9BA8: TIM #&08,&9A 9BAB: BEQ &9BB2 9BAD: OIM #&01,&A3 9BB0: BRA &9BB5 9BB2: AIM #&01,&A3 9BB5: JSR &D109 9BB8: TIM #&04,&A2 test midi edit flag 9BBB: BEQ &9BC8 br if not midi edit 9BBD: LDX #&206F 9BC0: STX &92 9BC2: LDX #&5FFF 9BC5: JSR &97DB 9BC8: JMP &AB3B 9BCB: JSR &D21D 9BCE: TIM #&08,&99 9BD1: BNE &9B7F 9BD3: TIM #&01,&A2 9BD6: BEQ &9BE3 br if not patch edit 9BD8: JSR &9C11 9BDB: TIM #&08,&9A 9BDE: BNE &9B96 9BE0: JSR &D06C 9BE3: TIM #&02,&A2 9BE6: BEQ &9BB8 br if not tone edit 9BE8: JSR &9C11 9BEB: TIM #&08,&9A 9BEE: BEQ &9BF5 9BF0: OIM #&01,&A3 9BF3: BRA &9BF8 9BF5: AIM #&01,&A3 9BF8: JSR &D081 9BFB: TIM #&04,&A2 br if not midi edit 9BFE: BEQ &9C0E 9C00: LDX #&5FFF 9C03: STX &92 9C05: LDX #&206F 9C08: JSR &97DB 9C0B: JSR &CE2B 9C0E: JMP &AB3B ********** test for M16C preset result => &9A bit 3 9C11: PSHX 9C12: LDX #&2000 9C15: STX &90 9C17: LDX #&2800 9C1A: STX &92 9C1C: LDX #&3000 9C1F: STX &94 9C21: LDX #&3800 9C24: STX &96 9C26: CLRB 9C27: LDX &90 9C29: LDAA &00,X 9C2B: INX 9C2C: STX &90 9C2E: STAA &80 9C30: LDX &92 9C32: LDAA &00,X 9C34: INX 9C35: STX &92 9C37: CMPA &80 9C39: BNE &9C52 9C3B: LDX &94 9C3D: LDAA &00,X 9C3F: INX 9C40: STX &94 9C42: CMPA &80 9C44: BNE &9C52 9C46: LDX &96 9C48: LDAA &00,X 9C4A: INX 9C4B: STX &96 9C4D: CMPA &80 9C4F: BNE &9C52 9C51: INCB 9C52: LDX &90 9C54: CPX #&207F 9C57: BNE &9C29 9C59: AIM #&F7,&9A 9C5C: CMPB #&7F 9C5E: BNE &9C63 9C60: OIM #&08,&9A 9C63: PULX 9C64: RTS ********** 9C65: JSR &9C11 9C68: TIM #&08,&9A 9C6B: BEQ &9C81 9C6D: LDAA #&AA 9C6F: STAA &209F 9C72: LDAA #&55 9C74: STAA &209F 9C77: LDAA &289F 9C7A: CMPA #&55 9C7C: BEQ &9C81 9C7E: AIM #&F7,&9A 9C81: RTS 9C82: LDAA &8E 9C84: CMPA #&B0 9C86: BNE &9C8B 9C88: JMP &92C4 9C8B: LDAA &174C 9C8E: BITA #&04 9C90: BNE &9C9D 9C92: BITA #&02 9C94: BNE &9CA0 9C96: BITA #&01 9C98: BEQ &9CA3 9C9A: JMP &A406 9C9D: JMP &AB3B 9CA0: JMP &A641 9CA3: LDAA &8E 9CA5: BITA #&02 9CA7: BEQ &9CAC 9CA9: JMP &AF99 9CAC: LDAA &174E 9CAF: BITA #&02 9CB1: BEQ &9CB8 9CB3: LDAA &8E 9CB5: JMP &AA26 9CB8: LDAA &174D 9CBB: RORA 9CBC: BCC &9CC1 9CBE: JMP &A6D1 9CC1: RORA 9CC2: BCC &9CC7 9CC4: JMP &A6B5 9CC7: JSR &86E4 9CCA: ANDA #&7F 9CCC: CMPA #&04 9CCE: BGE &9CE9 9CD0: TSTA 9CD1: BEQ &9CE9 9CD3: STAA &7E95 9CD6: LDX #&1380 9CD9: STAA &05,X 9CDB: LDAA #&20 9CDD: STAA &06,X 9CDF: LDAA &8E 9CE1: STAA &7E9E 9CE4: ORAA #&02 9CE6: STAA &8E 9CE8: RTS 9CE9: JSR &8762 9CEC: LDAB &7E98 9CEF: CMPA #&7F 9CF1: BEQ &9D16 9CF3: STAA &7E99 9CF6: LDAA &8E 9CF8: CMPA #&A0 9CFA: BEQ &9CFE 9CFC: BRA &9D17 9CFE: LDAA &7E99 9D01: CMPA #&01 9D03: BNE &9D0C 9D05: CMPB #&13 9D07: BEQ &9D16 9D09: INCB 9D0A: BRA &9D10 9D0C: TSTB 9D0D: BEQ &9D16 9D0F: DECB 9D10: STAB &7E98 9D13: JMP &A6DD 9D16: RTS 9D17: JSR &BCCC 9D1A: JSR &BD58 9D1D: LDX #&7F2B 9D20: LDAB &7E98 9D23: ABX 9D24: LDAA &00,X 9D26: LDAB &D3 9D28: CMPB #&20 9D2A: BEQ &9D3F 9D2C: CMPB #&23 9D2E: BEQ &9D55 9D30: CMPB #&26 9D32: BEQ &9D65 9D34: ANDA #&01 9D36: EORA #&01 9D38: STAA &00,X 9D3A: LDAB &D3 9D3C: JMP &A717 9D3F: ANDA #&03 9D41: LDAB &7E99 9D44: CMPB #&01 9D46: BNE &9D4F 9D48: CMPA #&03 9D4A: BEQ &9D16 9D4C: INCA 9D4D: BRA &9D38 9D4F: TSTA 9D50: BEQ &9D16 9D52: DECA 9D53: BRA &9D38 9D55: LDAB &7E99 9D58: ABA 9D59: ANDA #&0F 9D5B: JSR &9D38 9D5E: JSR &8D31 9D61: JSR &8D21 9D64: RTS 9D65: ANDA #&1F 9D67: LDAB &7E99 9D6A: CMPB #&01 9D6C: BNE &9D77 9D6E: CMPA #&10 9D70: BLT &9D74 9D72: LDAA #&FF 9D74: INCA 9D75: BRA &9D38 9D77: TSTA 9D78: BNE &9D7C 9D7A: LDAA #&11 9D7C: DECA 9D7D: BRA &9D38 9D7F: ROLA 9D80: BCC &9D85 9D82: JMP &9E89 9D85: LDAA &174E 9D88: RORA 9D89: BCC &9DA6 9D8B: LDAA &7E9E 9D8E: STAA &8E 9D90: ROLA 9D91: BCS &9D96 9D93: JMP &AB3B 9D96: ROLA 9D97: BCS &9DA2 9D99: ROLA 9D9A: BCS &9D9F 9D9C: JMP &A641 9D9F: JMP &A6BA 9DA2: JMP &A406 9DA5: RTS 9DA6: RORA 9DA7: BCC &9DE4 9DA9: JSR &D21D 9DAC: TIM #&08,&99 9DAF: BEQ &9DB7 9DB1: JSR &9966 9DB4: JMP &AB3B 9DB7: LDAA &1771 get current master tune 9DBA: STAA &604B store in NVRAM 9DBD: LDAB #&11 message - 'WRITTEN TUNE' 9DBF: CMPA &604B 9DC2: BEQ &9DC6 check for memory OK 9DC4: LDAB #&08 message - 'MEMORY ERR' 9DC6: STAB &BE 9DC8: JSR &EA4E display message 9DCB: JMP &AB3B 9DCE: 0D 18 21 2C 36 40 4A 54 ..!,6@JT 9DD6: 5E 67 81 ^g. 9DD9: 06 07 08 09 00 ..... 9DDE: 01 02 03 04 05 06 ...... 9DE4: LDAA #&01 9DE6: STAA &7F0A set rot enc clock divider 9DE9: JSR &8762 9DEC: CMPA #&7F 9DEE: BEQ &9E60 9DF0: LDAB &1771 9DF3: ANDA #&7F 9DF5: CMPA #&01 9DF7: BEQ &9E00 9DF9: CMPB #&00 9DFB: BEQ &9E5F 9DFD: DECB 9DFE: BRA &9E05 9E00: CMPB #&7F 9E02: BEQ &9E5F 9E04: INCB 9E05: STAB &1771 9E08: STAB &80 9E0A: TBA 9E0B: LDX #&9DCE 9E0E: CLRB 9E0F: STAB &87 9E11: LDAB &00,X 9E13: CBA 9E14: BCS &9E1C 9E16: INX 9E17: INC &0087 9E1A: BRA &9E11 9E1C: LDAB &87 9E1E: CMPB #&00 9E20: BEQ &9E23 9E22: DECB 9E23: LDX #&9DD9 9E26: ABX 9E27: LDAB &00,X 9E29: ANDB #&0F 9E2B: LDX #&9E61 9E2E: ASLB 9E2F: ASLB 9E30: ABX 9E31: LDAA &00,X 9E33: STAA &81 9E35: LDAB &01,X 9E37: LDAA &02,X 9E39: LDX #&1380 9E3C: STAA &1D,X 9E3E: STAB &1C,X 9E40: LDAA &81 9E42: STAA &1B,X 9E44: LDAA #&F4 9E46: STAA &B0 voice board ptr = both 9E48: JSR &CBD1 9E4B: LDAA #&B4 9E4D: JSR &DEB7 9E50: LDAA &80 9E52: JSR &DEB7 9E55: LDAA #&BE 9E57: JSR &DEB7 9E5A: LDAA &80 9E5C: JSR &DEB7 9E5F: RTS 9E60: RTS 9E61: 34 34 31 36 34 34 32 40 4416442@ 9E69: 34 34 33 4A 34 34 34 54 443J444T 9E71: 34 34 35 5E 34 34 36 67 445^446g 9E79: 34 33 37 0D 34 33 38 18 437.438. 9E81: 34 33 39 21 34 34 30 2C 439!440, 9E89: ROLA 9E8A: BCC &9E8F 9E8C: JMP &9F70 9E8F: JSR &872B 9E92: CMPB #&08 9E94: BGE &9E9B 9E96: STAB &7E87 9E99: BRA &9EB1 9E9B: LDAA &1749 get row 1 new presses 9E9E: BEQ &9EC2 br if no keys 9EA0: LDAB &1741 get current row 1 9EA3: COMB 9EA4: CBA 9EA5: BNE &9EC2 branch if not same as new 9EA7: JSR &8737 get number of key pressed 9EAA: CMPB #&08 9EAC: BGE &9EC2 br if no key 9EAE: STAB &7E88 store in patch number 9EB1: CLR &008E display function = patch name 9EB4: LDAA #&20 9EB6: LDX #&1380 9EB9: STAA &17,X 9EBB: STAA &1B,X 9EBD: STAA &1C,X blank patch number 9EBF: JMP &9FEF load patch 9EC2: LDAB &8E 9EC4: LDAA &174C get new keys row 4 9EC7: ROLA 9EC8: BCC &9ECD br if not 'C2' 9ECA: JMP &A856 9ECD: ROLA 9ECE: BCC &9ED3 br if not 'C1' 9ED0: JMP &A85D 9ED3: ROLA 9ED4: BCC &9ED9 br if not 'PEDAL SWITCH' 9ED6: JMP &A7C5 9ED9: LDAA &174E get new keys row 6 9EDC: BITA #&02 9EDE: BEQ &9F1B br if not 'WRITE' 9EE0: JSR &D21D 9EE3: TIM #&08,&99 9EE6: BEQ &9EEC 9EE8: LDAA #&07 9EEA: BRA &9F13 9EEC: LDAA &7F01 9EEF: STAA &77F1 9EF2: CMPA &77F1 9EF5: BNE &9F11 9EF7: LDAA &7F02 9EFA: STAA &77F2 9EFD: CMPA &77F2 9F00: BNE &9F11 9F02: LDAA &7F00 9F05: STAA &77F0 9F08: CMPA &77F0 9F0B: BNE &9F11 9F0D: LDAA #&0E 9F0F: BRA &9F13 9F11: LDAA #&08 9F13: STAA &BE 9F15: JSR &EA4E 9F18: JMP &AB3B 9F1B: JSR &8762 9F1E: CMPA #&7F 9F20: BEQ &9F2F 9F22: BITB #&04 9F24: BNE &9F37 9F26: BITB #&02 9F28: BNE &9F4F 9F2A: LDX #&7F02 9F2D: BRA &9F52 9F2F: LDAA &174E 9F32: BITA #&08 9F34: BNE &9F18 9F36: RTS 9F37: LDAB &7F00 9F3A: CMPA #&01 9F3C: BNE &9F45 9F3E: CMPB #&04 9F40: BEQ &9F2F 9F42: INCB 9F43: BRA &9F49 9F45: TSTB 9F46: BEQ &9F2F 9F48: DECB 9F49: STAB &7F00 9F4C: JMP &A7D6 9F4F: LDX #&7F01 9F52: LDAB &00,X 9F54: CMPA #&01 9F56: BNE &9F5F 9F58: CMPB #&04 9F5A: BEQ &9F2F 9F5C: INCB 9F5D: BRA &9F63 9F5F: TSTB 9F60: BEQ &9F2F 9F62: DECB 9F63: STAB &00,X 9F65: CPX #&7F01 9F68: BEQ &9F6D 9F6A: JMP &A84A 9F6D: JMP &A86B 9F70: LDAA &174E 9F73: BITA #&08 9F75: BEQ &9F7A 9F77: JMP &AB3B 9F7A: JSR &872B 9F7D: CMPB #&08 9F7F: BGE &9F89 9F81: CMPB &7E87 9F84: BNE &9FA4 9F86: JMP &AB3B 9F89: LDAA &1749 9F8C: BEQ &9FA4 9F8E: LDAB &1741 9F91: COMB 9F92: CBA 9F93: BNE &9FA4 9F95: JSR &8737 9F98: CMPB #&08 9F9A: BGE &9FA4 9F9C: CMPB &7E88 9F9F: BNE &9FA4 9FA1: JMP &AB3B 9FA4: LDAA &174B 9FA7: RORA 9FA8: BCS &9FCB 9FAA: RORA 9FAB: BCS &9FDE 9FAD: RORA 9FAE: BCC &9FC8 9FB0: LDAA &7F72 9FB3: BNE &9FBD 9FB5: JSR &8C98 9FB8: LDAA #&D8 9FBA: STAA &8E 9FBC: RTS 9FBD: CLRA 9FBE: STAA &7F72 9FC1: OIM #&04,&99 9FC4: JSR &C7E7 9FC7: RTS 9FC8: JMP &88EF 9FCB: LDAA &7E98 9FCE: CMPA #&1E 9FD0: BEQ &9FE8 9FD2: BLT &9FD7 9FD4: DECA 9FD5: BRA &9FD8 9FD7: INCA 9FD8: STAA &7E98 9FDB: JMP &A418 9FDE: LDAA &7E98 9FE1: CMPA #&1F 9FE3: BNE &9FEB 9FE5: JMP &AB3B 9FE8: JMP &A9F8 9FEB: LDAA #&1F 9FED: BRA &9FD8 **************************************** load patch 9FEF: LDAA &1745 9FF2: CMPA #&FF 9FF4: BEQ &9FF7 no row 5 keys pressed ? 9FF6: RTS silence ! 9FF7: LDAA #&F4 9FF9: JSR &DEB7 tx #&F4 common voice message 9FFC: LDAA #&9E 9FFE: JSR &DEB7 tx #&9E A001: CLRA A002: JSR &DEB7 tx #0 vca level = 0 A005: LDAA #&A6 A007: JSR &DEB7 tx #&A6 A00A: CLRA A00B: JSR &DEB7 tx #0 env1 sus = 0 A00E: LDAA #&A7 A010: JSR &DEB7 tx #&A7 A013: CLRA A014: JSR &DEB7 tx #0 env1 rel = 0 A017: LDAA #&AB A019: JSR &DEB7 tx #&AB A01C: CLRA A01D: JSR &DEB7 tx #0 env2 sus = 0 A020: LDAA #&AC A022: JSR &DEB7 tx #&AC A025: CLRA A026: JSR &DEB7 tx #0 env2 rel = 0 ...all quiet now A029: JSR &BCCC A02C: JSR &BD58 A02F: LDAA &A1 A031: ANDA #&F8 A033: STAA &A1 reset Patch modified bit A035: CLR &00FF A038: TIM #&04,&9D A03B: BEQ &A044 A03D: TIM #&80,&A4 test for int/cart A040: BEQ &A068 br if cart A042: BRA &A072 br if internal A044: LDAA &1747 get row 7 keys A047: BITA #&04 A049: BNE &A072 br if 'CART' mem select not pressed A04B: JSR &D259 get cart status A04E: TIM #&08,&9A A051: BEQ &A068 br if cart not present A053: LDAA #&06 A055: STAA &BE A057: JSR &EA4E display 'INSERT CARTRIDGE' A05A: LDAA &1768 A05D: STAA &7E87 A060: LDAA &1769 A063: STAA &7E88 A066: BRA &A072 cart selected A068: AIM #&7F,&A4 reset &A4 bit 7 A06B: LDX #&2C25 offset to cart patches A06E: LDAB #&43 B = 'C' A070: BRA &A07A internal selected A072: OIM #&80,&A4 set &A4 bit 7 A075: LDX #&6BE5 offset to int patches A078: LDAB #&49 B = 'I' ... A07A: STAB &1380 store 'C' or 'I' in display A07D: LDAB #&2D A07F: STAB &1381 store '-' in display A082: LDAB &7E88 get patch bank A085: STAB &1769 A088: LDAA &7E87 get patch number A08B: STAA &1768 A08E: LDAB #&08 A090: MUL A091: ADDB &7E88 A094: STAB &AA &AA = (&7E87 * 8) + &7E88 ie patch number A096: LDAA #&30 A098: MUL multiply patch number by #&30 (48) A099: STX &90 A09B: ADDD &90 A09D: STD &90 &90 = pointer to selected patch load selected patch into current patch copy patch name to &7F40 to &7F51 A09F: LDX #&7F3F A0A2: STX &92 A0A4: LDAA #&12 A0A6: STAA &87 A0A8: LDX &90 A0AA: INX A0AB: STX &90 A0AD: LDAA &00,X A0AF: ANDA #&7F A0B1: LDX &92 A0B3: INX A0B4: STX &92 A0B6: STAA &00,X A0B8: DEC &0087 A0BB: BNE &A0A8 A0BD: LDX &90 X now points to patch data - 1 packed patch data &01,X to &1C,X A0BF: LDAA &01,X A0C1: CLRB A0C2: ROLA A0C3: RORB A0C4: LSRA A0C5: STAA &7F52 set current U/L BALANCE A0C8: LDAA &09,X A0CA: ROLA A0CB: RORB A0CC: LSRB A0CD: STAB &7F57 set current BENDER RANGE A0D0: LSRA A0D1: STAA &7F5C set current AFTER TOUCH VOL A0D4: LDAA &02,X A0D6: STAA &7F53 set current DUAL DETUNE A0D9: LDAA &03,X A0DB: CLRB A0DC: ROLA A0DD: ROLB A0DE: LSRA A0DF: STAA &7F54 set current UPPER SPLIT A0E2: LDAA &04,X A0E4: ROLA A0E5: ROLB A0E6: STAB &7F58 set current KEY MODE A0E9: LSRA A0EA: STAA &7F55 set current LOWER SPLIT A0ED: LDAA &05,X A0EF: CLRB A0F0: ROLA A0F1: ROLB A0F2: LSRA A0F3: STAA &7F56 set current PORTAMENTO TIME A0F6: LDAA &06,X A0F8: ROLA A0F9: ROLB A0FA: LSRA A0FB: STAA &7F59 set current TOTAL VOLUME A0FE: LDAA &07,X A100: CLRB A101: ROLA A102: ROLB A103: LSRA A104: STAA &7F5A set current AFTER TOUCH VIB A107: LDAA &08,X A109: ROLA A10A: ROLB A10B: LSRA A10C: STAA &7F5B set current AFTER TOUCH BRI A10F: STAB &7F7B set current ??? A112: LDAA &1D,X A114: ANDA #&07 A116: STAA &7F79 set current MIDI SEND KEYMODE A119: LDAA &0A,X A11B: CLRB A11C: ROLA A11D: ROLB A11E: LSRA A11F: STAA &7F5D set current UPPER TONE A122: STAB &7F61 set current UPPER HOLD A125: LDAA &0B,X A127: STAA &7F5E set current UP CHROMATIC SHIFT A12A: LDAA &0C,X A12C: STAA &7F60 set current UPPER UNISON DETUNE A12F: LDAA &0D,X A131: CLRB A132: ROLA A133: ROLB A134: LSRA A135: STAA &7F62 set current UPPER LFO MOD DEPTH A138: STAB &7F63 set current UPPER PORTAMENT A13B: LDAB &0E,X A13D: ANDB #&01 A13F: STAB &7F64 set current UPPER BENDER A142: LDAA &0F,X A144: CLRB A145: ROLA A146: ROLB A147: LSRA A148: STAA &7F66 set current LOWER TONE A14B: STAB &7F6A set current LOWER HOLD A14E: LDAA &10,X A150: STAA &7F67 set current LO CHROMATIC SHIFT A153: LDAA &11,X A155: STAA &7F69 set current LOWER UNISON DETUNE A158: LDAB &13,X A15A: ANDB #&01 A15C: STAB &7F6D set current LOWER BENDER A15F: LDAA &12,X A161: CLRB A162: ROLA A163: ROLB A164: LSRA A165: STAA &7F6B set current LOWER LFO MOD DEPTH A168: STAB &7F6C set current LOWER POTAMENTO A16B: LDAA &14,X A16D: CLRB A16E: ROLA A16F: ROLB A170: LSRA A171: STAA &7F6F set current CHASE PLAY LEVEL A174: LDAA &15,X A176: ROLA A177: ROLB A178: STAB &7F70 set current CHASE PLAY MODE A17B: LSRA A17C: STAA &7F71 set current CHASE PLAY TIME A17F: LDAA &16,X A181: TAB A182: ANDA #&1F A184: STAA &7F73 set current UP MIDI CH SEND A187: CLRA A188: ASLD A189: ASLD A18A: ASLD A18B: STAA &7F5F set current UPPER KEY ASSIGN A18E: LDAA &17,X A190: TAB A191: ANDA #&1F A193: STAA &7F74 set current LO MIDI CH SEND A196: CLRA A197: ASLD A198: ASLD A199: ASLD A19A: STAA &7F68 set current LOWER KEY ASSIGN A19D: LDAA &1C,X A19F: CLRB A1A0: ROLA A1A1: ROLB A1A2: LSRA A1A3: STAA &7F7A set current MIDI SEND SPLIT A1A6: STAB &7F72 set current CHASE PLAY SWITCH copy 4 bytes at &18,X-&1B,X to &7F75-&7F78 ie set current UP PROG CHANGE SEND set current LO PROG CHANGE SEND set current UP VOLUME SEND set current LO VOLUME SEND A1A9: LDAA #&04 A1AB: STAA &80 A1AD: LDAB #&17 A1AF: ABX A1B0: STX &90 A1B2: LDX #&7F74 A1B5: STX &92 A1B7: JSR &A54C ...patch data now loaded into edit buffer A1BA: JSR &8D31 set lower midi tx channel A1BD: JSR &8D21 set upper midi tx channel A1C0: LDAA #&F1 A1C2: STAA &B0 voice board ptr = lower ? A1C4: LDX #&1700 A1C7: STX &7F11 A1CA: OIM #&04,&98 A1CD: LDAA &7F58 get key mode A1D0: CMPA #&02 A1D2: BNE &A1D7 A1D4: AIM #&FB,&98 A1D7: LDAA &7F66 get lower tone number A1DA: STAA &D1 A1DC: JSR &CF62 A1DF: LDAA #&F1 A1E1: LDAB &7F6C A1E4: JSR &8BC6 A1E7: LDAA #&F9 A1E9: STAA &B0 A1EB: LDX #&7F80 A1EE: STX &7F11 A1F1: OIM #&04,&98 A1F4: LDAA &7F58 A1F7: CMPA #&03 A1F9: BNE &A1FE A1FB: AIM #&FB,&98 A1FE: LDAA &7F5D A201: STAA &D1 A203: JSR &CF62 A206: LDAA #&F9 A208: LDAB &7F63 A20B: JSR &8BC6 A20E: LDX #&13C0 A211: CLRA A212: LDAB #&1F A214: STAA &00,X A216: INX A217: DECB A218: BNE &A214 A21A: LDAA #&80 A21C: STAA &00,X A21E: LDX #&1380 A221: LDAA &7E87 A224: ADDA #&41 A226: STAA &02,X A228: LDAA &7E88 A22B: ADDA #&31 A22D: STAA &03,X A22F: LDAA #&40 A231: STAA &7F0C A234: STAA &7F0D A237: LDAA &7F58 A23A: CMPA #&02 A23C: BGE &A24A A23E: OIM #&02,&A4 A241: LDAB &7F52 A244: JSR &8994 A247: AIM #&FD,&A4 A24A: JSR &B313 A24D: LDAB &7F57 A250: JSR &A37F A253: LDAA #&F4 A255: LDAB #&B8 A257: TST &7F5A A25A: BEQ &A261 A25C: JSR &9511 A25F: BRA &A264 A261: JSR &9505 A264: LDAA #&B9 A266: TST &7F5B A269: BEQ &A270 A26B: JSR &9515 A26E: BRA &A273 A270: JSR &9509 A273: LDAA #&BA A275: TST &7F5C A278: BEQ &A27F A27A: JSR &9515 A27D: BRA &A282 A27F: JSR &9509 A282: LDAA #&8C A284: JSR &DEB7 A287: LDAA &7F5A A28A: JSR &DEB7 A28D: LDAA #&8D A28F: JSR &DEB7 A292: LDAA &7F5B A295: JSR &DEB7 A298: LDAA #&8E A29A: JSR &DEB7 A29D: LDAA &7F5C A2A0: JSR &DEB7 A2A3: LDAA #&B0 A2A5: JSR &DEB7 A2A8: LDAA &7F56 A2AB: JSR &DEB7 A2AE: CLRB A2AF: OIM #&01,&A4 A2B2: STAB &7E99 A2B5: LDAA &7F58 A2B8: CMPA #&02 A2BA: BLT &A2C1 A2BC: EORA #&01 A2BE: STAA &7F58 A2C1: JSR &895D A2C4: AIM #&FE,&A4 A2C7: TST &7F72 A2CA: BEQ &A2CF A2CC: JSR &8C9D A2CF: JSR &8D31 A2D2: JSR &8D21 A2D5: TIM #&04,&9D A2D8: BNE &A300 A2DA: LDAB &7F76 A2DD: BPL &A2E7 A2DF: TST &7F37 A2E2: BEQ &A2EA A2E4: LDAB &7F66 A2E7: JSR &CBC4 A2EA: LDAB &7F75 A2ED: BPL &A2F7 A2EF: TST &7F2E A2F2: BEQ &A2FA A2F4: LDAB &7F5D A2F7: JSR &CBB2 A2FA: JSR &CB79 A2FD: JSR &CB58 A300: LDAA &8E A302: BNE &A318 A304: JSR &A359 A307: LDAA &A7 A309: RORA A30A: BCC &A311 A30C: RORA A30D: BCC &A31F A30F: BRA &A328 A311: JSR &ABC1 A314: JSR &AC0A A317: RTS A318: CMPA #&02 A31A: BGE &A320 A31C: JSR &85EA A31F: RTS A320: JSR &AFDA A323: LDAA &8E A325: JMP &AD18 A328: TIM #&04,&A7 A32B: BNE &A33C A32D: JSR &E128 A330: AIM #&F7,&08 A333: CLRA A334: CLR &7EE4 A337: OIM #&08,&08 A33A: BRA &A348 A33C: AIM #&F7,&08 A33F: LDAA &7EE4 A342: CLR &7EE4 A345: OIM #&08,&08 A348: JSR &E047 A34B: STAA &00,X A34D: INX A34E: LDAA #&7E A350: STAA &00,X A352: LDAA &AA A354: ORAA #&80 A356: JMP &E0DD A359: LDX #&7F3F A35C: STX &90 A35E: LDX #&1384 A361: STX &92 A363: LDAA #&12 A365: STAA &87 A367: LDX &90 A369: INX A36A: STX &90 A36C: LDAA &00,X A36E: ANDA #&7F A370: STAA &00,X A372: LDX &92 A374: INX A375: STX &92 A377: STAA &00,X A379: DEC &0087 A37C: BNE &A367 A37E: RTS A37F: LDAA #&F4 A381: JSR &DEB7 A384: LDAA #&B7 A386: JSR &DEB7 A389: TBA A38A: JSR &DEB7 A38D: RTS A38E: LDAA &7E9C A391: CMPA #&63 A393: BLS &A399 A395: SUBA #&64 A397: BRA &A391 A399: OIM #&01,&A1 A39C: STAA &D1 A39E: JSR &CBA1 A3A1: LDAB &7F58 A3A4: TIM #&01,&A0 A3A7: BEQ &A3C7 A3A9: STAA &7F66 A3AC: AIM #&FD,&A1 A3AF: LDX #&1700 A3B2: STX &7F11 A3B5: CMPB #&02 A3B7: BLT &A3C3 A3B9: BEQ &A3BF A3BB: LDAA #&F4 A3BD: BRA &A3DF A3BF: LDAA #&FD A3C1: BRA &A3DF A3C3: LDAA #&F1 A3C5: BRA &A3DF A3C7: STAA &7F5D A3CA: AIM #&FB,&A1 A3CD: LDX #&7F80 A3D0: STX &7F11 A3D3: CMPB #&02 A3D5: BLT &A3DD A3D7: BGT &A3BF A3D9: LDAA #&F4 A3DB: BRA &A3DF A3DD: LDAA #&F9 A3DF: STAA &B0 A3E1: OIM #&04,&98 A3E4: JSR &CF62 A3E7: JSR &8A90 A3EA: LDAA &7E9E A3ED: STAA &8E A3EF: TAB A3F0: ANDB #&F8 A3F2: TSTB A3F3: BNE &A402 A3F5: BITA #&01 A3F7: BNE &A3FF A3F9: LDX #&1380 A3FC: JMP &AB74 A3FF: JMP &85EA A402: RTS A403: 00 00 00 ... **************************************** patch edit A406: JSR &AFDA clear flash/point A409: LDAA #&E1 disp func = Patch Edit A40B: STAA &8E set disp func A40D: LDAA &A2 get edit flags A40F: ANDA #&F8 clear edit flags A411: ORAA #&01 set patch edit A413: STAA &A2 store edit flags A415: JSR &AFDA clear flash/point A418: LDAB &7E98 get current edit factor A41B: CMPB #&28 A41D: BLS &A423 A41F: CLRB force valid factor number A420: STAB &7E98 store current edit factor clear flash/point for 4 to 1F A423: LDX #&13C4 A426: LDAA #&1B A428: STAA &80 A42A: CLRA A42B: INX A42C: STAA &00,X A42E: DEC &0080 A431: BNE &A42B patch factor message number in B A433: LDX #&1384 A436: STX &92 set pointer to display char 4 A438: LDAA #&18 A43A: MUL multiply B * &18 (24) A43B: LDX #&E22B location of factor names / types A43E: STX &90 A440: ADDD &90 A442: XGDX A443: STX &90 store in pointer A445: LDAA #&16 do 22 characters A447: STAA &87 copy factor name into display mem A449: LDX &90 A44B: INX A44C: STX &90 A44E: LDAA &00,X A450: LDX &92 A452: INX A453: STX &92 A455: STAA &00,X A457: DEC &0087 A45A: BNE &A449 write 3 spaces after message A45C: LDAA #&20 A45E: STAA &01,X A460: STAA &02,X A462: STAA &03,X A464: LDX &90 A466: LDAA &01,X get type from factor data A468: ANDA #&0F A46A: STAA &80 store in &80 A46C: LDX #&7F52 ptr to factor values A46F: LDAB &7E98 A472: ABX A473: LDAA &00,X get factor value A475: STAA &87 &87 = value jump by factor type A477: LDX #&A484 A47A: LDAA &80 A47C: LDAB #&03 A47E: MUL A47F: ABX A480: LDAA &87 A = factor value A482: JMP &00,X further jumps to display factor value by type A484: JMP &A4B4 data = '00' to '99' A487: JMP &A4D1 data = '-50' to '+50' A48A: JMP &A4DA data = '1E' to '7G' A48D: JMP &A4FC data = '2', '3', '4', '7' A490: JMP &A530 data = UP WHOLE, LO WHOLE, DUAL, SPLIT, T.VOICE, X-FADE A493: JMP &A4B4 data = '00' to '99' A496: JMP &A560 data = '1' to '100' A499: JMP &A4B7 data = '-24' to '+24' A49C: JMP &A567 data = POLY 1, POLY 2, UNISON 1, UNISON 2, MONO 1, MONO 2 A49F: JMP &A57D data = OFF, ON A4A2: JMP &A580 data = 'U-L-U-', 'U-L-L-', 'U-L' A4A5: JMP &A4CA unused A4A8: JMP &A596 data = midi ch, 'OFF' A4AB: JMP &A5A0 data = '1' to '128', 'OFF' A4AE: JMP &A5AA data = '00' to '99', 'OFF' A4B1: JMP &A5B6 data = UPPER, LOWER, SPLIT, LAYER, OFF A4B4: JMP &8937 data = '00' to '99' ********** A4B7: TSTA A4B8: BMI &A4CB A4BA: LDAB #&2B A4BC: LDX #&1380 A4BF: STAB &1D,X A4C1: LDAB #&0A A4C3: JSR &CDAA A4C6: STAA &1E,X A4C8: STAB &1F,X A4CA: RTS A4CB: COMA A4CC: INCA A4CD: LDAB #&2D A4CF: BRA &A4BC A4D1: STAA &1772 A4D4: LDX #&139D A4D7: JMP &B538 A4DA: LDX #&139D A4DD: STX &90 A4DF: ADDA #&09 A4E1: LDAB #&0C A4E3: JSR &CDAA A4E6: STAA &80 A4E8: LDX #&A518 A4EB: ASLB A4EC: ABX A4ED: LDAB &00,X A4EF: LDAA &01,X A4F1: LDX &90 A4F3: STAA &01,X A4F5: STAB &00,X A4F7: LDAA &80 A4F9: STAA &02,X A4FB: RTS A4FC: LDX #&A514 A4FF: LDAB &7F57 A502: CLC A503: ROLB A504: ROLB A505: ROLB A506: ROLB A507: ABX A508: LDAA &00,X A50A: LDX #&1380 A50D: STAA &1E,X A50F: LDAA #&20 A511: STAA &1F,X A513: RTS A514: 32 33 34 37 20 43 2B 43 2347 C+C A51C: 20 44 2B 44 20 45 20 46 D+D E F A524: 2B 46 20 47 2B 47 20 41 +F G+G A A52C: 2B 41 20 42 +A B display key mode A530: ANDA #&03 A532: LDAB &7F7B get extra keymode A535: BEQ &A53A A537: ABA A538: ADDA #&03 A53A: LDAB #&08 A53C: MUL A53D: LDX #&A5FE ptr to key mode texts A540: ABX A541: STX &90 A543: LDX #&1397 A546: STX &92 A548: LDAA #&08 A54A: STAA &80 copy data at (&90+1) to (&92+1) for &80 bytes A54C: LDX &90 A54E: INX A54F: STX &90 A551: LDAA &00,X A553: LDX &92 A555: INX A556: STX &92 A558: STAA &00,X A55A: DEC &0080 A55D: BNE &A54C A55F: RTS A560: LDX #&139D A563: JMP &ABDD A566: RTS A567: ANDA #&07 A569: LDAB #&07 A56B: MUL A56C: LDX #&A5CD A56F: ABX A570: STX &90 A572: LDX #&1398 A575: STX &92 A577: LDAB #&07 A579: STAB &80 A57B: BRA &A54C A57D: JMP &A814 ***** display chase play mode A580: ANDA #&03 force valid mode A582: LDAB #&06 A584: MUL A585: LDX #&A62E A588: ABX A589: STX &90 ptr to mode name A58B: LDX #&1399 A58E: STX &92 A590: LDAA #&06 A592: STAA &80 A594: BRA &A54C write mode to display and RTS ***** A596: CMPA #&10 A598: BNE &A59D A59A: JMP &A7BD A59D: JMP &A781 A5A0: CMPA #&80 A5A2: BEQ &A59A A5A4: LDX #&139D A5A7: JMP &ABDD A5AA: CMPA #&80 A5AC: BEQ &A59A A5AE: LDAB #&20 A5B0: STAB &139D A5B3: JMP &8937 A5B6: LDAA &7F79 A5B9: BEQ &A5C8 A5BB: CMPA #&04 A5BD: BGE &A59A A5BF: LDAB #&07 A5C1: MUL A5C2: LDX #&A698 A5C5: ABX A5C6: BRA &A589 A5C8: LDX #&A607 A5CB: BRA &A589 A5CD: RTS A5CE: 20 50 4F 4C 59 20 31 55 POLY 1U A5D6: 4E 49 53 4F 4E 31 20 4D NISON1 M A5DE: 4F 4E 4F 20 31 41 53 49 ONO 1ASI A5E6: 47 4E 45 52 20 50 4F 4C GNER POL A5EE: 59 20 32 55 4E 49 53 4F Y 2UNISO A5F6: 4E 32 20 4D 4F 4E 4F 20 N2 MONO A5FE: 32 20 20 44 55 41 4C 20 2 DUAL A606: 20 20 20 53 50 4C 49 54 SPLIT A60E: 20 55 50 20 57 48 4F 4C UP WHOL A616: 45 4C 4F 20 57 48 4F 4C ELO WHOL A61E: 45 58 20 2D 20 46 41 44 EX - FAD A626: 45 54 20 2D 56 4F 49 43 ET -VOIC A62E: 45 E chase play modes A62F: 55 2D 4C 20 20 20 55 U-L U A636: 2D 4C 2D 4C 2D 55 2D 4C -L-L-U-L A63E: 2D 55 2D -U- **************************************** tone edit A641: LDAA #&81 disp func = tone edit A643: STAA &8E store disp func A645: LDAA &7E98 get current edit factor A648: CMPA #&2C A64A: BCC &A650 A64C: CLRA force valid factor number A64D: STAA &7E98 A650: LDAA &A2 get edit flags A652: ANDA #&F8 clear edit flags A654: ORAA #&02 set tone edit flag A656: STAA &A2 store edit flags A658: JSR &A679 display UPPER/LOWER A65B: INX inc display mem ptr A65C: LDAA &81 get tone number A65E: JSR &ABDD display tone number A661: LDAA &7E98 get current edit factor A664: STAA &80 &80 = factor A666: LDAA #&05 A668: STAA &7F0A set rot enc clock divider = 5 A66B: JSR &AFDA clear flash/point A66E: LDAA #&20 A670: STAA &138E clear char E A673: STAA &138F clear char F A676: JMP &A8BD ***** display ' UPPER ' or ' LOWER ' A679: LDX &7F11 get current edit buffer ptr A67C: CPX #&7F80 A67F: BNE &A698 br if not upper tone A681: LDX #&A69F ptr to text ' UPPER ' A684: LDAA &7F5D get upper tone number A687: STX &90 store text ptr A689: LDX #&1383 A68C: STX &92 store display ptr A68E: LDAB #&07 A690: STAB &80 length of text A692: STAA &81 &81 = tone number A694: JSR &A54C display text A697: RTS A698: LDX #&A6A6 ptr to text ' LOWER ' A69B: LDAA &7F66 get lower tone number A69E: BRA &A687 A6A0: 20 55 50 50 45 52 20 20 UPPER A6A8: 4C 4F 57 45 52 20 20 4C LOWER L A6B0: 41 59 45 52 20 AYER A6B5: LDAA #&A1 A6B7: STAA &8E A6B9: RTS ********** midi edit A6BA: JSR &AFDA clear flash/point A6BD: LDAA &7E98 get current edit factor A6C0: CMPA #&15 A6C2: BCS &A6C5 A6C4: CLRA force valid factor number A6C5: STAA &7E98 store in current edit factor A6C8: LDAA #&06 A6CA: STAA &7F0A set rot enc clock divider = 6 A6CD: LDAA #&A1 disp func = midi edit + (?) A6CF: BRA &A6D3 A6D1: LDAA #&A0 disp func = midi edit (?) A6D3: STAA &8E set function display A6D5: LDAA &A2 get edit flags A6D7: ANDA #&F8 reset tone/patch edit A6D9: ORAA #&04 set midi edit A6DB: STAA &A2 store edit flags A6DD: LDAA &7E98 get current factor number A6E0: STAA &81 A6E2: LDAB #&15 A6E4: MUL A6E5: LDX #&E71E ptr to factor names / types A6E8: STX &90 A6EA: ADDD &90 A6EC: STD &90 A6EE: LDAA #&14 A6F0: STAA &80 A6F2: LDX #&1384 A6F5: STX &92 A6F7: JSR &A54C write factor name to display A6FA: LDAA #&20 A6FC: STAA &1399 blank factor value chars A6FF: STAA &139A . A702: STAA &139B . A705: STAA &139C . A708: LDX #&7F2B ptr to midi factors A70B: LDAB &7E98 get current factor A70E: ABX A70F: LDAA &00,X get factor value A711: LDX &90 A713: LDAB &01,X get factor type A715: STAB &D3 store in &D3 A717: SUBB #&20 A719: BCS &A6B9 RTS if type < &20 jump via table depending on value type in B A71B: LDX #&A724 A71E: ASLB A71F: ABX A720: LDX &00,X A722: JMP &00,X A724: 0 = A769 never used 1 = A732 data type = 'OFF', 'ON' 2 = A7AC never used 3 = A781 data type = chan num, 'OFF' 4 = A7C2 data type = 'OFF', 'ON' 5 = A732 data type = 'OFF', 'ON' 6 = A781 data type = chan num, 'OFF' A732: JMP &A814 ***** unused... A735: 50 4F 4C 59 20 4F 4D 4E POLY OMN A73D: 49 20 4F 46 46 50 4F 4C I OFFPOL A745: 59 20 4F 4D 4E 49 20 4F Y OMNI O A74D: 4E 20 4D 4F 4E 4F 20 4F N MONO O A755: 4D 4E 49 20 4F 46 46 4D MNI OFFM A75D: 4F 4E 4F 20 4F 4D 4E 49 ONO OMNI A765: 20 4F 4E 20 ON A769: TAB A76A: ANDB #&03 A76C: LDX #&A734 A76F: LDAA #&0D A771: MUL A772: ABX A773: STX &90 A775: LDX #&1392 A778: STX &92 A77A: LDAA #&0D A77C: STAA &80 A77E: JMP &A54C ***** display value as midi channel number, or 'OFF' A781: CMPA #&10 A783: BLT &A789 br if value < &10 A785: CLRA A786: JMP &A814 if value = &10, display 'OFF' A789: LDX #&139D ptr to display char &1D (29) A78C: INCA A78D: TAB A78E: SUBA #&0A A790: BCS &A797 br if chan < 10 A792: TAB A793: LDAA #&01 A795: BRA &A799 A797: LDAA #&20 A799: STAA &00,X write decimal... A79B: STAB &01,X channel number A79D: LDAA #&20 A79F: STAA &02,X A7A1: RTS ***** A7A2: 50 41 54 43 48 20 54 4F PATCH TO A7AA: 4E 45 NE A7AC: JMP &A814 ***** A7AF: STX &90 A7B1: LDX #&139A A7B4: STX &92 A7B6: LDAA #&05 A7B8: STAA &80 A7BA: JMP &A54C write ' OFF' at display char &1A A7BD: LDX #&EA34 A7C0: BRA &A7AF A7C2: JMP &A814 **************************************** PEDAL assign... A7C5: CMPB #&D4 A7C7: BNE &A7D2 A7C9: JMP &AB3B A7CC: STAB &7E9E store disp func in 7E9E A7CF: JSR &AFDA clear flash/point A7D2: LDAA #&D4 A7D4: STAA &8E disp func = #&D4 A7D6: JSR &AFDA A7D9: LDX #&137F A7DC: LDAB #&50 A7DE: STAB &06,X A7E0: LDAB #&53 A7E2: STAB &07,X A7E4: JSR &A82E A7E7: LDX #&E6AE A7EA: LDAB &7F00 A7ED: ANDB #&07 A7EF: STAB &7F00 A7F2: LDAA #&0E A7F4: MUL A7F5: ABX