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 A7F6: STX &90 A7F8: LDX #&138E A7FB: STX &92 A7FD: LDAB #&0D A7FF: STAB &80 A801: JSR &A54C A804: LDAB #&20 A806: STAB &01,X A808: STAB &02,X A80A: STAB &03,X A80C: STAB &04,X A80E: LDAA #&05 A810: STAA &7F0A set rot enc clock divider = 5 A813: RTS ****** write ON/OFF for A = n/0 A814: LDX #&1380 A817: LDAB #&4F A819: STAB &1D,X write 'O' A81B: TSTA A81C: BEQ &A827 A81E: LDAB #&4E A820: STAB &1E,X write 'N' A822: LDAB #&20 A824: STAB &1F,X A826: RTS A827: LDAB #&46 A829: STAB &1E,X write 'F' A82B: STAB &1F,X write 'F' A82D: RTS ********** A82E: LDX #&A83A A831: STX &90 A833: LDX #&1386 A836: STX &92 A838: JMP &A548 A83B: 20 41 53 53 49 47 4E 20 ASSIGN ***** control slider assign C2 assign pressed from 8588 or 87C2 A843: STAB &7E9E store disp func in 7E9E A846: LDAA #&D0 A848: STAA &8E disp func = #&D0 A84A: LDAA &7F02 A84D: ANDA #&07 A84F: STAA &7F02 A852: LDAB #&02 A854: BRA &A875 C2 assign pressed from 9ECA A856: CMPB #&D0 A858: BNE &A846 A85A: JMP &AB3B C1 assign pressed from 9ED0 A85D: CMPB #&D2 A85F: BNE &A867 A861: JMP &AB3B C1 assign pressed 858E or 87C8 A864: STAB &7E9E store disp func in 7E9E A867: LDAA #&D2 A869: STAA &8E disp func = #&D2 A86B: LDAA &7F01 A86E: ANDA #&07 A870: STAA &7F01 A873: LDAB #&01 A875: LDX #&137F A878: STAB &07,X A87A: LDAB #&43 A87C: STAB &06,X A87E: TAB A87F: JSR &A82E A882: LDX #&E639 ptr to Cn function messages A885: LDAA #&0E A887: MUL A888: ABX A889: STX &90 A88B: LDX #&138E A88E: STX &92 A890: LDAB #&0D A892: STAB &80 A894: JSR &A54C A897: JSR &AFDA A89A: LDAA #&20 A89C: STAA &139D A89F: STAA &139C A8A2: LDX &90 A8A4: INX A8A5: LDAB &00,X A8A7: STAB &7E98 A8AA: LDX #&7F52 A8AD: ABX A8AE: LDAB #&05 A8B0: STAB &7F0A set rot enc clock divider = 5 A8B3: LDAA &00,X A8B5: BPL &A8BA A8B7: CLRA A8B8: STAA &00,X A8BA: JMP &8937 ********** ...tone edit coninues A8BD: LDAA &80 get edit factor A8BF: LSRA divide factor num by 16 A8C0: LSRA . A8C1: LSRA . A8C2: LSRA . A8C3: INCA A8C4: LDX #&1390 A8C7: STAA &00,X store factor num hi nybble A8C9: LDAA &80 get factor number A8CB: ANDA #&0F mask lo nybble A8CD: INCA A8CE: STAA &01,X store factor num lo nybble A8D0: LDAA #&20 A8D2: STAA &02,X blank next char A8D4: LDAB &80 get factor number A8D6: LDX #&EDEC A8D9: ABX A8DA: LDAB &00,X get data from lookup table by factor number A8DC: TSTB A8DD: BPL &A8E1 br if bit 7 not set A8DF: LDAB #&2E factor number = &2E A8E1: STAB &D3 store factor number ... jump here from programmer routine at CAF1 B = tone param A8E3: LDAA #&0A A8E5: MUL A8E6: STD &90 A8E8: LDD #&EE7B start of parameter names A8EB: ADDD &90 offset by p.no * 10 A8ED: STD &90 A8EF: LDX #&1392 A8F2: STX &92 A8F4: LDAA #&09 A8F6: STAA &80 A8F8: JSR &A54C write param name to display A8FB: LDAA #&20 A8FD: STAA &01,X A8FF: LDX &90 A901: INX A902: JMP &ADCD dual key mode... A905: JSR &A9C5 A908: JSR &A9DE A90B: CLRA A90C: BRA &A92E split key mode... A90E: JSR &A9C5 A911: JSR &A9DE A914: LDAA #&01 A916: BRA &A92E A918: JSR &A9C5 A91B: LDAA &7F58 A91E: CMPA #&02 A920: BNE &A929 A922: LDAA #&03 A924: LDX #&1700 A927: BRA &A92E A929: LDX #&7F80 A92C: LDAA #&02 A92E: STAA &7F58 A931: STX &7F11 A934: JSR &A9DE A937: OIM #&04,&99 A93A: JSR &C7E7 A93D: TIM #&01,&A4 A940: BNE &A946 A942: CLRA A943: STAA &7F72 A946: TIM #&01,&A7 A949: BNE &A95A A94B: LDAA &8E A94D: BEQ &A957 A94F: DECA A950: BNE &A95A A952: JSR &8621 A955: BRA &A95A A957: JSR &AB74 A95A: JSR &AEA3 A95D: JSR &AF58 A960: LDAA &7F58 A963: CMPA #&01 A965: BLE &A97B A967: LDAB #&F4 A969: STAB &B0 A96B: JSR &A9DA A96E: LDAA #&40 A970: STAA &7F0C A973: STAA &7F0D A976: JSR &8A90 A979: BRA &A9B1 A97B: LDAA &7F0B A97E: CMPA #&02 A980: BLT &A9B1 A982: BEQ &A9A2 A984: LDAB #&F9 A986: STAB &B0 A988: LDAA &7F5D A98B: LDX #&7F80 A98E: STX &7F11 A991: JSR &A9DA A994: LDAB &7F52 A997: OIM #&02,&A4 A99A: JSR &8994 A99D: AIM #&FD,&A4 A9A0: BRA &A9B1 A9A2: LDAB #&F1 A9A4: STAB &B0 A9A6: LDX #&1700 A9A9: STX &7F11 A9AC: LDAA &7F66 A9AF: BRA &A991 A9B1: LDAA &8E A9B3: SUBA #&E0 A9B5: BCS &A9C4 A9B7: LDAA &7E98 A9BA: CMPA #&06 A9BC: BNE &A9C4 A9BE: LDAA &7F58 A9C1: JMP &A530 A9C4: RTS A9C5: LDAA &7F58 A9C8: CLR &7F7B A9CB: STAA &7F0B A9CE: TIM #&04,&9D A9D1: BNE &A9D9 A9D3: JSR &BCCC A9D6: JSR &BD58 A9D9: RTS A9DA: JSR &D020 A9DD: RTS A9DE: LDX &7F11 A9E1: CPX #&1700 A9E4: BNE &A9EA A9E6: JSR &8520 A9E9: RTS A9EA: JSR &854E A9ED: RTS ********** A9EE: STAA &7E9E store 0 in 7E9E A9F1: TSTB A9F2: BEQ &A9F8 A9F4: LDAA #&1F A9F6: BRA &A9FA A9F8: LDAA #&1D A9FA: STAA &7E98 A9FD: JSR &AFDA AA00: LDAA #&D8 AA02: STAA &8E AA04: JMP &A418 AA07: STAA &7E9E AA0A: JSR &AFDA AA0D: LDAA #&02 AA0F: STAA &BE AA11: JSR &EC7E AA14: LDAA #&C0 AA16: STAA &8E AA18: LDAB &1771 AA1B: JMP &9E05 AA1E: LDAA #&12 AA20: STAA &BE AA22: JSR &EA4E AA25: RTS AA26: STAA &7E9E AA29: CMPA #&00 AA2B: BNE &AA48 AA2D: LDAA #&48 AA2F: STAA &8E AA31: JSR &AFDA AA34: LDAA #&03 AA36: STAA &A2 AA38: LDAA &7E87 AA3B: STAA &7F15 AA3E: LDAA &7E88 AA41: STAA &7F16 AA44: LDAA #&02 AA46: BRA &AA20 AA48: ANDA #&FC AA4A: CMPA #&A0 AA4C: BNE &AA5C AA4E: LDAA #&58 AA50: STAA &8E AA52: CLR &7E98 AA55: LDAA #&05 AA57: STAA &7F0A set rot enc clock divider = 5 AA5A: BRA &AA1E AA5C: CMPA #&80 AA5E: BNE &AA6A AA60: LDAA #&50 AA62: STAA &8E AA64: JSR &AFDA AA67: JMP &AAAD AA6A: CMPA #&E0 AA6C: BNE &AAAC AA6E: LDAA #&40 AA70: STAA &8E AA72: JSR &AFDA AA75: LDAA #&04 AA77: STAA &BE AA79: JSR &EC7E AA7C: LDAA &7E87 AA7F: LDAB &7E88 AA82: STAA &7F15 AA85: STAB &7F16 AA88: ADDA #&41 AA8A: STAA &1398 AA8D: INCB AA8E: STAB &1399 AA91: LDAA &1747 AA94: LDX #&ECBC AA97: BITA #&04 AA99: BNE &AA9E AA9B: LDX #&ECB0 AA9E: STX &90 AAA0: LDX #&1392 AAA3: STX &92 AAA5: LDAA #&04 AAA7: STAA &80 AAA9: JSR &A54C AAAC: RTS AAAD: LDAA #&04 AAAF: STAA &BE AAB1: JSR &EC7E AAB4: LDX #&EAD3 AAB7: STX &90 AAB9: LDX #&1387 AABC: STX &92 AABE: LDAA #&05 AAC0: STAA &80 AAC2: JSR &A54C AAC5: JSR &AA91 AAC8: LDX &7F11 AACB: CPX #&1700 AACE: BNE &AAD5 AAD0: LDAA &7F66 AAD3: BRA &AAD8 AAD5: LDAA &7F5D AAD8: STAA &7E9F AADB: LDX #&1398 AADE: JSR &ABDD AAE1: RTS AAE2: RTS AAE3: LDAA #&E0 AAE5: STAA &8E AAE7: BRA &AB3A AAE9: LDAA #&E1 AAEB: STAA &8E AAED: BRA &AB3A AAEF: LDAA #&E2 AAF1: STAA &8E AAF3: LDX #&7F3F AAF6: STX &90 AAF8: LDX #&1384 AAFB: STX &92 AAFD: LDAA #&12 AAFF: STAA &87 AB01: LDX &90 AB03: INX AB04: STX &90 AB06: LDAA &00,X AB08: ANDA #&7F AB0A: STAA &00,X AB0C: LDX &92 AB0E: INX AB0F: STX &92 AB11: STAA &00,X AB13: DEC &0087 AB16: BNE &AB01 AB18: LDAA #&09 AB1A: LDAB #&20 AB1C: INX AB1D: STAB &00,X AB1F: DECA AB20: BNE &AB1C AB22: LDX #&13C0 AB25: LDAA &05,X AB27: ORAA #&80 AB29: STAA &05,X AB2B: CLRA AB2C: STAA &7E9A AB2F: LDAA &7F40 AB32: ANDA #&7F AB34: STAA &7F40 AB37: STAA &7E9B AB3A: RTS AB3B: JSR &AFDA AB3E: CLRA AB3F: STAA &8E AB41: STAA &A2 AB43: TIM #&80,&A4 AB46: BNE &AB4C AB48: LDAB #&43 AB4A: BRA &AB4E AB4C: LDAB #&49 AB4E: STAB &1380 AB51: LDAB #&2D AB53: STAB &1381 AB56: JSR &A359 AB59: LDX #&1380 AB5C: LDAA &7E87 AB5F: ADDA #&41 AB61: STAA &02,X AB63: LDAA &7E88 AB66: ADDA #&31 AB68: STAA &03,X AB6A: LDAA #&20 AB6C: STAA &04,X AB6E: STAA &17,X AB70: STAA &1B,X AB72: STAA &1C,X AB74: CLRA AB75: TIM #&01,&A1 AB78: BEQ &AB7C AB7A: LDAA #&40 AB7C: STAA &42,X AB7E: STAA &43,X AB80: CLRA AB81: TIM #&02,&A1 AB84: BEQ &AB88 AB86: LDAA #&40 AB88: STAA &58,X AB8A: STAA &59,X AB8C: STAA &5A,X AB8E: CLRA AB8F: TIM #&04,&A1 AB92: BEQ &AB96 AB94: LDAA #&40 AB96: STAA &5D,X AB98: STAA &5E,X AB9A: STAA &5F,X AB9C: LDX &7F11 AB9F: CPX #&1700 ABA2: BNE &ABA8 ABA4: LDAB #&1A ABA6: BRA &ABAA ABA8: LDAB #&1F ABAA: LDX #&13C0 ABAD: ABX ABAE: LDAA &00,X ABB0: ORAA #&80 ABB2: STAA &00,X ABB4: JSR &ABC1 ABB7: JSR &AC0A ABBA: RTS ABBB: LDX #&139D ABBE: TBA ABBF: BRA &ABE0 ABC1: LDX #&1398 ABC4: LDAA &7F58 ABC7: CMPA #&02 ABC9: BNE &ABDA ABCB: LDAA #&03 ABCD: STAA &80 ABCF: LDAA #&20 ABD1: STAA &00,X ABD3: INX ABD4: DEC &0080 ABD7: BNE &ABD1 ABD9: RTS ********** ABDA: LDAA &7F66 get lower tone number display A as 1-100 decimal ABDD: ANDA #&7F ABDF: INCA 0-99 => 1-100 ABE0: LDAB #&64 ABE2: JSR &CDAA divide number by 100 ABE5: STAA &80 &80 = 1 if tone 100, else 0 ABE7: TBA ABE8: LDAB #&0A ABEA: JSR &CDAA divide remainder by 10 ABED: STAA &87 &87 = quotient ABEF: LDAA &80 ABF1: TSTA ABF2: BEQ &ABFA br if tone < 100 ABF4: STAA &00,X ABF6: LDAA &87 ABF8: BRA &AC05 ABFA: LDAA #&20 ABFC: STAA &00,X store first digit ABFE: LDAA &87 AC00: TSTA AC01: BNE &AC05 AC03: LDAA #&20 AC05: STAA &01,X store second digit AC07: STAB &02,X store third digit AC09: RTS ********** AC0A: LDX #&139D AC0D: LDAA &7F58 AC10: CMPA #&03 AC12: BEQ &ABCD AC14: LDAA &7F5D AC17: BRA &ABDD AC19: RTS AC1A: LDAA &7E98 AC1D: CMPB #&01 AC1F: BLT &AC2B AC21: BGT &AC33 AC23: JSR &A664 AC26: LDAA #&81 AC28: STAA &8E AC2A: RTS AC2B: JSR &A664 AC2E: LDAA #&80 AC30: STAA &8E AC32: RTS AC33: LDAA #&82 AC35: STAA &8E AC37: LDX &7F11 AC3A: DEX AC3B: STX &90 AC3D: LDX #&138F AC40: STX &92 AC42: LDAA #&0A AC44: STAA &87 AC46: LDX &90 AC48: INX AC49: STX &90 AC4B: LDAA &00,X AC4D: ANDA #&7F AC4F: STAA &00,X AC51: LDX &92 AC53: INX AC54: STX &92 AC56: STAA &00,X AC58: DEC &0087 AC5B: BNE &AC46 AC5D: LDAA #&07 AC5F: LDAB #&20 AC61: INX AC62: STAB &00,X AC64: DECA AC65: BNE &AC61 AC67: LDX #&13C0 AC6A: LDAA &10,X AC6C: ORAA #&80 AC6E: STAA &10,X AC70: CLRA AC71: STAA &7E9A AC74: LDX &7F11 AC77: LDAA &00,X AC79: ANDA #&7F AC7B: STAA &00,X AC7D: STAA &7E9B AC80: RTS AC81: LDAA &8E AC83: STAA &7E9E AC86: LDX #&7E95 AC89: LDAB #&20 AC8B: STAB &01,X AC8D: STAB &02,X AC8F: STX &7E93 AC92: LDAB &7E92 AC95: LDX &7F11 AC98: CPX #&1700 AC9B: BNE &ACA2 AC9D: TSTB AC9E: BNE &ACA5 ACA0: BRA &ACB4 ACA2: TSTB ACA3: BNE &ACB4 ACA5: OIM #&01,&A0 ACA8: BITA #&01 ACAA: BNE &ACB0 ACAC: LDAB #&18 ACAE: BRA &ACC1 ACB0: LDAB #&05 ACB2: BRA &ACC1 ACB4: AIM #&FE,&A0 ACB7: BITA #&01 ACB9: BNE &ACBF ACBB: LDAB #&1D ACBD: BRA &ACC1 ACBF: LDAB #&13 ACC1: LDX #&1380 ACC4: ABX ACC5: LDAA &7E92 ACC8: BEQ &ACDA ACCA: STAA &00,X ACCC: INCB ACCD: STX &90 ACCF: LDX #&7E95 ACD2: STAA &00,X ACD4: INX ACD5: STX &7E93 ACD8: LDX &90 ACDA: LDAA #&40 ACDC: STAA &40,X ACDE: STAA &41,X ACE0: STAA &42,X ACE2: LDAA #&20 ACE4: STAA &01,X ACE6: STAA &02,X ACE8: STAB &7E9A ACEB: LDAA &8E ACED: ORAA #&20 ACEF: STAA &8E ACF1: RTS ACF2: 4D 49 44 49 20 52 43 56 MIDI RCV ACFA: 20 20 2F 20 20 20 53 4E / SN AD02: 44 20 20 2F 20 20 20 20 D / AD0A: 50 20 20 P AD0D: JMP &85E6 AD10: JSR &AFDA AD13: LDAA &8E AD15: INCA AD16: STAA &8E AD18: CMPA #&03 AD1A: BGT &AD0D AD1C: BEQ &AD21 AD1E: JMP &AD96 AD21: LDX #&ACF1 AD24: STX &90 AD26: LDX #&1384 AD29: STX &92 AD2B: LDAA #&1B AD2D: STAA &80 AD2F: JSR &A54C AD32: LDAA &7F2B AD35: CMPA #&0F AD37: BHI &AD72 AD39: LDX #&139E AD3C: JSR &AD60 AD3F: LDX #&138D AD42: LDAA &7F36 AD45: JSR &AD60 AD48: LDX #&1390 AD4B: LDAA &7F2D AD4E: JSR &AD60 AD51: LDAA &7F14 AD54: LDX #&1396 AD57: JSR &AD60 AD5A: LDAA &7F13 AD5D: LDX #&1399 AD60: INCA AD61: TAB AD62: SUBA #&0A AD64: BCS &AD6B AD66: TAB AD67: LDAA #&01 AD69: BRA &AD6D AD6B: LDAA #&20 AD6D: STAA &00,X AD6F: STAB &01,X AD71: RTS AD72: LDX #&139D AD75: LDAA #&20 AD77: STAA &00,X AD79: BRA &AD3F AD7B: 53 50 4C 49 54 20 4C 4F SPLIT LO AD83: 2D 20 20 20 20 20 55 50 - UP AD8B: 2D 20 20 20 20 20 4D 2D - M- AD93: 20 20 20 AD96: LDX #&AD7A AD99: STX &90 AD9B: LDX #&1384 AD9E: STX &92 ADA0: LDAA #&1B ADA2: STAA &80 ADA4: JSR &A54C ADA7: LDAA &7F55 ADAA: LDX #&138E ADAD: JSR &A4DD ADB0: LDX #&1396 ADB3: LDAA &7F54 ADB6: JSR &A4DD ADB9: LDAA &7F7A ADBC: LDAB &7F79 ADBF: BNE &ADC4 ADC1: JMP &A4DA ADC4: LDAA #&20 ADC6: STAA &139B ADC9: STAA &139C ADCC: RTS ADCD: LDAA &00,X ADCF: LDX &92 ADD1: TSTA ADD2: BEQ &AE2B ADD4: CMPA #&01 ADD6: BEQ &ADE7 ADD8: CMPA #&02 ADDA: BEQ &ADEA ADDC: CMPA #&03 ADDE: BEQ &ADED ADE0: CMPA #&00 ADE2: BEQ &ADF0 ADE4: JMP &ADFF ADE7: JMP &AE42 ADEA: JMP &AE63 ADED: JMP &AE97 ADF0: LDAA #&20 ADF2: STAA &01,X ADF4: STAA &02,X ADF6: LDAA &7F62 ADF9: ANDA #&7F ADFB: JSR &8937 ADFE: RTS ADFF: LDAB #&10 AE01: MUL AE02: STAB &80 AE04: LDX &7F11 AE07: LDAB #&0B AE09: ABX AE0A: LDAB &D3 AE0C: ABX AE0D: LDAB &00,X AE0F: RORB AE10: RORB AE11: RORB AE12: ANDB #&0C AE14: LDX #&E95E AE17: ABX AE18: LDAB &80 AE1A: ABX AE1B: DEX AE1C: LDAA #&04 AE1E: STAA &80 AE20: STX &90 AE22: LDX #&139B AE25: STX &92 AE27: JSR &A54C AE2A: RTS AE2B: LDAA #&20 AE2D: STAA &01,X AE2F: STAA &02,X AE31: LDX &7F11 AE34: LDAB #&0B AE36: ABX AE37: LDAB &D3 AE39: ABX AE3A: LDAA &00,X AE3C: ANDA #&7F AE3E: JSR &8937 AE41: RTS AE42: LDX &7F11 AE45: LDAB #&0B AE47: ABX AE48: LDAB &D3 AE4A: ABX AE4B: LDAB &00,X AE4D: ANDB #&7C AE4F: LDX #&E8DE AE52: ABX AE53: DEX AE54: LDAA #&04 AE56: STAA &80 AE58: STX &90 AE5A: LDX #&139B AE5D: STX &92 AE5F: JSR &A54C AE62: RTS AE63: LDAA #&20 AE65: STAA &01,X AE67: LDX &7F11 AE6A: LDAB #&0B AE6C: ABX AE6D: LDAB &D3 AE6F: ABX AE70: LDAA &00,X AE72: BITA #&40 AE74: BEQ &AE81 AE76: ANDA #&3F AE78: STAA &80 AE7A: LDAA #&2B AE7C: STAA &139D AE7F: BRA &AE8B AE81: COMA AE82: ANDA #&3F AE84: STAA &80 AE86: LDAA #&2D AE88: STAA &139D AE8B: LDAA &80 AE8D: CMPA #&3F AE8F: BNE &AE93 AE91: LDAA #&40 AE93: JSR &8937 AE96: RTS AE97: LDAA #&20 AE99: STAA &139D AE9C: STAA &139E AE9F: STAA &139F AEA2: RTS AEA3: LDAA &7F58 AEA6: BEQ &AEDB AEA8: CMPA #&02 AEAA: BLT &AEC8 AEAC: LDAA #&F4 AEAE: JSR &DEB7 AEB1: LDAA #&B4 AEB3: JSR &DEB7 AEB6: LDAA &1771 AEB9: JSR &DEB7 AEBC: LDAA #&BE AEBE: JSR &DEB7 AEC1: LDAA &1771 AEC4: JSR &DEB7 AEC7: RTS AEC8: LDAA &1771 AECB: JSR &AF08 AECE: TSTB AECF: BNE &AEC1 AED1: LDAA &7F69 AED4: JSR &B560 AED7: JSR &DEB7 AEDA: RTS AEDB: LDAA &7F53 AEDE: JSR &B560 AEE1: STAA &81 AEE3: JSR &AF08 AEE6: TSTB AEE7: BNE &AEFF AEE9: STAA &86 AEEB: LDAA &81 AEED: STAA &1771 AEF0: LDAA &7F69 AEF3: JSR &B560 AEF6: LDAB &86 AEF8: STAB &1771 AEFB: JSR &DEB7 AEFE: RTS AEFF: LDAA &81 AF01: BRA &AEFB AF03: LDAA &1771 AF06: BRA &AF30 AF08: STAA &86 AF0A: LDAA #&F9 AF0C: JSR &DEB7 AF0F: LDAA #&B4 AF11: JSR &DEB7 AF14: LDAA &1771 AF17: JSR &DEB7 AF1A: LDAA #&BE AF1C: JSR &DEB7 AF1F: LDAA &7F5F AF22: CMPA #&01 AF24: BEQ &AF2A AF26: CMPA #&05 AF28: BNE &AF03 AF2A: LDAA &7F60 AF2D: JSR &B560 AF30: JSR &DEB7 AF33: LDAA #&F1 AF35: JSR &DEB7 AF38: LDAA #&B4 AF3A: JSR &DEB7 AF3D: LDAA &86 AF3F: JSR &DEB7 AF42: LDAA #&BE AF44: JSR &DEB7 AF47: CLRB AF48: LDAA &7F68 AF4B: CMPA #&01 AF4D: BEQ &AF54 AF4F: CMPA #&05 AF51: BEQ &AF54 AF53: INCB AF54: LDAA &1771 AF57: RTS AF58: LDAA &7F58 AF5B: BEQ &AF92 AF5D: CMPA #&02 AF5F: BLT &AF7A AF61: BGT &AF75 AF63: LDAB &7F63 AF66: LDAA #&F4 AF68: TSTB AF69: BEQ &AF70 AF6B: LDAB #&B5 AF6D: JMP &9511 AF70: LDAB #&B5 AF72: JMP &9505 AF75: LDAB &7F6C AF78: BRA &AF66 AF7A: LDAA #&F9 AF7C: TST &7F63 AF7F: BEQ &AF86 AF81: JSR &AF6B AF84: BRA &AF89 AF86: JSR &AF70 AF89: LDAA #&F1 AF8B: TST &7F6C AF8E: BEQ &AF70 AF90: BRA &AF6B AF92: TST &7F7B AF95: BNE &AF63 AF97: BRA &AF7A AF99: JSR &86E4 AF9C: CMPA #&7E AF9E: BHI &AFD9 AFA0: CMPA #&09 AFA2: BEQ &AFD9 AFA4: STAA &7E96 AFA7: LDX #&1380 AFAA: STAA &05,X AFAC: LDAA &06,X AFAE: ORAA #&40 AFB0: STAA &06,X AFB2: LDAA &7E95 AFB5: DECA AFB6: STAA &80 AFB8: ASLA AFB9: ASLA AFBA: ASLA AFBB: LDAB &80 AFBD: ABA AFBE: LDAB &7E96 AFC1: INCB AFC2: ABA AFC3: TAB AFC4: LDX #&E8C2 AFC7: ABX AFC8: LDAA &00,X AFCA: CMPA #&80 AFCC: BEQ &AFD1 AFCE: STAA &7E98 AFD1: JSR &A6D1 AFD4: LDAA &7E9E AFD7: STAA &8E AFD9: RTS ********** clear all display flash/point AFDA: CLRA AFDB: LDX #&13C0 AFDE: LDAB #&20 AFE0: STAA &00,X AFE2: INX AFE3: DECB AFE4: BNE &AFE0 AFE6: RTS AFE7: 00 00 00 ... **************************************** Chase play mode increment ptr 7E83 AFEA: LDX &7E83 AFED: INX AFEE: STX &7E83 AFF1: RTS process chase play sequence AFF2: LDAA &7F72 get chase play status AFF5: CMPA #&01 AFF7: BNE &B002 RTS if not active AFF9: JSR &B003 AFFC: JSR &AFEA inc ptr 7E83 AFFF: JSR &B0A0 B002: RTS B003: LDAA &7E85 get ptr 7E85 B006: CMPA #&00 B008: BEQ &AFF1 if ptr = 0 RTS B00A: LDX &7E7E get ptr 7E7E B00D: LDD &00,X get word at ptr B00F: XGDX B010: CPX &7E83 compare word with 7E83 B013: BNE &AFF1 if not equal RTS B015: XGDX B016: LDAA &02,X B018: STAA &81 byte 3 of 5 B01A: LDAA &03,X B01C: STAA &82 byte 4 of 5 B01E: LDAA &04,X B020: STAA &83 byte 5 of 5 B022: XGDX B023: ADDD #&0005 increment sequence ptr by 5 B026: XGDX B027: CPX #&7D2C B02A: BCS &B02F check for limit B02C: LDX #&7C00 loop buffer if limit exceeded B02F: LDAA &7E85 get 7E85 B032: CMPA #&02 B034: BNE &B03B B036: LDAA #&01 B038: STAA &7E85 7E85 = 1 B03B: CPX &7E7C compare current ptr with ? B03E: BNE &B045 B040: LDAA #&00 B042: STAA &7E85 7E85 = 0 B045: STX &7E7E B048: LDAA &81 get data byte 1 B04A: STAA &87 store in &87 B04C: BITA #&80 B04E: BNE &B058 br if bit 7 set B050: ORAA #&80 set bit 7 B052: STAA &81 store in &81 B054: LDAA #&F9 vb = upper B056: BRA &B05A B058: LDAA #&F1 vb = lower B05A: JSR &DEB7 tx vb select B05D: LDAA &81 get &81 B05F: JSR &DEB7 tx note on ? B062: LDAA &82 get &82 B064: JSR &DEB7 tx note number ? B067: LDAA &83 get &83 B069: JSR &DEB7 tx velocity ? B06C: LDAA &7F70 get chase play mode B06F: CMPA #&01 B071: BLT &B095 br if mode = 0 B073: BEQ &B07F br if mode = 1 B075: CMPA #&03 B077: BEQ &B095 br if mode = 3 mode = 2 B079: LDAA &87 get cmd byte B07B: EORA #&80 toggle bit 7 B07D: STAA &81 store in &81 ...mode = 1... B07F: LDAA &83 get data byte 3 B081: STAA &7F0F store in 7F0F B084: LDAB &81 get cmd byte B086: ANDB #&07 get voice number ? B088: LDX #&7E6F B08B: ABX B08C: STAA &00,X store in table B08E: CMPA #&00 B090: BEQ &B095 B092: JSR &DF6C ...mode = 0 or 3 B095: JMP &B003 ***** increment ptr 7E79 B098: LDX &7E79 B09B: INX B09C: STX &7E79 B09F: RTS chase play step 2... B0A0: LDAA &7E7B B0A3: CMPA #&00 B0A5: BEQ &B098 B0A7: LDX &7E77 B0AA: LDD &00,X B0AC: XGDX B0AD: CPX &7E79 B0B0: BNE &B098 B0B2: XGDX B0B3: LDAA &02,X B0B5: STAA &81 B0B7: LDAA &03,X B0B9: STAA &82 B0BB: LDAA &04,X B0BD: STAA &83 B0BF: XGDX B0C0: ADDD #&0005 B0C3: XGDX B0C4: CPX #&7E58 B0C7: BCS &B0CC B0C9: LDX #&7D2C B0CC: LDAA &7E7B B0CF: CMPA #&02 B0D1: BNE &B0D8 B0D3: LDAA #&01 B0D5: STAA &7E7B B0D8: CPX &7E75 B0DB: BNE &B0E2 B0DD: LDAA #&00 B0DF: STAA &7E7B B0E2: STX &7E77 B0E5: LDAA &81 B0E7: STAA &87 B0E9: BITA #&80 B0EB: BNE &B0F5 B0ED: ORAA #&80 B0EF: STAA &81 B0F1: LDAA #&F9 B0F3: BRA &B0F7 B0F5: LDAA #&F1 B0F7: JSR &DEB7 B0FA: LDAA &81 B0FC: JSR &DEB7 B0FF: LDAA &82 B101: JSR &DEB7 B104: LDAA &83 B106: JSR &DEB7 B109: LDAA &7F70 get chase mode B10C: CMPA #&01 B10E: BLT &B131 br if mode = 0 B110: BEQ &B11C br if mode = 1 B112: CMPA #&03 B114: BEQ &B131 br if mode = 3 mode = 2 B116: LDAA &87 B118: EORA #&80 B11A: STAA &81 ...mode = 1... B11C: LDAB &81 B11E: ANDB #&07 B120: LDX #&7E6F B123: ABX B124: LDAA &00,X B126: CMPA #&00 B128: BEQ &B134 B12A: CMPA #&FF B12C: BEQ &B131 B12E: JSR &DFFE ...mode = 0 or 3... B131: JMP &B0A0 B134: LDAA #&FF B136: STAA &00,X B138: BRA &B12E B13A: 00 00 00 ... **************************************** force read of ADC chan 2 value B13D: LDAA #&02 B13F: STAA &82 B141: JMP &B157 **************************************** read values from ADC B144: INC &00EA select next ADC channel B147: LDAA &EA B149: CMPA #&02 B14B: BNE &B150 skip channel 2 B14D: INC &00EA B150: AIM #&03,&EA channel 3 is max B153: LDAA &EA B155: STAA &82 B157: LDAA &82 output byte in A to adc (channel select) B159: LDAB #&08 B15B: AIM #&FD,&02 B15E: ROLA B15F: AIM #&FB,&02 B162: BCC &B167 B164: OIM #&04,&02 B167: OIM #&02,&02 B16A: DECB B16B: BNE &B15B B16D: OIM #&08,&02 set adc enable B170: TIM #&01,&02 B173: BNE &B170 wait for adc done B175: AIM #&F7,&02 clear adc enable B178: MUL 7 cycles of nothing B179: MUL 7 cycles of nothing read byte from adc to &E9 B17A: LDAB #&08 B17C: CLR &00E9 B17F: AIM #&FD,&02 B182: LDAA &02 B184: ANDA #&01 B186: ASL &00E9 B189: ORAA &E9 B18B: STAA &E9 B18D: OIM #&02,&02 B190: DECB B191: BNE &B17F end of read byte from adc B193: LDAA &E9 get value B195: SUBA #&01 value = value - 1 B197: BCC &B19B B199: LDAA #&00 if neg value, value = 0 B19B: STAA &EB &EB = value B19D: LDX #&00C8 B1A0: LDAB &82 B = adc chan number B1A2: ABX B1A3: LDAA &00,X get last adc value for chan B1A5: STAA &EC &EC = last stored value B1A7: LDAA &EB get value B1A9: ADDA #&01 value = value + 1 B1AB: BCC &B1AF B1AD: LDAA #&FF if too big, value = &FF &EB and A is new value &EC is previous value B1AF: CMPA &EC compare new and stored value B1B1: BCC &B1C3 is new value < stored value ? B1B3: LDAB &EC B1B5: SUBB #&05 B is stored value - 5 B1B7: BCS &B1BC is B negative ? B1B9: CBA B1BA: BCS &B1BD is stored value >= new value ? B1BC: CLRB B1BD: JSR &B280 B1C0: JMP &B1DE B1C3: LDAA &EC B1C5: ADDA #&01 B1C7: BCC &B1CB B1C9: LDAA #&FF B1CB: CMPA &EB B1CD: BCC &B1DF B1CF: TAB B1D0: ADDB #&05 B1D2: BCC &B1D6 B1D4: LDAB #&FF B1D6: CMPB &EB B1D8: BCS &B1DB B1DA: CLRB B1DB: JSR &B280 B1DE: RTS B1DF: CMPB #&01 B1E1: BLT &B1E9 B1E3: BHI &B1DE B1E5: AIM #&BF,&A6 B1E8: RTS B1E9: AIM #&DF,&A6 B1EC: RTS **************************************** B1ED: JSR &DEB7 B1F0: LDAA #&B2 B1F2: JSR &DEB7 B1F5: LDAA &EB B1F7: LSRA B1F8: JSR &DEB7 B1FB: RTS B1FC: JSR &B1ED B1FF: JSR &CBD7 B202: JSR &CDD0 B205: CMPA #&01 B207: BLT &B217 B209: BEQ &B21A B20B: TST &7F3A B20E: BEQ &B23E B210: LDAA #&E0 B212: JSR &CBDD B215: BRA &B224 B217: JSR &B20B B21A: TST &7F31 B21D: BEQ &B23E B21F: LDAA #&E0 B221: JSR &CBE4 B224: LDAA &1747 B227: BITA #&02 B229: BEQ &B265 B22B: LDAA &EB B22D: LSRA B22E: LSRA B22F: ORAA #&40 B231: TAB B232: CMPA #&40 B234: BNE &B237 B236: CLRA B237: JSR &DEB7 B23A: TBA B23B: JSR &DEB7 B23E: RTS B23F: JSR &B57F B242: TSTA B243: BEQ &B1FF B245: CMPB #&02 B247: BLT &B252 B249: BEQ &B25E B24B: TST &7F6D B24E: BNE &B1FC B250: BRA &B1FF B252: LDAA #&F1 B254: TST &7F6D B257: BEQ &B25C B259: JSR &B1ED B25C: LDAA #&F9 B25E: TST &7F64 B261: BNE &B1FC B263: BRA &B1FF B265: LDAA &EB B267: LSRA B268: LSRA B269: COMA B26A: ANDA #&3F B26C: CMPA #&3F B26E: BNE &B272 B270: LDAA #&40 B272: TAB B273: CMPA #&40 B275: BNE &B278 B277: CLRA B278: JSR &DEB7 B27B: TBA B27C: JSR &DEB7 B27F: RTS **************************************** B280: LDAA &EB get value B282: STAA &00,X store value in chan table B284: TIM #&04,&9D B287: BEQ &B28A &9D bit 2 off ? B289: RTS B28A: LDAA &82 get adc chan number B28C: CMPA #&00 B28E: BEQ &B29D channel 0 ? B290: CMPA #&01 B292: BEQ &B2A0 channel 1 ? B294: CMPA #&02 B296: BEQ &B23F channel 2 ? B298: CMPA #&03 B29A: BEQ &B2A3 channel 3 ? B29C: RTS B29D: JMP &B359 jmp for chan 0 B2A0: JMP &B427 jmp for chan 1 adc chan 3 changed B2A3: LDAA &EB B2A5: SUBA #&0A B2A7: BCC &B2AB B2A9: LDAA #&00 B2AB: TIM #&20,&9A B2AE: BEQ &B2B7 B2B0: CMPA &D7 B2B2: BCC &B2B7 B2B4: JMP &B2EF B2B7: STAA &D7 B2B9: LSRA B2BA: STAA &80 B2BC: JSR &B57F B2BF: TSTA B2C0: BEQ &B2CF B2C2: JSR &DEB7 B2C5: LDAA #&B3 B2C7: JSR &DEB7 B2CA: LDAA &80 B2CC: JSR &DEB7 B2CF: JSR &CBD7 B2D2: JSR &CDD0 B2D5: CMPA #&01 B2D7: BLT &B2E2 B2D9: BEQ &B2E5 B2DB: LDAA #&D0 B2DD: JSR &CBDD B2E0: BRA &B2EA B2E2: JSR &B2DB B2E5: LDAA #&D0 B2E7: JSR &CBE4 B2EA: LDAA &80 B2EC: JSR &DEB7 B2EF: RTS B2F0: STAA &7F56 B2F3: LDAB &8E B2F5: TBA B2F6: CMPB #&E0 B2F8: BEQ &B306 B2FA: CMPB #&E1 B2FC: BEQ &B306 B2FE: CMPB #&D2 B300: BEQ &B306 B302: CMPB #&D0 B304: BNE &B313 B306: LDAB &7E98 B309: CMPB #&04 B30B: BNE &B313 B30D: LDAA &7F56 B310: JSR &8937 B313: LDAA #&F4 B315: JSR &DEB7 B318: LDAA #&B0 B31A: JSR &DEB7 B31D: LDAA &7F56 B320: JSR &DEB7 B323: TIM #&04,&9D B326: BNE &B2EF B328: JSR &CBD7 B32B: JSR &CDD0 B32E: CMPA #&01 B330: BLT &B340 B332: BEQ &B343 B334: TST &7F3C B337: BEQ &B358 B339: LDAA #&B0 B33B: JSR &CBDD B33E: BRA &B34D B340: JSR &B334 B343: TST &7F33 B346: BEQ &B358 B348: LDAA #&B0 B34A: JSR &CBE4 B34D: LDAA #&05 B34F: JSR &DEB7 B352: LDAA &7F56 B355: JSR &DEB7 B358: RTS adc chan 0 changed B359: AIM #&DF,&A6 B35C: TSTB B35D: BEQ &B366 B35F: OIM #&20,&A6 B362: STAB &00,X B364: STAB &EB B366: LDAB &7F01 B369: OIM #&01,&A1 B36C: LDAA &EB B36E: LSRA B36F: LDX #&B37A B372: ANDB #&07 B374: ASLB B375: ABX B376: LDX &00,X B378: JMP &00,X 0 = B402 1 = B2F0 2 = B38B 3 = B392 4 = B3CA 5 = B38A 6 = B38A 7 = B38A B38A: RTS B38B: BSR &B392 B38D: BSR &B3CA B38F: JMP &8A67 B392: STAA &7F77 B395: TST &7F35 B398: BEQ &B38A B39A: JSR &CBD7 B39D: LDAA #&B0 B39F: JSR &CBE4 B3A2: LDAA #&07 B3A4: JSR &DEB7 B3A7: LDAA &7F77 B3AA: JSR &DEB7 B3AD: LDAB &8E B3AF: CMPB #&D2 B3B1: BEQ &B3BF B3B3: CMPB #&D0 B3B5: BEQ &B3BF B3B7: CMPB #&E0 B3B9: BEQ &B3BF B3BB: CMPB #&E1 B3BD: BNE &B3C9 B3BF: LDAB &7E98 B3C2: CMPB #&25 B3C4: BNE &B3C9 B3C6: JSR &8937 B3C9: RTS B3CA: STAA &7F78 B3CD: TST &7F3E B3D0: BEQ &B38A B3D2: JSR &CBD7 B3D5: LDAA #&B0 B3D7: JSR &CBDD B3DA: LDAA #&07 B3DC: JSR &DEB7 B3DF: LDAA &7F78 B3E2: JSR &DEB7 B3E5: LDAB &8E B3E7: CMPB #&D2 B3E9: BEQ &B3F7 B3EB: CMPB #&D0 B3ED: BEQ &B3F7 B3EF: CMPB #&E0 B3F1: BEQ &B3BF B3F3: CMPB #&E1 B3F5: BNE &B3C9 B3F7: LDAB &7E98 B3FA: CMPB #&26 B3FC: BNE &B3C9 B3FE: JSR &8937 B401: RTS B402: TAB B403: OIM #&02,&A4 B406: LDAA &8E B408: CMPA #&E0 B40A: BEQ &B418 B40C: CMPA #&E1 B40E: BEQ &B418 B410: CMPA #&D2 B412: BEQ &B418 B414: CMPA #&D0 B416: BNE &B420 B418: LDAA &7E98 B41B: BNE &B420 B41D: AIM #&FD,&A4 B420: JSR &8994 B423: AIM #&FD,&A4 B426: RTS adv chan 1 changed B427: AIM #&BF,&A6 B42A: TSTB B42B: BEQ &B434 B42D: OIM #&40,&A6 B430: STAB &00,X B432: STAB &EB B434: LDAB &7F02 B437: JMP &B369 **************************************** B43A: LDAB &D3 B43C: CMPB #&1E B43E: BNE &B445 B440: JSR &8A90 B443: BRA &B46B B445: STAA &80 B447: LDAA #&F4 B449: LDAB &7F58 B44C: CMPB #&02 B44E: BGE &B45C B450: LDX &7F11 B453: LDAA #&F1 B455: CPX #&1700 B458: BEQ &B45C B45A: LDAA #&F9 B45C: JSR &DEB7 B45F: LDAA &D3 B461: ADDA #&80 B463: JSR &DEB7 B466: LDAA &80 B468: JSR &DEB7 B46B: LDAA &8E B46D: CMPA #&81 B46F: BNE &B479 B471: LDAA &7E98 B474: STAA &80 B476: JMP &A8BD B479: RTS B47A: LDAA &1771 B47D: CMPA #&09 B47F: BGE &B486 B481: LDAA #&00 B483: JMP &B4EB B486: CMPA #&13 B488: BGE &B48F B48A: LDAA #&01 B48C: JMP &B4EB B48F: CMPA #&1D B491: BGE &B498 B493: LDAA #&02 B495: JMP &B4EB B498: CMPA #&27 B49A: BGE &B4A1 B49C: LDAA #&03 B49E: JMP &B4EB B4A1: CMPA #&31 B4A3: BGE &B4AA B4A5: LDAA #&04 B4A7: JMP &B4EB B4AA: CMPA #&3B B4AC: BGE &B4B3 B4AE: LDAA #&05 B4B0: JMP &B4EB B4B3: CMPA #&45 B4B5: BGE &B4BC B4B7: LDAA #&06 B4B9: JMP &B4EB B4BC: CMPA #&4F B4BE: BGE &B4C5 B4C0: LDAA #&07 B4C2: JMP &B4EB B4C5: CMPA #&59 B4C7: BGE &B4CE B4C9: LDAA #&08 B4CB: JMP &B4EB B4CE: CMPA #&63 B4D0: BGE &B4D7 B4D2: LDAA #&09 B4D4: JMP &B4EB B4D7: CMPA #&6D B4D9: BGE &B4E0 B4DB: LDAA #&0A B4DD: JMP &B4EB B4E0: CMPA #&77 B4E2: BGE &B4E9 B4E4: LDAA #&0B B4E6: JMP &B4EB B4E9: LDAA #&0C B4EB: STAA &81 B4ED: LDAA #&95 B4EF: JSR &B6C7 B4F2: LDAA #&23 B4F4: JSR &B6C7 B4F7: LDAA #&B5 B4F9: JSR &B6C7 B4FC: LDAA #&03 B4FE: JSR &B6C7 B501: LDAA #&34 B503: JSR &B6C7 B506: LDX #&B51B B509: LDAA #&02 B50B: LDAB &81 B50D: MUL B50E: ABX B50F: LDAA &00,X B511: JSR &B6C7 B514: INX B515: LDAA &00,X B517: JSR &B6C7 B51A: RTS B51B: 33 36 33 37 33 38 33 39 36373839 B523: 34 30 34 31 34 32 34 33 40414243 B52B: 34 34 34 35 34 36 34 37 44454647 B533: 34 38 CE 13 98 48... B538: LDAA &1772 B53B: CMPA #&40 B53D: BNE &B545 B53F: ANDA #&3F B541: LDAB #&20 B543: BRA &B554 B545: BITA #&40 B547: BEQ &B54F B549: ANDA #&3F B54B: LDAB #&2B B54D: BRA &B554 B54F: COMA B550: ANDA #&3F B552: LDAB #&2D B554: STAB &00,X B556: INX B557: CMPA #&3F B559: BNE &B55D B55B: LDAA #&40 B55D: JMP &893A ******** if A bit 6 set, A = (A AND #&3F) + &1771 (#&7F max) else A = &1771 - (COM A AND #&3F) (#&00 min) B560: BITA #&40 test A bit 6 B562: BEQ &B570 B564: ANDA #&3F B566: ADDA &1771 B569: BITA #&80 B56B: BEQ &B56F B56D: LDAA #&7F B56F: RTS B570: COMA B571: ANDA #&3F B573: STAA &80 B575: LDAA &1771 B578: SUBA &80 B57A: BCC &B57E B57C: LDAA #&00 B57E: RTS ******************** B57F: LDAA &7F58 A = &7F58 B582: TAB B583: BEQ &B592 is it 0 ? B585: CMPA #&02 B587: BLT &B599 B589: BEQ &B592 B58B: LDAA &7F39 B58E: BEQ &B5AD B590: BRA &B5A7 B592: LDAA &7F30 A = &7F30 B595: BEQ &B5AD is it 0 ? B597: BRA &B5A7 B599: LDAA &7F30 B59C: LDAB &7F39 B59F: MUL B5A0: BEQ &B5AA B5A2: TSTB B5A3: BEQ &B5B0 B5A5: LDAB #&01 B5A7: LDAA #&F4 B5A9: RTS B5AA: TSTA B5AB: BNE &B5B3 B5AD: CLRB B5AE: CLRA B5AF: RTS B5B0: LDAA #&F1 B5B2: RTS B5B3: LDAA #&F9 B5B5: RTS **************************************** B5B6: AIM #&DF,&A3 B5B9: TIM #&20,&A3 B5BC: BNE &B5CD B5BE: TIM #&10,&A3 B5C1: BNE &B5CD B5C3: JSR &FE5C B5C6: LDAA &174E B5C9: BITA #&08 B5CB: BEQ &B5B9 B5CD: RTS B5CE: AIM #&DF,&A2 reset ? flag B5D1: TIM #&20,&A2 B5D4: BNE &B5E5 B5D6: TIM #&10,&A3 B5D9: BNE &B5E5 B5DB: JSR &FE5C B5DE: LDAA &174E B5E1: BITA #&08 B5E3: BEQ &B5D1 B5E5: RTS B5E6: LDX #&2000 B5E9: STX &7EE2 B5EC: JSR &D23B B5EF: TIM #&08,&99 B5F2: BEQ &B5FE B5F4: LDAA #&07 B5F6: STAA &BE B5F8: JSR &EA4E B5FB: JMP &AB3B B5FE: JSR &971F B601: JSR &968E B604: JSR &B5CE B607: TIM #&20,&A2 B60A: BNE &B60F B60C: JMP &9709 B60F: JSR &9710 B612: LDX &7EE2 B615: CPX &7EE7 B618: BCS &B601 B61A: JSR &B5B6 B61D: TIM #&20,&A3 B620: BNE &B625 B622: JMP &9709 B625: JSR &9710 B628: LDAA #&04 B62A: STAA &BE B62C: JSR &EA4E B62F: JMP &AB3B **************************************** write display memory to FIP B632: AIM #&FE,&A6 reset &A6 bit 0 B635: LDX #&1380 B638: LDAA #&9F B63A: STAA &87 B63C: LDAA &00,X B63E: ANDA #&7F B640: CMPA &20,X B642: BEQ &B65D B644: STAA &00,X B646: STAA &20,X B648: STAA &80 B64A: LDAA &87 B64C: JSR &C9F2 B64F: JSR &B6B9 B652: LDAA &80 B654: OIM #&01,&A6 B657: JSR &C9F2 B65A: JSR &B6B9 B65D: LDAA &87 B65F: CMPA #&80 B661: BLE &B668 B663: DECA B664: INX B665: BRA &B63A B667: RTS B668: TIM #&01,&A6 B66B: BNE &B667 B66D: LDX #&13C0 B670: LDAA #&DF B672: STAA &87 B674: LDAA &00,X B676: CMPA &20,X B678: BNE &B685 B67A: LDAA &87 B67C: CMPA #&C0 B67E: BLE &B684 B680: DECA B681: INX B682: BRA &B672 B684: RTS B685: STAA &20,X B687: STAA &81 B689: LDAA &87 B68B: JSR &C9F2 B68E: JSR &B6BD B691: INX B692: LDAA &00,X B694: CMPA &20,X B696: BEQ &B6A9 B698: CMPA &81 B69A: BNE &B6A9 B69C: STAA &20,X B69E: LDAB &87 B6A0: CMPB #&C0 B6A2: BLE &B6A9 B6A4: DEC &0087 B6A7: BRA &B691 B6A9: LDAA &81 B6AB: ANDA #&C0 B6AD: LDAB &87 B6AF: ANDB #&1F B6B1: ABA B6B2: JSR &C9F2 B6B5: JSR &B6C1 B6B8: RTS display pause routines B6B9: LDAA #&5A B6BB: BRA &B6C3 B6BD: LDAA #&C8 B6BF: BRA &B6C3 B6C1: LDAA #&FA B6C3: DECA B6C4: BNE &B6C3 B6C6: RTS B6C7: RTS B6C8: 00 00 00 ... **************************************** SCI interrupt handler B6CB: LDAA &3FFF B6CE: CMPA #&A5 B6D0: BNE &B6D5 br if no dev cart B6D2: JMP &2018 B6D5: TIM #&20,&11 test TX data empty B6D8: BEQ &B709 br if empty to rx process B6DA: TIM #&04,&11 test TX IRQ enable B6DD: BEQ &B709 br if empty to rx process process tx complete B6DF: LDX &F6 TX buffer tail B6E1: TIM #&02,&A3 B6E4: BEQ &B6F2 br if no byte for immediate tx B6E6: LDAA &7EFB get immediate tx byte B6E9: BEQ &B6ED br if not valid B6EB: STAA &13 output immediate byte B6ED: AIM #&FD,&A3 clear imm byte tx flag B6F0: BRA &B701 skip buffered tx B6F2: LDAA &00,X get byte from tx buffer B6F4: STAA &13 output byte B6F6: INX increment buffer ptr B6F7: CPX #&1380 check for buffer limit B6FA: BCS &B6FF br if limit not reached B6FC: LDX #&1200 set buffer ptr to '0' B6FF: STX &F6 store tx tail B701: CPX &F4 check for buffer empty B703: BNE &B708 br if not empty B705: AIM #&FB,&11 disable TX IRQ B708: RTI B709: TIM #&40,&11 test for RX error B70C: BEQ &B714 B70E: LDAA &12 read bad RX data B710: OIM #&10,&98 set &98 bit 4 B713: RTI rx process B714: TIM #&80,&11 test for RX data B717: BNE &B71A br if data received B719: RTI B71A: LDAA #&00 B71C: STAA &FB B71E: LDAA &12 B720: BLT &B725 branch if status byte B722: JMP &B7D4 status byte received B725: STAA &C0 store status byte B727: CMPA #&FE is it active sense ? B729: BNE &B72E B72B: OIM #&04,&9E set &9E bit 2 B72E: ORAA #&07 B730: CMPA #&FF B732: BEQ &B795 RTI if System RealTime B734: CLR &00C3 data count = 0 B737: LDAA #&06 B739: STAA &C2 message type = 6 B73B: LDAA &C0 get status byte B73D: CMPA #&F0 is it Start SysEx ? B73F: BNE &B74D B741: LDAA &7F2C get sysex rx B744: BEQ &B751 br if sysex rx is off B746: LDAA #&07 B748: STAA &C2 message type = begin sysex B74A: LDAA &C0 B74C: RTI B74D: CMPA #&F7 B74F: BNE &B758 br if not End SysEx B751: LDAA #&06 B753: STAA &C2 message type = end sysex B755: LDAA &C0 B757: RTI B758: ANDA #&0F A = status byte OR #&F B75A: CLR &0085 &85 = 0 B75D: CMPA &7F2B B760: BNE &B765 br if rx channel != patch memory ch B762: OIM #&04,&85 set patch mem chan flag B765: LDAB &7F58 get key mode B768: CMPB #&03 B76A: BEQ &B782 br if mode = WHOLE LOWER B76C: CMPA &7F2D is chan = upper channel ? B76F: BNE &B776 br if not B771: OIM #&01,&85 set upper chan flag B774: BRA &B77B B776: LDAB &7E5D is &7E5D = 0 ? (always 7F) B779: BEQ &B771 B77B: LDAB &7F58 get key mode B77E: CMPB #&01 B780: BNE &B791 br if mode != split B782: CMPA &7F36 is chan = lower channel ? B785: BNE &B78C br if not B787: OIM #&02,&85 set lower chan flag B78A: BRA &B791 B78C: LDAB &7E5C is &7E5C = 0 ? (always 7F) B78F: BEQ &B787 B791: LDAB &85 B793: BNE &B796 br if any rx channel match B795: RTI B796: STAB &7F19 store rx chan flags in 7F19 B799: LDAA &C0 get status byte B79B: ANDA #&F0 B79D: CMPA #&80 status = Note Off ? B79F: BNE &B7A6 B7A1: LDAA #&00 B7A3: STAA &C2 message type = 0, note off B7A5: RTI B7A6: CMPA #&90 status = Note On ? B7A8: BNE &B7AF B7AA: LDAA #&01 B7AC: STAA &C2 message type = 1, note on B7AE: RTI B7AF: CMPA #&B0 status = Controller ? B7B1: BNE &B7B8 B7B3: LDAA #&02 B7B5: STAA &C2 message type = 2, cont B7B7: RTI B7B8: CMPA #&C0 status = Prog Chg ? B7BA: BNE &B7C1 B7BC: LDAA #&03 B7BE: STAA &C2 &C2 = 3 B7C0: RTI B7C1: CMPA #&D0 status = AfterTch ? B7C3: BNE &B7CA B7C5: LDAA #&04 B7C7: STAA &C2 message type = 4, aftertch B7C9: RTI B7CA: CMPA #&E0 status = Bend ? B7CC: BNE &B7D3 B7CE: LDAA #&05 B7D0: STAA &C2 message type = 5, bend B7D2: RTI B7D3: RTI data byte received B7D4: STAA &C1 &C1 = RX data B7D6: LDX #&B7E1 B7D9: LDAB &C2 B7DB: LDAA #&03 B7DD: MUL B7DE: ABX B7DF: JMP &00,X B7E1: JMP &B93E note off B7E4: JMP &B99B note on B7E7: JMP &BA22 controller B7EA: JMP &BBBC prog change B7ED: JMP &BC05 aftertouch B7F0: JMP &BC29 bend B7F3: JMP &B7FA end sysex B7F6: JMP &B7FB start sysex B7F9: RTI B7FA: RTI ************************************************** start sysex B7FB: INC &00C3 data count B7FE: LDAB &C3 B800: CMPB #&01 is it byte 1 ? B802: BNE &B812 B804: LDAA &C1 B806: CMPA #&41 is b1 Roland ID ? B808: BEQ &B811 B80A: CLR &00C3 data count = 0 B80D: LDAA #&06 B80F: STAA &C2 message type = 6 - abort sysex B811: RTI B812: CMPB #&02 is it byte 2 ? B814: BNE &B81B B816: LDAA &C1 B818: STAA &8A &8A = sysex op code B81A: RTI B81B: CMPB #&03 is it byte 3 ? B81D: BNE &B82E B81F: LDAA &C1 B821: CMPA &7F2D is unit # = UPPER CHAN ? B824: BEQ &B82D B826: CLR &00C3 data count = 0 B829: LDAA #&06 B82B: STAA &C2 message type = 6 - abort sysex B82D: RTI B82E: CMPB #&04 is it byte 4? B830: BNE &B840 B832: LDAA &C1 B834: CMPA #&24 is format type = JX10 ? B836: BEQ &B840 B838: CLR &00C3 data count = 0 B83B: LDAA #&06 B83D: STAA &C2 message type = 6 - abort sysex B83F: RTI B840: LDAA &8A get op code B842: ANDA #&F0 B844: CMPA #&20 B846: CMPA #&30 B848: CMPA #&40 respond only to op type &4x B84A: BEQ &B854 B84C: CLR &00C3 data count = 0 B84F: LDAA #&06 B851: STAA &C2 message type = 6 - abort sysex B853: RTI B854: LDAA &8A get op code B856: ANDA #&0F B858: CMPA #&0E is it ERRor ? B85A: BLT &B868 B85C: BGT &B863 B85E: OIM #&40,&A3 set ERRor flag B861: BRA &B84C B863: OIM #&10,&A3 set ReJeCtion flag B866: BRA &B84C B868: CMPA #&05 is it EOF ? B86A: BNE &B871 B86C: OIM #&20,&A3 set EOF flag B86F: BRA &B84C B871: CMPA #&04 is it valid op code ? B873: BGE &B84C branch if not (abort sysex) B875: LDX #&B883 B878: TAB B879: ASLB B87A: ABX B87B: LDAA &C1 A = data byte B87D: LDAB &C3 B = byte count B87F: LDX &00,X B881: JMP &00,X JMP to (&B883 + (opcode * 2)) 0, WSF - JMP &B88B 1, RQF - JMP &B8B5 2, DAT - JMP &B8EA 3, ACK - JMP &B8E5 B883: B8 8B B8 B5 B8 EA B8 E5 Want to Send File B88B: CMPB #&04 is it format byte ? B88D: BEQ &B83F abort B88F: CMPB #&05 is it filename ? B891: BNE &B8A4 B893: CMPA #&16 is filename M16C ? B895: BNE &B89E B897: STAA &7EF0 &7EF0 (checksum) = filename B89A: OIM #&80,&A2 set WSF flag B89D: RTI B89E: CMPA #&64 is filename M64C ? B8A0: BEQ &B897 B8A2: BRA &B84C B8A4: CMPB #&06 is it checksum byte ? B8A6: BNE &B84C B8A8: ADDA &7EF0 add byte to &7EF0 (checksum) B8AB: ANDA #&7F B8AD: TSTA B8AE: BEQ &B84C no checksum error ? B8B0: OIM #&08,&A3 set &A3 bit 3 B8B3: BRA &B84C ReQuest a File B8B5: CMPB #&04 is it format byte ? B8B7: BEQ &B8C7 abort B8B9: CMPB #&05 is it filename ? B8BB: BNE &B8CE B8BD: CMPA #&16 is filename M16C ? B8BF: BNE &B8C8 B8C1: STAA &7EF0 &7EF0 (checksum) = filename B8C4: OIM #&40,&A2 set RQF flag B8C7: RTI B8C8: CMPA #&64 is filename M64C ? B8CA: BEQ &B8C1 B8CC: BRA &B8DD B8CE: CMPB #&06 is it checksum byte ? B8D0: BNE &B8DD B8D2: ADDA &7EF0 add byte to &7EF0 (checksum) B8D5: ANDA #&7F B8D7: TSTA B8D8: BEQ &B8DD no checksum error ? B8DA: OIM #&08,&A3 set Sysex RX Err flag B8DD: CLR &00C3 data count = 0 B8E0: LDAA #&06 B8E2: STAA &C2 message type = 6 - abort sysex B8E4: RTI ACKnowledge B8E5: OIM #&80,&A3 set ACK flag B8E8: BRA &B8DD DATa B8EA: CMPB #&04 is it format byte ? B8EC: BEQ &B8C7 abort B8EE: LDX &7EE2 get data pointer B8F1: CMPB #&05 is it first data byte ? B8F3: BNE &B901 B8F5: STAA &00,X store data at pointer B8F7: STAA &7EF0 store data in checksum B8FA: LDAA #&80 B8FC: STAA &7EEF init length counter B8FF: BRA &B92F B901: ADDA &7EF0 B904: STAA &7EF0 add data to checksum B907: CMPB #&06 is it even data byte ? B909: BNE &B923 B90B: LDAB &00,X get first nybble B90D: ASLB B90E: ASLB B90F: ASLB B910: ASLB move nybble to MSN B911: LDAA &C1 get data B913: ABA B914: STAA &00,X store combined nybbles B916: DEC &7EEF B919: BNE &B91E B91B: INC &00C3 B91E: INX B91F: STX &7EE2 store inc'ed pointer B922: RTI B923: CMPB #&07 is it odd data byte B925: BNE &B930 B927: LDAA &C1 get data B929: STAA &00,X store at pointer B92B: LDAA #&05 B92D: STAA &C3 set data byte = #&05 B92F: RTI B930: CMPB #&08 is it checksum byte ? B932: BNE &B8DD abort B934: ANDA #&7F B936: TSTA B937: BNE &B8DA B939: OIM #&20,&A2 set DatOK flag B93C: BRA &B8DD note off B93E: LDAB &C3 B940: CMPB #&01 is it velo byte ? B942: BEQ &B94F B944: INC &00C3 B947: LDAA &C1 B949: JSR &BA00 midi note -> internal note B94C: STAA &C4 store note B94E: RTI B94F: CLR &00C3 byte count = 0 B952: LDAA &7F19 get rx chan flags B955: BITA #&01 B957: BEQ &B968 br if no upper chan rx flag B959: LDX #&1400 B95C: LDAB &C4 B95E: ABX B95F: CLRA B960: STAA &00,X zero note in tbl @ &1400 B962: DEC &00AF B965: LDAA &7F19 get rx chan flags B968: BITA #&02 B96A: BEQ &B987 br if lower chan rx flag B96C: LDAA &7F58 get key mode B96F: CMPA #&01 B971: BNE &B97B br if not split B973: LDX #&7800 B976: DEC &7EF8 B979: BRA &B981 B97B: LDX #&1400 B97E: DEC &00AF B981: LDAB &C4 B983: ABX B984: CLRA B985: STAA &00,X zero note in tbl @ &1400 / &7800 B987: RTI ********** B988: LDAB &C4 B98A: ABX B98B: LDAA &C1 B98D: BNE &B992 B98F: STAA &00,X zero note in tbl if velo = 0 B991: RTS B992: ORAA #&80 B994: STAA &00,X store note in tbl OR #&80 B996: ORAA #&80 B998: STAA &80,X store note in tbl+#&80 OR #&80 B99A: RTS note on B99B: LDAB &C3 B99D: CMPB #&01 is it velo byte ? B99F: BEQ &B9AC B9A1: INC &00C3 B9A4: LDAA &C1 B9A6: JSR &BA00 midi note -> internal note B9A9: STAA &C4 store byte B9AB: RTI B9AC: CLR &00C3 data count = 0 B9AF: LDAA &7F19 B9B2: BITA #&01 B9B4: BEQ &B9CA br if no upper chan rx B9B6: LDX #&1400 B9B9: JSR &B988 update upper note table B9BC: TSTA B9BD: BEQ &B9C7 br if it was a note off B9BF: INC &00AF B9C2: AIM #&7F,&9B reset &9B bit 7 B9C5: BRA &B9CA B9C7: DEC &00AF B9CA: LDAA &7F19 B9CD: BITA #&02 B9CF: BEQ &B9FF br if no lower chan rx B9D1: LDAA &7F58 get key mode B9D4: CMPA #&01 B9D6: BNE &B9EC br if not split B9D8: LDX #&7800 B9DB: JSR &B988 update lower note table B9DE: TSTA B9DF: BEQ &B9E8 B9E1: INC &7EF8 B9E4: AIM #&F7,&A2 reset &A2 bit 3 B9E7: RTI B9E8: DEC &7EF8 B9EB: RTI B9EC: LDX #&1400 B9EF: JSR &B988 B9F2: TSTA B9F3: BEQ &B9FC B9F5: INC &00AF B9F8: AIM #&7F,&9B B9FB: RTI B9FC: DEC &00AF B9FF: RTI ********** modify note byte note = note - 21 (wrapped if note < 0 or note > 87) BA00: SUBA #&15 shift note down 21 BA02: BGT &BA0F not below 0 ? BA04: LDAA &C1 BA06: ADDA #&03 BA08: LDAB #&0C BA0A: JSR &CDAA wrap OOR note into bottom octave BA0D: TBA BA0E: RTS BA0F: CMPA #&58 BA11: BGE &BA14 exceeded upper limit (108) ? BA13: RTS BA14: SUBA #&04 BA16: LDAB #&0C BA18: JSR &CDAA wrap OOR note into top octave BA1B: ADDB #&4C BA1D: TBA BA1E: RTS ********** BA1F: JMP &BAB3 controller BA22: LDAB &C3 BA24: CMPB #&01 is it data byte ? BA26: BEQ &BA1F BA28: INC &00C3 BA2B: LDAA &C1 BA2D: CMPA #&01 mod ? BA2F: BNE &BA36 BA31: LDAA #&00 BA33: STAA &89 BA35: RTI BA36: LDAA &C1 BA38: CMPA #&05 porta time ? BA3A: BNE &BA41 BA3C: LDAA #&01 BA3E: STAA &89 BA40: RTI BA41: LDAA &C1 BA43: CMPA #&07 volume ? BA45: BNE &BA4C BA47: LDAA #&02 BA49: STAA &89 BA4B: RTI BA4C: LDAA &C1 BA4E: CMPA #&40 hold ? BA50: BNE &BA57 BA52: LDAA #&03 BA54: STAA &89 BA56: RTI BA57: LDAA &C1 BA59: CMPA #&41 porta on/off ? BA5B: BNE &BA62 BA5D: LDAA #&04 BA5F: STAA &89 BA61: RTI BA62: LDAA &7F19 BA65: BNE &BA6C is &7F19 != 0 ? BA67: LDAA #&0B BA69: STAA &89 BA6B: RTI BA6C: LDAA &C1 BA6E: CMPA #&7A local on/off ? BA70: BNE &BA77 BA72: LDAA #&05 BA74: STAA &89 BA76: RTI BA77: LDAA &C1 BA79: CMPA #&7B all notes off ? BA7B: BNE &BA82 BA7D: LDAA #&06 BA7F: STAA &89 BA81: RTI BA82: LDAA &C1 BA84: CMPA #&7C omni off ? BA86: BNE &BA8D BA88: LDAA #&06 BA8A: STAA &89 BA8C: RTI BA8D: LDAA &C1 BA8F: CMPA #&7D omni on ? BA91: BNE &BA98 BA93: LDAA #&06 BA95: STAA &89 BA97: RTI BA98: LDAA &C1 BA9A: CMPA #&7E mono on ? BA9C: BNE &BAA3 BA9E: LDAA #&06 BAA0: STAA &89 BAA2: RTI BAA3: LDAA &C1 BAA5: CMPA #&7F poly on ? BAA7: BNE &BAAE BAA9: LDAA #&06 BAAB: STAA &89 BAAD: RTI BAAE: LDAA #&0B BAB0: STAA &89 BAB2: RTI jump based on controller type BAB3: CLR &00C3 BAB6: LDX #&BAC1 BAB9: LDAB &89 BABB: LDAA #&03 BABD: MUL BABE: ABX BABF: JMP &00,X BAC1: JMP &BAE5 mod BAC4: JMP &BB09 porta time BAC7: JMP &BB12 volume BACA: JMP &BB36 hold BACD: JMP &BB5A porta on/off BAD0: JMP &BB7E local on/off BAD3: JMP &BB92 mode change BAD6: JMP &BBA2 BAD9: JMP &BBAB BADC: JMP &BBB4 BADF: JMP &BBB8 BAE2: JMP &B7FA unknown control mod BAE5: LDAB &7F19 BAE8: RORB BAE9: BCC &BAF8 BAEB: LDAA &7F32 BAEE: BEQ &BAF8 BAF0: OIM #&04,&9B BAF3: LDAA &C1 BAF5: STAA &1785 BAF8: RORB BAF9: BCC &BB08 BAFB: LDAA &7F3B BAFE: BEQ &BB08 BB00: OIM #&80,&A0 BB03: LDAA &C1 BB05: STAA &7EF2 BB08: RTI porta time BB09: OIM #&08,&9B BB0C: LDAA &C1 BB0E: STAA &1786 BB11: RTI volume BB12: LDAB &7F19 BB15: RORB BB16: BCC &BB25 BB18: LDAA &7F35 BB1B: BEQ &BB25 BB1D: OIM #&20,&9B BB20: LDAA &C1 BB22: STAA &1788 BB25: RORB BB26: BCC &BB35 BB28: LDAA &7F3E BB2B: BEQ &BB35 BB2D: OIM #&40,&A0 BB30: LDAA &C1 BB32: STAA &7EF3 BB35: RTI hold BB36: LDAB &7F19 BB39: RORB BB3A: BCC &BB49 BB3C: LDAA &7F34 BB3F: BEQ &BB49 BB41: OIM #&40,&9B BB44: LDAA &C1 BB46: STAA &1789 BB49: RORB BB4A: BCC &BB59 BB4C: LDAA &7F3D BB4F: BEQ &BB59 BB51: OIM #&20,&A0 BB54: LDAA &C1 BB56: STAA &7EF4 BB59: RTI porta on/off BB5A: LDAB &7F19 BB5D: RORB BB5E: BCC &BB6D BB60: LDAA &7F33 BB63: BEQ &BB6D BB65: OIM #&10,&9B BB68: LDAA &C1 BB6A: STAA &1787 BB6D: RORB BB6E: BCC &BB7D BB70: LDAA &7F3C BB73: BEQ &BB7D BB75: OIM #&80,&A1 BB78: LDAA &C1 BB7A: STAA &7EF5 BB7D: RTI local on/off BB7E: LDAB &7F19 BB81: RORB BB82: BCC &BB89 BB84: LDAA &C1 BB86: STAA &7F30 BB89: RORB BB8A: BCC &BB91 BB8C: LDAA &C1 BB8E: STAA &7F39 BB91: RTI mode change BB92: LDAB &7F19 BB95: RORB BB96: BCC &BB9B BB98: OIM #&80,&9B BB9B: RORB BB9C: BCC &BBA1 BB9E: OIM #&08,&A2 BBA1: RTI unused mode changes BBA2: OIM #&80,&9B BBA5: LDAA #&00 BBA7: STAA &5500 BBAA: RTI BBAB: OIM #&80,&9B BBAE: LDAA #&7F BBB0: STAA &5500 BBB3: RTI BBB4: OIM #&80,&9B BBB7: RTI BBB8: OIM #&80,&9B BBBB: RTI program change BBBC: LDAB &7F19 BBBF: BITB #&04 BBC1: BEQ &BBCC BBC3: LDAA &C1 BBC5: STAA &7E91 BBC8: OIM #&04,&A6 BBCB: RTI BBCC: RORB BBCD: BCC &BBE8 BBCF: LDAA &7F2B BBD2: CMPA &7F2D BBD5: BEQ &BBE8 BBD7: TST &7F2E BBDA: BEQ &BBE8 BBDC: LDAA &C1 BBDE: CMPA #&63 BBE0: BGT &BBE8 BBE2: STAA &7E9C BBE5: OIM #&08,&A6 BBE8: RORB BBE9: BCC &BC04 BBEB: LDAA &7F2B BBEE: CMPA &7F36 BBF1: BEQ &BC04 BBF3: TST &7F37 BBF6: BEQ &BC04 BBF8: LDAA &C1 BBFA: CMPA #&63 BBFC: BGT &BBE8 BBFE: STAA &7EF9 BC01: OIM #&10,&A6 BC04: RTI aftertouch BC05: LDAB &7F19 BC08: RORB BC09: BCC &BC18 BC0B: LDAA &7F2F BC0E: BEQ &BC18 BC10: OIM #&01,&9B BC13: LDAA &C1 BC15: STAA &1783 BC18: RORB BC19: BCC &BC28 BC1B: LDAA &7F38 BC1E: BEQ &BC28 BC20: OIM #&20,&A1 BC23: LDAA &C1 BC25: STAA &7EF6 BC28: RTI pitch bend BC29: LDAB &C3 BC2B: CMPB #&01 BC2D: BEQ &BC33 BC2F: INC &00C3 BC32: RTI BC33: CLR &00C3 BC36: LDAB &7F19 BC39: RORB BC3A: BCC &BC49 BC3C: TST &7F31 BC3F: BEQ &BC49 BC41: OIM #&02,&9B BC44: LDAA &C1 BC46: STAA &1784 BC49: RORB BC4A: BCC &BC59 BC4C: TST &7F3A BC4F: BEQ &BC59 BC51: OIM #&10,&A0 BC54: LDAA &C1 BC56: STAA &7EF7 BC59: RTI **************************************** BC5A: LDAB #&6E BC5C: SUBB &87 BC5E: LDAA &7F54 BC61: ADDA #&14 BC63: CBA BC64: BCC &BC68 BC66: BSR &BC99 BC68: LDAA &7F55 BC6B: ADDA #&15 BC6D: CBA BC6E: BCS &BC72 BC70: BRA &BC89 BC72: RTS BC73: LDX #&15FF BC76: LDAB #&53 BC78: STAB &87 BC7A: INX BC7B: TST &00,X BC7D: BEQ &BC81 BC7F: BSR &BC5A BC81: DEC &0087 BC84: BNE &BC7A BC86: JMP &BD1E BC89: CLR &00,X BC8B: LDAA #&90 BC8D: JSR &CBDD BC90: TBA BC91: JSR &DEB7 BC94: CLRA BC95: JSR &DEB7 BC98: RTS BC99: CLR &00,X BC9B: LDAA #&90 BC9D: JSR &CBE4 BCA0: TBA BCA1: JSR &DEB7 BCA4: CLRA BCA5: JSR &DEB7 BCA8: RTS BCA9: LDX #&15FF BCAC: LDAB #&53 BCAE: STAB &87 BCB0: INX BCB1: TST &00,X BCB3: BEQ &BCB7 BCB5: BSR &BCBE BCB7: DEC &0087 BCBA: BNE &BCB0 BCBC: BRA &BD1E BCBE: LDAB #&6E BCC0: SUBB &87 BCC2: LDAA &7F7A BCC5: ADDA #&14 BCC7: CBA BCC8: BCC &BC89 BCCA: BRA &BC99 ********** BCCC: JSR &CBD7 tx #&F5 (midi out) BCCF: LDAA &7F79 get midi send key mode BCD2: CMPA #&03 BCD4: BHI &BCE0 br if mode > 3 BCD6: BEQ &BD25 br if mode = 3 BCD8: CMPA #&01 BCDA: BLT &BCA9 br if mode < 1 BCDC: BEQ &BD04 br if mode = 1 BCDE: BRA &BCEB BCE0: LDAA &7F58 BCE3: BEQ &BD04 BCE5: CMPA #&02 BCE7: BLT &BC73 BCE9: BEQ &BD04 BCEB: LDX #&15FF BCEE: LDAB #&53 BCF0: STAB &87 BCF2: INX BCF3: TST &00,X BCF5: BEQ &BCFD BCF7: LDAB #&6E BCF9: SUBB &87 BCFB: BSR &BC89 BCFD: DEC &0087 BD00: BNE &BCF2 BD02: BRA &BD1E BD04: LDX #&15FF BD07: LDAB #&53 BD09: STAB &87 BD0B: INX BD0C: TST &00,X BD0E: BEQ &BD17 BD10: LDAB #&6E BD12: SUBB &87 BD14: JSR &BC99 BD17: DEC &0087 BD1A: BNE &BD0B BD1C: BRA &BD1E BD1E: LDX &F6 BD20: CPX &F4 BD22: BNE &BD1E BD24: RTS BD25: LDX #&15FF BD28: LDAB #&53 BD2A: STAB &87 BD2C: INX BD2D: TST &00,X BD2F: BEQ &BD51 BD31: LDAB #&6E BD33: SUBB &87 BD35: CLR &00,X BD37: LDAA #&90 BD39: JSR &CBDD BD3C: TBA BD3D: JSR &DEB7 BD40: CLRA BD41: JSR &DEB7 BD44: LDAA #&90 BD46: JSR &CBE4 BD49: TBA BD4A: JSR &DEB7 BD4D: CLRA BD4E: JSR &DEB7 BD51: DEC &0087 BD54: BNE &BD2C BD56: BRA &BD1E BD58: TIM #&08,&9D BD5B: BNE &BD9B BD5D: JSR &CBD7 BD60: JSR &CDD0 BD63: CMPA #&01 BD65: BLT &BD6B BD67: BHI &BD6D BD69: BRA &BD9C BD6B: BSR &BD9C BD6D: LDAA #&B0 BD6F: JSR &CBDD BD72: LDAA #&40 BD74: JSR &DEB7 BD77: CLRA BD78: JSR &DEB7 BD7B: LDAA #&01 BD7D: JSR &DEB7 BD80: CLRA BD81: JSR &DEB7 BD84: LDAA #&E0 BD86: JSR &CBDD BD89: CLRA BD8A: JSR &DEB7 BD8D: LDAA #&40 BD8F: JSR &DEB7 BD92: LDAA #&D0 BD94: JSR &CBDD BD97: CLRA BD98: JSR &DEB7 BD9B: RTS BD9C: LDAA #&B0 BD9E: JSR &CBE4 BDA1: LDAA #&40 BDA3: JSR &DEB7 BDA6: CLRA BDA7: JSR &DEB7 BDAA: LDAA #&01 BDAC: JSR &DEB7 BDAF: CLRA BDB0: JSR &DEB7 BDB3: LDAA #&E0 BDB5: JSR &CBE4 BDB8: CLRA BDB9: JSR &DEB7 BDBC: LDAA #&40 BDBE: JSR &DEB7 BDC1: LDAA #&D0 BDC3: JSR &CBE4 BDC6: CLRA BDC7: JSR &DEB7 BDCA: RTS **************************************** EMPTY SPACE ! BDCB: TOTAL SPACE = 564 bytes (decimal) BFFF: **************************************** start of code execution C000: LDAA &3FFF monitor code test C003: CMPA #&A5 C005: BNE &C00A C007: JMP &2000 C00A: LDS #&17FF setup stack pointer C00D: CLRA clear &80 to &FF C00E: LDX #&0080 C011: STAA &00,X C013: INX C014: CPX #&0100 C017: BNE &C011 clear &1000 to &17FF C019: CLRA C01A: LDX #&1000 C01D: STAA &00,X C01F: INX C020: CPX #&1800 C023: BNE &C01D clear &7800 to &7BFF C025: LDX #&7800 C028: STAA &00,X C02A: INX C02B: CPX #&7C00 C02E: BNE &C028 copy &F05C-&F0A7 to &1100-&114B C030: LDX #&F05C C033: STX &90 C035: LDX #&1100 C038: STX &92 C03A: LDX &90 C03C: LDAA &00,X C03E: INX C03F: STX &90 C041: LDX &92 C043: STAA &00,X C045: CMPA &00,X verify correct write C047: BNE &C043 C049: INX C04A: STX &92 C04C: CPX #&114C C04F: BNE &C03A copy &F0A8-&F1A8 to &1000-&10FF C051: LDX #&F0A8 C054: STX &90 C056: LDX #&1000 C059: STX &92 C05B: LDX &90 C05D: LDAA &00,X C05F: INX C060: STX &90 C062: LDX &92 C064: STAA &00,X C066: INX C067: STX &92 C069: CPX #&1100 C06C: BNE &C05B &7EA0-&7EAB = #&01 ... #&0C C06E: LDAA #&01 C070: LDX #&7EA0 C073: STAA &00,X C075: INCA C076: INX C077: CPX #&7EAC C07A: BNE &C073 &7EC0-&7EC5 = #&01 ... #&06 C07C: LDAA #&01 C07E: LDX #&7EC0 C081: STAA &00,X C083: INCA C084: INX C085: CPX #&7EC6 C088: BNE &C081 C08A: LDX #&7EA6 C08D: STX &BA C08F: LDAA #&06 C091: STAA &BC C093: LDX #&7EC6 C096: STX &7E89 C099: LDAA #&06 C09B: STAA &B2 C09D: LDX #&1200 C0A0: STX &F4 init serial tx buffer C0A2: STX &F6 C0A4: LDX #&1700 C0A7: STX &7F11 C0AA: LDX &7F11 init tone edit buffer ptr C0AD: STX &D8 C0AF: LDX #&1600 C0B2: STX &7E8F init ? ptr C0B5: STX &B6 C0B7: LDAA #&F4 C0B9: STAA &B0 C0BB: LDAA #&BE C0BD: STAA &00 init port 1 DDR C0BF: LDAA #&10 C0C1: STAA &01 init port 2 DDR C0C3: LDAA #&00 C0C5: STAA &08 init timer CSR C0C7: LDAA #&0C C0C9: STAA &10 init SCI rate and mode C0CB: LDAA #&3E C0CD: STAA &11 init SCI TX/RX control C0CF: LDAA &08 C0D1: LDD &09 C0D3: ADDD #&32C8 store time+13000 in OCR C0D6: STD &0B C0D8: LDAA #&B3 C0DA: STAA &02 init port 1 C0DC: LDAA #&FF C0DE: STAA &5000 all LEDs off C0E1: LDAA #&08 C0E3: STAA &117F C0E6: CLI enable interrupts C0E7: LDAA #&07 disable C1, C2 and Pedal... C0E9: STAA &7F01 . C0EC: STAA &7F02 . C0EF: STAA &7F00 . C0F2: BRA &C0F7 C0F4: 00 00 00 ... C0F7: JSR &C1D4 init system C0FA: CLRA C0FB: STAA &8E display function = patch name C0FD: STAA &7E87 patch bank = A C100: STAA &7E88 patch number = 1 C103: COMA C104: STAA &1745 row 5 = no keys on C107: LDAA #&04 C109: STAA &1747 row 7 => mem sel = internal C10C: JSR &CDBB clear display clear &1480 to &14FF C10F: CLRA C110: LDX #&1480 C113: STAA &00,X C115: INX C116: CPX #&1500 C119: BNE &C113 C11B: OIM #&08,&9D C11E: OIM #&04,&9D C121: OIM #&80,&A4 C124: JSR &9FEF load patch C127: LDAA #&09 C129: STAA &BE C12B: JSR &EC7E display startup message C12E: JSR &B632 update FIP from display mem C131: LDAA #&B4 C133: STAA &7F03 ***** MAIN SYSTEM LOOP ***** C136: JSR &B144 process ADC inputs 0,1,3 C139: JSR &B632 write display mem to fip C13C: JSR &C6BC update LEDs and mod flash status C13F: JSR &C36B test cart for sequencer data - enable OCI C142: JSR &C39B check for remote sysex requests C145: JSR &827B read key matrix and action C148: JSR &B144 process ADC inputs 0,1,3 C14B: JSR &D2BD key assign stuff C14E: JSR &AFF2 C151: JSR &B144 process ADC inputs 0,1,3 C154: JSR &B13D process ADC bend input C157: JSR &B144 process ADC inputs 0,1,3 C15A: JSR &B144 process ADC inputs 0,1,3 C15D: JSR &CE1E C160: TSTA C161: BEQ &C148 C163: JSR &CA0A C166: JSR &B144 process ADC inputs 0,1,3 C169: JSR &C402 C16C: JSR &B144 process ADC inputs 0,1,3 C16F: JSR &C6FF C172: JSR &B144 process ADC inputs 0,1,3 C175: JSR &94D1 C178: DEC &7F03 C17B: BNE &C136 C17D: OIM #&04,&9D C180: OIM #&80,&A4 C183: JSR &9FEF load patch C186: AIM #&FB,&9D C189: AIM #&F7,&9D C18C: JSR &B144 process ADC inputs 0,1,3 C18F: JSR &B632 write display mem to fip C192: JSR &C6BC update LEDs and mod flash status C195: JSR &C36B test cart for sequencer data - enable OCI C198: JSR &C39B check for remote sysex requests C19B: JSR &827B read key matrix and action C19E: JSR &B144 process ADC inputs 0,1,3 C1A1: JSR &D2BD key assign stuff C1A4: JSR &AFF2 C1A7: JSR &B144 process ADC inputs 0,1,3 C1AA: JSR &B13D process ADC bend input C1AD: JSR &B144 process ADC inputs 0,1,3 C1B0: JSR &B144 process ADC inputs 0,1,3 C1B3: JSR &CE1E C1B6: TSTA C1B7: BEQ &C19E C1B9: JSR &CA0A C1BC: JSR &B144 process ADC inputs 0,1,3 C1BF: JSR &C402 C1C2: JSR &B144 process ADC inputs 0,1,3 C1C5: JSR &C6FF C1C8: JSR &B144 process ADC inputs 0,1,3 C1CB: JSR &94D1 C1CE: JMP &C18C C1D1: 00 00 00 ... END OF MAIN SYSTEM LOOP **************************************** init system C1D4: JSR &CDBB clear &13C0 to &13FF C1D7: LDX #&13C0 C1DA: CLRA C1DB: STAA &00,X C1DD: INX C1DE: CPX #&1400 C1E1: BNE &C1DB C1E3: LDAA #&03 default to message 3 C1E5: LDAB &4000 read patch keys C1E8: COMB C1E9: STAB &9F C1EB: CMPB #&88 check for D+H C1ED: BNE &C1F3 C1EF: LDAA #&08 message 8 C1F1: BRA &C209 C1F3: CMPB #&9B check for H,E,D,B+A C1F5: BNE &C1FB C1F7: LDAA #&05 message 5 C1F9: BRA &C209 C1FB: BITB #&80 check for H C1FD: BEQ &C203 C1FF: LDAA #&06 message 6 C201: BRA &C209 C203: BITB #&08 check for D C205: BEQ &C209 C207: LDAA #&07 message 7 C209: STAA &BE store message number C20B: JSR &EC7E display message C20E: JSR &B632 C211: LDAB &9F C213: CMPB #&07 C215: BNE &C236 check for dev cartridge C217: LDX #&2000 C21A: LDAB #&09 C21C: LDAA &00,X C21E: CMPA #&7E C220: BNE &C236 C222: INX C223: LDAA &00,X C225: CMPA #&20 C227: BNE &C236 C229: INX C22A: INX C22B: DECB C22C: BNE &C21C C22E: LDAA #&A5 C230: STAA &3FFF C233: JMP &2000 end of dev cart check C236: TIM #&01,&9F skip voice init if patch A is held C239: BNE &C27F ( ie enter ASSIGNER test mode ) C23B: LDAA #&F9 C23D: JSR &DEB7 tx #&F9 C240: JSR &CE10 wait C243: TIM #&10,&9A check for voice board handshake C246: BEQ &C23B no ack ? C248: AIM #&EF,&9A clear &9A bit 4 (NMI flag) C24B: LDAA #&F1 C24D: JSR &DEB7 tx #&F1 C250: JSR &CE10 wait C253: TIM #&10,&9A check for voice board handshake C256: BEQ &C24B no ack ? C258: LDAA &4004 C25B: CMPA #&FB test for MIDI button C25D: BNE &C27F send omni off/poly on on all channels C25F: CLRB C260: JSR &CBD7 tx #&F5 for B = 0 to &F C263: LDAA #&B0 C265: ABA C266: STAA &80 C268: JSR &DEB7 tx #&B0 + B C26B: LDAA #&7C C26D: JSR &DEB7 tx #&7C C270: LDAA &80 C272: JSR &DEB7 tx #&B0 + B C275: LDAA #&7F C277: JSR &DEB7 tx #&7F C27A: INCB C27B: CMPB #&0F C27D: BLS &C263 C27F: AIM #&FE,&9A clear &9A bit 0 C282: LDX &F6 C284: CPX &F4 C286: BNE &C27F wait for tx buffer to empty C288: JSR &CE63 C28B: JSR &CE2B C28E: LDAA &7F2D get upper midi ch C291: ANDA #&0F C293: STAA &7F13 store upper midi ch C296: LDAA &7F36 get lower midi ch C299: ANDA #&0F C29B: STAA &7F14 store lower midi ch C29E: LDAA #&7F C2A0: STAA &7F30 upper local on C2A3: STAA &7F39 lower local on C2A6: STAA &7E5D upper omni off - fixed C2A9: STAA &7E5C lower omni off - fixed C2AC: STAA &7E5A ? C2AF: STAA &7E5B ? C2B2: CLR &7EF8 C2B5: LDAA &1747 get row 7 new presses C2B8: BITA #&02 C2BA: BNE &C2C4 br if 'bend pol' neg ? bend polarity C2BC: LDAB #&BF C2BE: JSR &8796 tx vb ptr (F4), BF, 0 C2C1: JMP &C2C9 pos ? bend polarity C2C4: LDAB #&BF C2C6: JSR &8789 tx vb ptr (F4), BF, 7F C2C9: LDAA #&7F bug ? C2CB: LDAA #&B4 C2CD: JSR &DEB7 tx B4 but why ? C2D0: LDAA &604B get store master tune C2D3: ANDA #&7F C2D5: TIM #&01,&9F C2D8: BEQ &C2DC C2DA: LDAA #&40 only in ASS TEST mode C2DC: STAA &1771 store current master tune C2DF: ANDA #&7F C2E1: JSR &DEB7 tx master tune value C2E4: LDAA #&BE C2E6: JSR &DEB7 tx BE C2E9: LDAA &1771 C2EC: ANDA #&7F C2EE: JSR &DEB7 tx master tune value C2F1: LDAA #&40 C2F3: STAA &1772 C2F6: TIM #&01,&9F C2F9: BNE &C30F ASS TEST ? C2FB: LDAA &77F0 get stored Pedal function C2FE: STAA &7F00 store in current pedal func C301: LDAA &77F1 get stored C1 func C304: STAA &7F01 store in current C1 func C307: LDAA &77F2 get stored C2 func C30A: STAA &7F02 store in current C2 func C30D: BRA &C319 C30F: CLRA ASS TEST C310: STAA &7F00 C313: STAA &7F01 C316: STAA &7F02 C319: CLRA C31A: STAA &7E98 current edit factor = 0 C31D: STAA &7F5E upper chr shift = 0 C320: STAA &7F67 lower chr shift = 0 C323: LDAA #&40 C325: STAA &7F0C C328: STAA &7F0D C32B: RTS ********** not used / called from list C32C: CLRA C32D: STAA &8E func disp = patch name C32F: STAA &7E87 patch bank = A C332: STAA &7E88 patch number = 1 C335: COMA C336: STAA &1745 row 5 status = all off C339: LDAA #&04 C33B: STAA &1747 mem sel = cart C33E: JSR &CDBB clear display C341: CLRA C342: LDX #&1480 C345: STAA &00,X C347: INX C348: CPX #&1500 C34B: BNE &C345 C34D: JSR &9FEF load patch C350: RTS ********** not used / called from list C351: LDAA &80 C353: LDAB #&0A C355: JSR &CDAA C358: STAA &82 C35A: STAB &83 C35C: LDX #&1380 C35F: LDAA &82 C361: STAA &1E,X C363: LDAA &83 C365: STAA &1F,X C367: RTS C368: 00 00 00 ... ********** test cart signature for sequencer data enable OC IRQ C36B: LDX #&2000 C36E: LDAA #&A5 C370: CMPA &00,X C372: BNE &C37E is &2000 != #&A5 ? C374: LDAA #&53 C376: CMPA &01,X C378: BNE &C37E is &2001 != #&53 ? C37A: OIM #&08,&08 enable OC IRQ C37D: RTS C37E: AIM #&F7,&08 disable OC IRQ C381: RTS ********** unused ? C382: AIM #&FB,&9E C385: OIM #&80,&9B C388: JSR &C56D C38B: CLR &00C3 C38E: LDAA #&06 C390: STAA &C2 C392: LDAB #&BB C394: JSR &8796 C397: RTS C398: 00 00 00 ... ********** check for remote SysEx requests C39B: LDAA &A2 C39D: ROLA C39E: BCC &C3C9 br if no WSF C3A0: LDAA #&0B C3A2: STAA &BE message = 'MIDI BULK LOAD' C3A4: JSR &9681 reset sysex status flags C3A7: JSR &EA4E display message C3AA: LDX #&2000 C3AD: STX &7EE2 ptr to start of cart C3B0: LDX #&2800 C3B3: LDAA &7EF0 get filename C3B6: CMPA #&64 C3B8: BNE &C3C0 br if not M64C C3BA: LDX #&4000 C3BD: STX &7EE7 ptr to end of M64C cart C3C0: JSR &968E set display to flash C3C3: JSR &9710 send sysex ACK C3C6: JMP &B601 jump into bulk load routine C3C9: ROLA C3CA: BCC &C3F2 br if no RQF C3CC: LDAA #&0A C3CE: STAA &BE message = 'MIDI BULK DUMP' C3D0: JSR &9681 reset sysex status flags C3D3: JSR &EA4E display message C3D6: LDX #&2000 C3D9: STX &7EE0 ptr to start of cart C3DC: LDX #&2800 C3DF: LDAA &7EF0 get filename C3E2: CMPA #&64 C3E4: BNE &C3EC br if not M64C C3E6: LDX #&4000 C3E9: STX &7EE7 ptr to end of M64C cart C3EC: JSR &968E set display to flash C3EF: JMP &9780 jump into bulk dump routine C3F2: RTS C3F3: RTS **************************************** C3F4: SEI C3F5: LDAA &00,X C3F7: STAA &81 C3F9: LDAB #&FF C3FB: STAB &00,X C3FD: CLI C3FE: RTS C3FF: 00 00 00 ... C402: TIM #&04,&A6 C405: BEQ &C436 C407: AIM #&FB,&A6 C40A: LDAA &7E91 C40D: CMPA #&3F C40F: BLS &C429 C411: JSR &D259 C414: TIM #&08,&9A C417: BNE &C435 C419: JSR &9C11 C41C: TIM #&08,&9A C41F: BNE &C435 C421: AIM #&7F,&A4 C424: LDAA &7E91 C427: BRA &C42C C429: OIM #&80,&A4 C42C: OIM #&04,&9D C42F: JSR &8370 C432: AIM #&FB,&9D C435: RTS C436: TIM #&08,&A6 C439: BEQ &C44F C43B: AIM #&F7,&A6 C43E: TST &7F2E C441: BEQ &C44F C443: AIM #&FE,&A0 C446: OIM #&80,&9D C449: JSR &A38E C44C: JMP &AB3B C44F: TIM #&10,&A6 C452: BEQ &C46B C454: AIM #&EF,&A6 C457: TST &7F37 C45A: BEQ &C46B C45C: OIM #&01,&A0 C45F: OIM #&80,&9D C462: LDAA &7EF9 C465: JSR &A391 C468: JMP &AB3B C46B: TIM #&08,&9B C46E: BEQ &C489 C470: AIM #&F7,&9B C473: LDAA &1786 C476: STAA &7F56 C479: LDAA #&F4 C47B: JSR &DEB7 C47E: LDAA #&B0 C480: JSR &DEB7 C483: LDAA &7F56 C486: JSR &DEB7 C489: LDAA #&F4 C48B: LDAB &7F58 C48E: BEQ &C4A0 C490: CMPB #&02 C492: BEQ &C4A0 C494: BLT &C499 C496: JMP &C586 C499: LDAA #&F1 C49B: JSR &C586 C49E: LDAA #&F9 C4A0: STAA &B0 C4A2: TIM #&01,&9B C4A5: BEQ &C4B8 C4A7: AIM #&FE,&9B C4AA: JSR &CBD1 C4AD: LDAA #&B3 C4AF: JSR &DEB7 C4B2: LDAA &1783 C4B5: JSR &DEB7 C4B8: TIM #&02,&9B C4BB: BEQ &C4EF C4BD: AIM #&FD,&9B C4C0: TST &7F64 C4C3: BEQ &C4EF C4C5: LDAA &1784 C4C8: ASLA C4C9: LDAB #&7F C4CB: BITA #&80 C4CD: BNE &C4D2 C4CF: LDAB #&00 C4D1: COMA C4D2: STAB &80 C4D4: ANDA #&7F C4D6: STAA &81 C4D8: JSR &CBD1 C4DB: LDAA #&B2 C4DD: JSR &DEB7 C4E0: LDAA &81 C4E2: JSR &DEB7 C4E5: LDAA #&BF C4E7: JSR &DEB7 C4EA: LDAA &80 C4EC: JSR &DEB7 C4EF: TIM #&04,&9B C4F2: BEQ &C50A C4F4: AIM #&FB,&9B C4F7: JSR &CBD1 C4FA: LDAA #&BC C4FC: JSR &DEB7 C4FF: LDAA &1785 C502: LDAB &7F62 C505: MUL C506: ASLA C507: JSR &DEB7 C50A: TIM #&10,&9B C50D: BEQ &C529 C50F: AIM #&EF,&9B C512: LDAA &1787 C515: JSR &CE15 C518: STAA &7F63 C51B: JSR &CBD1 C51E: LDAA #&B5 C520: JSR &DEB7 C523: LDAA &7F63 C526: JSR &DEB7 C529: TIM #&20,&9B C52C: BEQ &C550 C52E: AIM #&DF,&9B C531: JSR &CBD1 C534: LDAA #&B1 C536: JSR &DEB7 C539: SEI C53A: LDAA &1788 C53D: ASLA C53E: LDAB &1788 C541: ASLB C542: CLI C543: MUL C544: LDAB #&C0 C546: MUL C547: ADDA #&40 C549: LSRA C54A: STAA &7E5A C54D: JSR &DEB7 C550: TIM #&40,&9B C553: BEQ &C56D C555: AIM #&BF,&9B C558: JSR &CBD1 C55B: LDAA #&BB C55D: JSR &DEB7 C560: CLRA C561: LDAB &1789 C564: BITB #&40 C566: BEQ &C56A C568: LDAA #&7F C56A: JSR &DEB7 C56D: TIM #&80,&9B C570: BEQ &C585 C572: AIM #&7F,&9B C575: LDAA &AF C577: BEQ &C585 C579: CLRA C57A: LDX #&1400 C57D: STAA &00,X C57F: INX C580: CPX #&1480 C583: BNE &C57D C585: RTS C586: STAA &B0 C588: TIM #&20,&A1 C58B: BEQ &C59E C58D: AIM #&DF,&A1 C590: JSR &CBD1 C593: LDAA #&B3 C595: JSR &DEB7 C598: LDAA &7EF6 C59B: JSR &DEB7 C59E: TIM #&10,&A0 C5A1: BEQ &C5D5 C5A3: AIM #&EF,&A0 C5A6: TST &7F6D C5A9: BEQ &C5D5 C5AB: LDAA &7EF7 C5AE: ASLA C5AF: LDAB #&7F C5B1: BITA #&80 C5B3: BNE &C5B8 C5B5: LDAB #&00 C5B7: COMA C5B8: STAB &80 C5BA: ANDA #&7F C5BC: STAA &81 C5BE: JSR &CBD1 C5C1: LDAA #&B2 C5C3: JSR &DEB7 C5C6: LDAA &81 C5C8: JSR &DEB7 C5CB: LDAA #&BF C5CD: JSR &DEB7 C5D0: LDAA &80 C5D2: JSR &DEB7 C5D5: TIM #&80,&A0 C5D8: BEQ &C5F0 C5DA: AIM #&7F,&A0 C5DD: JSR &CBD1 C5E0: LDAA #&BC C5E2: JSR &DEB7 C5E5: LDAA &7EF2 C5E8: LDAB &7F6B C5EB: MUL C5EC: ASLA C5ED: JSR &DEB7 C5F0: TIM #&80,&A1 C5F3: BEQ &C60F C5F5: AIM #&7F,&A1 C5F8: LDAA &7EF5 C5FB: JSR &CE15 C5FE: STAA &7F6C C601: JSR &CBD1 C604: LDAA #&B5 C606: JSR &DEB7 C609: LDAA &7F6C C60C: JSR &DEB7 C60F: TIM #&40,&A0 C612: BEQ &C636 C614: AIM #&BF,&A0 C617: JSR &CBD1 C61A: LDAA #&B1 C61C: JSR &DEB7 C61F: SEI C620: LDAA &7EF3 C623: ASLA C624: LDAB &7EF3 C627: ASLB C628: CLI C629: MUL C62A: LDAB #&C0 C62C: MUL C62D: ADDA #&40 C62F: LSRA C630: STAA &7E5B C633: JSR &DEB7 C636: TIM #&20,&A0 C639: BEQ &C653 C63B: AIM #&DF,&A0 C63E: JSR &CBD1 C641: LDAA #&BB C643: JSR &DEB7 C646: CLRA C647: LDAB &7EF4 C64A: BITB #&40 C64C: BEQ &C650 C64E: LDAA #&7F C650: JSR &DEB7 C653: TIM #&08,&A2 C656: BEQ &C66C C658: AIM #&F7,&A2 C65B: LDAA &7EF8 C65E: BEQ &C66C C660: CLRA C661: LDX #&7800 C664: STAA &00,X C666: INX C667: CPX #&7880 C66A: BNE &C664 C66C: RTS C66D: 00 00 00 ... ********** set display attributes for modified patch/tone C670: TST &008E get disp func C673: BNE &C6BB br if disp func not patch name C675: TIM #&01,&A7 ? C678: BNE &C6BB C67A: LDAA &A1 get patch/tone modified status C67C: ANDA #&07 C67E: CMPA &8F C680: BEQ &C6BB br if status not changed C682: STAA &8F store modified status C684: CLRA C685: LDX #&1380 C688: TIM #&01,&A1 C68B: BEQ &C68F br if patch not modified C68D: LDAA #&40 C68F: STAA &42,X set patch number flash C691: STAA &43,X if modified C693: LDAA &5A,X (keep point bit) C695: ANDA #&BF C697: CLRB C698: TIM #&02,&A1 br if lower tone not modified C69B: BEQ &C6A1 C69D: ORAA #&40 C69F: LDAB #&40 C6A1: STAB &58,X set lower tone number flash C6A3: STAB &59,X if modified C6A5: STAA &5A,X C6A7: LDAA &5F,X C6A9: ANDA #&BF C6AB: CLRB C6AC: TIM #&04,&A1 br if upper tone not modified C6AF: BEQ &C6B5 C6B1: ORAA #&40 C6B3: LDAB #&40 C6B5: STAB &5D,X set upper tone number flash C6B7: STAB &5E,X if modified C6B9: STAA &5F,X C6BB: RTS ********** update LEDs C6BC: BSR &C670 set attributes for mod status C6BE: LDAB &7F58 get key mode C6C1: LDX #&C6F8 C6C4: ABX C6C5: LDAA &00,X get led status for key mode C6C7: LDAB &8E get disp func C6C9: BEQ &C6E0 br if patch name C6CB: TIM #&01,&A2 C6CE: BEQ &C6D2 C6D0: ORAA #&04 set patch edit LED on C6D2: TIM #&02,&A2 C6D5: BEQ &C6D9 C6D7: ORAA #&02 set tone edit LED on C6D9: TIM #&04,&A2 C6DC: BEQ &C6E0 C6DE: ORAA #&01 set midi edit LED on C6E0: LDAB &7F72 get chase status C6E3: BEQ &C6E7 C6E5: ORAA #&40 set chase LED on C6E7: TIM #&01,&A7 C6EA: BEQ &C6F3 C6EC: TIM #&08,&A7 C6EF: BEQ &C6F3 C6F1: ORAA #&80 set seq LED on C6F3: COMA C6F4: STAA &5000 write to LED driver C6F7: RTS C6F8: 08 10 20 20 00 00 00 .. ... ********** C6FF: TIM #&80,&99 C702: BNE &C760 C704: LDAA #&00 C706: STAA &AD C708: LDAA #&02 C70A: STAA &8C C70C: TIM #&01,&9A C70F: BEQ &C731 C711: AIM #&FE,&9A C714: JSR &B57F C717: TSTA C718: BEQ &C721 C71A: LDAB #&BC C71C: STAA &B0 C71E: JSR &8796 C721: TIM #&04,&9D C724: BNE &C731 C726: JSR &CDD0 C729: CMPA #&01 C72B: BLT &C732 C72D: BGT &C735 C72F: BRA &C74C C731: RTS C732: JSR &C74C C735: TST &7F3B C738: BEQ &C74B C73A: JSR &CBD7 C73D: LDAA #&B0 C73F: JSR &CBDD C742: LDAA #&01 C744: JSR &DEB7 C747: CLRA C748: JSR &DEB7 C74B: RTS C74C: TST &7F32 C74F: BEQ &C74B C751: JSR &CBD7 C754: LDAA #&B0 C756: JSR &CBE4 C759: BRA &C742 C75B: LDAA #&7F C75D: STAA &AD C75F: RTS C760: INC &00AD C763: INC &00AD C766: LDAA &AD C768: BITA #&80 C76A: BNE &C75B C76C: DEC &008C C76F: BNE &C731 C771: LDAA #&08 C773: STAA &8C C775: JSR &B57F C778: TSTA C779: BEQ &C7AF C77B: TAB C77C: LDAA &7F58 C77F: BEQ &C793 C781: CMPA #&02 C783: BLT &C793 C785: BEQ &C78D C787: TBA C788: LDAB &7F6B C78B: BRA &C7AC C78D: TBA C78E: LDAB &7F62 C791: BRA &C7AC C793: CMPB #&F4 C795: BEQ &C79F C797: CMPB #&F1 C799: BEQ &C787 C79B: CMPB #&F9 C79D: BEQ &C78D C79F: LDAB &7F62 C7A2: LDAA #&F9 C7A4: JSR &CDF2 C7A7: LDAA #&F1 C7A9: LDAB &7F6B C7AC: JSR &CDF2 C7AF: JSR &CDD0 C7B2: CMPA #&01 C7B4: BLT &C7BB C7B6: BGT &C7BD C7B8: BRA &C7D5 C7BA: RTS C7BB: BSR &C7D5 C7BD: TST &7F3B C7C0: BEQ &C7D4 C7C2: JSR &CBD7 C7C5: LDAA #&B0 C7C7: JSR &CBDD C7CA: LDAA #&01 C7CC: JSR &DEB7 C7CF: LDAA &AD C7D1: JSR &DEB7 C7D4: RTS C7D5: TST &7F32 C7D8: BEQ &C7D4 C7DA: JSR &CBD7 C7DD: LDAA #&B0 C7DF: JSR &CBE4 C7E2: BRA &C7CA C7E4: 00 00 00 ... ********** C7E7: TIM #&04,&99 C7EA: BNE &C7ED C7EC: RTS C7ED: AIM #&FB,&99 reset &99 bit 2 C7F0: LDAA #&01 C7F2: LDAB #&00 C7F4: LDX #&7EA0 C7F7: STAA &00,X &7EA0-&7EAD = 1 C7F9: STAB &10,X &7EB0-&7EBD = 0 C7FB: INCA C7FC: INX C7FD: CPX #&7EAC C800: BNE &C7F7 C802: LDAA #&01 C804: LDAB #&00 C806: LDX #&7EC0 C809: STAA &00,X &7EC0-&7ECD = 1 C80B: STAB &10,X &7ED0-&7EDD = 0 C80D: INCA C80E: INX C80F: CPX #&7ECC C812: BNE &C809 C814: LDAA #&F1 C816: STAA &B0 C818: LDAB #&B6 C81A: JSR &8789 tx #&F1, #&B6, #&7F C81D: LDAA #&F9 C81F: STAA &B0 C821: LDAB #&B6 C823: JSR &8789 tx #&F9, #&B6, #&7F C826: LDAA #&F1 C828: STAA &B0 C82A: LDAB #&BB C82C: JSR &8796 tx #&F1, #&BB, #&00 C82F: LDAA #&F9 C831: STAA &B0 C833: LDAB #&BB C835: JSR &8796 tx #&F9, #&BB, #&00 C838: AIM #&7F,&9E reset &9E bit 7 C83B: LDAA &1771 C83E: STAA &86 C840: LDAB &7F58 C843: BNE &C84E C845: LDAA &7F53 C848: JSR &B560 C84B: STAA &1771 C84E: CMPB #&02 C850: BLT &C85A C852: LDAA #&F4 C854: STAA &B0 C856: JSR &C88F C859: RTS C85A: LDAA #&F1 C85C: STAA &B0 C85E: JSR &C86D C861: LDAA &86 C863: STAA &1771 C866: LDAA #&F9 C868: STAA &B0 C86A: JMP &C92F C86D: LDAA &7F68 C870: LDAB &7F69 C873: STAB &1772 C876: CMPA #&00 C878: BEQ &C898 C87A: CMPA #&01 C87C: BEQ &C8BD C87E: CMPA #&02 C880: BEQ &C8E5 C882: CMPA #&04 C884: BEQ &C898 C886: CMPA #&05 C888: BEQ &C8BD C88A: CMPA #&06 C88C: BEQ &C8E5 C88E: RTS C88F: LDX #&7EAC C892: STX &BA C894: LDAA #&0C C896: BRA &C89F C898: LDX #&7EA6 C89B: STX &BA C89D: LDAA #&06 C89F: STAA &BC C8A1: LDAB #&BD C8A3: JSR &8796 C8A6: LDAA #&B4 C8A8: JSR &DEB7 C8AB: LDAA &1771 C8AE: JSR &DEB7 C8B1: LDAA #&BE C8B3: JSR &DEB7 C8B6: LDAA &1771 C8B9: JSR &DEB7 C8BC: RTS C8BD: LDX #&7EA3 C8C0: STX &BA C8C2: LDAA #&03 C8C4: STAA &BC C8C6: LDAB #&BD C8C8: JSR &8796 C8CB: LDAA #&B4 C8CD: JSR &DEB7 C8D0: LDAA &1771 C8D3: JSR &DEB7 C8D6: LDAA #&BE C8D8: JSR &DEB7 C8DB: LDAA &1772 C8DE: JSR &B560 C8E1: JSR &DEB7 C8E4: RTS C8E5: LDX #&7EA6 C8E8: STX &BA C8EA: LDAA #&06 C8EC: STAA &BC C8EE: LDAB #&BD C8F0: JSR &8789 C8F3: LDAA #&B4 C8F5: JSR &DEB7 C8F8: LDAA &1771 C8FB: JSR &DEB7 C8FE: LDAA #&BE C900: JSR &DEB7 C903: LDAA &1771 C906: JSR &DEB7 C909: RTS ********** C90A: LDX #&7EA6 C90D: STX &BA C90F: LDAA #&06 C911: STAA &BC C913: LDAB #&BD C915: JSR &8796 C918: LDAA #&B4 C91A: JSR &DEB7 C91D: LDAA &1771 C920: JSR &DEB7 C923: LDAA #&BE C925: JSR &DEB7 C928: LDAA &1771 C92B: JSR &DEB7 C92E: RTS C92F: LDAB &7F60 C932: STAB &1772 C935: LDAA &7F5F C938: CMPA #&00 C93A: BEQ &C951 C93C: CMPA #&01 C93E: BEQ &C977 C940: CMPA #&02 C942: BEQ &C9A0 C944: CMPA #&04 C946: BEQ &C951 C948: CMPA #&05 C94A: BEQ &C977 C94C: CMPA #&06 C94E: BEQ &C9A0 C950: RTS C951: LDX #&7EC6 C954: STX &7E89 C957: LDAA #&06 C959: STAA &B2 C95B: LDAB #&BD C95D: JSR &8796 C960: LDAA #&B4 C962: JSR &DEB7 C965: LDAA &1771 C968: JSR &DEB7 C96B: LDAA #&BE C96D: JSR &DEB7 C970: LDAA &1771 C973: JSR &DEB7 C976: RTS C977: LDX #&7EC3 C97A: STX &7E89 C97D: LDAA #&03 C97F: STAA &B2 C981: LDAB #&BD C983: JSR &8796 C986: LDAA #&B4 C988: JSR &DEB7 C98B: LDAA &1771 C98E: JSR &DEB7 C991: LDAA #&BE C993: JSR &DEB7 C996: LDAA &1772 C999: JSR &B560 C99C: JSR &DEB7 C99F: RTS C9A0: LDX #&7EC6 C9A3: STX &7E89 C9A6: LDAA #&06 C9A8: STAA &B2 C9AA: LDAB #&BD C9AC: JSR &8789 C9AF: LDAA #&B4 C9B1: JSR &DEB7 C9B4: LDAA &1771 C9B7: JSR &DEB7 C9BA: LDAA #&BE C9BC: JSR &DEB7 C9BF: LDAA &1771 C9C2: JSR &DEB7 C9C5: RTS C9C6: LDX #&7EC6 C9C9: STX &7E89 C9CC: LDAA #&06 C9CE: STAA &B2 C9D0: LDAB #&BD C9D2: JSR &8796 C9D5: LDAA #&B4 C9D7: JSR &DEB7 C9DA: LDAA &1771 C9DD: JSR &DEB7 C9E0: LDAA #&BE C9E2: JSR &DEB7 C9E5: LDAA &1771 C9E8: JSR &DEB7 C9EB: RTS C9EC: 00 00 00 00 00 00 ...... **************************************** output byte to display A = byte to transfer C9F2: LDAB #&08 C9F4: AIM #&EF,&02 turn display data off C9F7: ROLA msb of A into C C9F8: AIM #&DF,&02 turn clock off C9FB: BCC &CA00 C9FD: OIM #&20,&02 if A bit was 1, turn on display data CA00: OIM #&10,&02 turn on display clock CA03: DECB CA04: BNE &C9F4 loop for all 8 bits of A CA06: RTS **************************************** CA07: 00 00 00 ... read from programmer CA0A: TIM #&02,&03 read programmer ready CA0D: BNE &CA6D CA0F: OIM #&80,&02 set programmer clock wait for 4 * 4 cycles = 16 cycles CA12: LDAA #&04 CA14: DECA 1 cycle CA15: BNE &CA14 + 3 cycles read byte from programmer CA17: LDAB #&08 CA19: CLR &0080 CA1C: AIM #&7F,&02 reset programmer clock wait for #&1E * 4 cycles = 120 cycles CA1F: LDAA #&1E CA21: DECA CA22: BNE &CA21 CA24: LDAA &03 read programmer data CA26: OIM #&80,&02 set programmer clock CA29: ANDA #&01 CA2B: ASL &0080 CA2E: ORAA &80 transfer read bit into &80 CA30: STAA &80 msb first wait for 4 * 4 cycles = 16 cycles CA32: LDAA #&04 CA34: DECA CA35: BNE &CA34 CA37: DECB CA38: BNE &CA1C repeat bit read for 8 bits end of read byte from PG CA3A: LDAA &80 CA3C: BITA #&80 test top bit CA3E: BEQ &CA6E CA40: CMPA #&E0 E0 = ? CA42: BNE &CA4A br if byte not E0 CA44: OIM #&08,&9C set &9C bit 3 and 4 CA47: OIM #&10,&9C CA4A: CMPA #&E1 E1 = WRITE CA4C: BNE &CA6B br if byte not E1 CA4E: OIM #&20,&9C set &9C bit 5 CA51: LDX &7F11 get ptr to tone buffer CA54: CPX #&1700 CA57: BNE &CA5E br if not lower tone edit CA59: LDAA &7F66 get lower tone number CA5C: BRA &CA61 CA5E: LDAA &7F5D get upper tone number CA61: STAA &7E9F 7E9F = tone number CA64: JSR &D172 CA67: JMP &AB3B CA6A: RTS CA6B: STAA &E6 store command in &E6 CA6D: RTS programmer data byte CA6E: TIM #&02,&9C test &9C bit 1 CA71: BNE &CA76 br if bit set CA73: OIM #&04,&9C set &9C bit 1 and 2 CA76: OIM #&02,&9C CA79: STAA &E7 store data in &E7 CA7B: LDAA &E6 get command CA7D: CMPA #&B0 CA7F: BGE &CA6D CA81: LDAA &7F58 CA84: CMPA #&01 CA86: BLE &CA8C test for WHOLE CA88: LDAA #&F4 common edit command CA8A: BRA &CA98 CA8C: LDAA #&F9 CA8E: LDX &7F11 CA91: CPX #&1700 test for which voice CA94: BNE &CA98 CA96: LDAA #&F1 CA98: JSR &DEB7 tx F4, F1 or F9 CA9B: LDAA &E6 CA9D: JSR &DEB7 tx pg command CAA0: LDAA &E7 CAA2: JSR &DEB7 tx pg data CAA5: LDX &7F11 get ptr to tone buffer CAA8: CPX #&1700 is it upper ? buffer ? CAAB: BNE &CAB2 CAAD: OIM #&02,&A1 set &A1 bit 1 CAB0: BRA &CAB5 CAB2: OIM #&04,&A1 set &A1 bit 2 CAB5: LDX &7F11 get ptr to tone buffer CAB8: LDAB #&0B CABA: ABX offset to skip name CABB: LDAB &E6 CABD: ANDB #&7F get param no. from command CABF: ABX CAC0: LDAA &E7 get data CAC2: STAA &00,X store data in tone buffer CAC4: LDAA &E6 CAC6: ANDA #&7F get param no. from command CAC8: STAA &D3 store in &D3 CACA: LDAB &D3 CACC: CMPB #&1E CACE: BNE &CAD3 br if not &1E CAD0: JSR &8A90 CAD3: LDAA &8E CAD5: ANDA #&FE CAD7: CMPA #&80 CAD9: BNE &CA6D CADB: OIM #&02,&9A set &9A bit 1 display param code from table by &D3 CADE: LDX #&CAF5 CAE1: LDAB &D3 CAE3: ASLB CAE4: ABX CAE5: LDAA &00,X CAE7: STAA &1390 CAEA: LDAA &01,X CAEC: STAA &1391 CAEF: LDAB &D3 CAF1: JSR &A8E3 CAF4: RTS param code table CAF5: 01 01 01 02 01 03 01 04 ........ CAFD: 01 05 02 01 02 02 02 03 ........ CB05: 02 04 02 05 02 06 02 07 ........ CB0D: 00 00 00 00 00 00 03 01 ........ CB15: 03 02 04 01 04 02 04 03 ........ CB1D: 04 04 04 05 05 01 05 02 ........ CB25: 05 03 05 04 05 05 05 06 ........ CB2D: 05 07 05 08 06 01 06 03 ........ CB35: 06 04 07 01 07 02 07 03 ........ CB3D: 08 01 08 02 08 03 08 04 ........ CB45: 08 05 09 01 09 02 09 03 ........ CB4D: 09 04 09 05 00 00 06 02 ........ CB55: 00 00 00 ... ********** CB58: LDAA #&B0 CB5A: LDAB &7F78 CB5D: BMI &CB65 CB5F: JSR &CBDD CB62: JSR &CB6F CB65: LDAB &7F77 CB68: BMI &CBBE CB6A: LDAA #&B0 CB6C: JSR &CBE4 CB6F: LDAA #&07 CB71: JSR &DEB7 CB74: TBA CB75: JSR &DEB7 CB78: RTS CB79: TIM #&04,&9D CB7C: BNE &CB9C CB7E: LDAB &AA CB80: TIM #&80,&A4 CB83: BNE &CB87 CB85: ADDB #&40 CB87: JSR &CBD7 CB8A: LDAA &7F2B CB8D: BMI &CBBE CB8F: CMPA #&0F CB91: BGT &CBBE CB93: ORAA #&C0 CB95: JSR &DEB7 CB98: TBA CB99: JSR &DEB7 CB9C: RTS CB9D: AIM #&7F,&9D CBA0: RTS CBA1: LDAB &D1 CBA3: TIM #&80,&9D CBA6: BNE &CB9D CBA8: TIM #&01,&A0 CBAB: BNE &CBBF CBAD: TST &7F2E CBB0: BEQ &CBBE CBB2: JSR &CBD7 CBB5: LDAA #&C0 CBB7: JSR &CBE4 CBBA: TBA CBBB: JSR &DEB7 CBBE: RTS CBBF: TST &7F37 CBC2: BEQ &CBBE CBC4: JSR &CBD7 CBC7: LDAA #&C0 CBC9: JSR &CBDD CBCC: TBA CBCD: JSR &DEB7 CBD0: RTS CBD1: LDAA &B0 CBD3: JSR &DEB7 CBD6: RTS CBD7: LDAA #&F5 CBD9: JSR &DEB7 CBDC: RTS CBDD: ORAA &7F14 CBE0: JSR &DEB7 CBE3: RTS CBE4: ORAA &7F13 CBE7: JSR &DEB7 CBEA: RTS ***** send sysex header - opcode in B CBEB: JSR &CBD7 tx F5 (midi out) CBEE: LDAA #&F0 CBF0: JSR &DEB7 tx F0 CBF3: LDAA #&41 CBF5: JSR &DEB7 tx 41 CBF8: TBA CBF9: JSR &DEB7 tx B CBFC: LDAA &7F2D A = upper channel CBFF: JSR &DEB7 tx A CC02: LDAA #&24 CC04: JSR &DEB7 tx 24 CC07: RTS ***** CC08: LDAB #&35 CC0A: JSR &CBEB CC0D: LDAA #&20 CC0F: JSR &DEB7 CC12: LDAA #&01 CC14: JSR &DEB7 CC17: RTS CC18: LDAB #&35 CC1A: JSR &CBEB CC1D: LDAA #&30 CC1F: JSR &DEB7 CC22: LDAA #&01 CC24: JSR &DEB7 CC27: RTS CC28: LDAB #&36 CC2A: JSR &CBEB CC2D: LDAA #&20 CC2F: JSR &DEB7 CC32: LDAA #&01 CC34: JSR &DEB7 CC37: RTS CC38: LDAB #&36 CC3A: JSR &CBEB CC3D: LDAA #&30 CC3F: JSR &DEB7 CC42: LDAA #&01 CC44: JSR &DEB7 CC47: RTS CC48: 00 00 00 ... CC4B: CMPA #&07 CC4D: BEQ &CC54 CC4F: OIM #&80,&A5 CC52: BRA &CC6C CC54: OIM #&40,&A5 CC57: BRA &CC6C CC59: CMPA #&07 CC5B: BEQ &CC62 CC5D: OIM #&20,&A5 CC60: BRA &CC6C CC62: OIM #&10,&A5 CC65: BRA &CC6C CC67: STAB &AA CC69: OIM #&20,&A7 CC6C: JMP &CD0B CC6F: CMPB #&C0 CC71: BEQ &CC4B CC73: CMPB #&C1 CC75: BEQ &CC59 CC77: CMPB #&F0 CC79: BEQ &CC6C CC7B: ANDB #&7F CC7D: BRA &CC67 CC7F: LDAA #&F8 CC81: STAA &7EFB CC84: OIM #&02,&A3 CC87: OIM #&04,&11 CC8A: RTS **************************************** OCF interrupt handler CC8B: LDAA &3FFF CC8E: CMPA #&A5 CC90: BNE &CC95 CC92: JMP &2012 CC95: LDAA &08 CC97: LDD &09 CC99: STD &7EFD CC9C: LDAA &7EEB CC9F: DECA CCA0: BNE &CCA7 CCA2: EIM #&08,&A7 CCA5: LDAA #&18 CCA7: STAA &7EEB CCAA: BITA #&01 CCAC: BNE &CCB6 CCAE: TIM #&08,&A5 CCB1: BNE &CCB6 CCB3: JSR &CC7F CCB6: LDAB &7EE4 CCB9: LDAA &A7 CCBB: RORA CCBC: BCS &CCC0 CCBE: BRA &CD27 CCC0: RORA CCC1: BCS &CD16 CCC3: LDX &7EE0 CCC6: CMPB &00,X CCC8: BNE &CD23 CCCA: INX CCCB: CMPB #&FF CCCD: BEQ &CD11 CCCF: LDAA &00,X CCD1: TAB CCD2: ANDA #&7F CCD4: ADDA #&07 CCD6: STAA &7EEC CCD9: TSTB CCDA: BMI &CD50 CCDC: INX CCDD: LDAB &00,X CCDF: INX CCE0: STX &7EE0 CCE3: TSTB CCE4: BMI &CC6F CCE6: STAB &7EED CCE9: LDAA &7F58 CCEC: CMPA #&01 CCEE: BEQ &CCF5 CCF0: JSR &CD7C CCF3: BRA &CD0B CCF5: LDAA &7EEC CCF8: CMPA &7F54 CCFB: BCS &CD00 CCFD: JSR &CD7C CD00: LDAA &7EEC CD03: CMPA &7F55 CD06: BGT &CD0B CD08: JSR &CD81 CD0B: CLRB CD0C: STAB &7EE4 CD0F: BRA &CCC3 CD11: STX &7EE0 CD14: BRA &CD0B CD16: INCB CD17: CMPB #&FF CD19: BNE &CD24 CD1B: OIM #&04,&A5 CD1E: INC &7EFC CD21: LDAB #&FF CD23: INCB CD24: STAB &7EE4 CD27: LDD &7EFD CD2A: ADDD &7EE9 CD2D: STD &0B CD2F: RTI CD30: LDAA &01,X CD32: CMPA #&FF CD34: BEQ &CD36 CD36: LDAA &7EEB CD39: CMPA #&18 CD3B: BNE &CD27 CD3D: TIM #&08,&A7 CD40: BEQ &CD27 CD42: CLR &7EFB CD45: OIM #&08,&A5 CD48: OIM #&40,&A7 CD4B: AIM #&F7,&08 CD4E: BRA &CD27 CD50: CMPB #&FF CD52: BEQ &CD30 CD54: INX CD55: STX &7EE0 CD58: LDAA &7F58 CD5B: CMPA #&01 CD5D: BEQ &CD64 CD5F: JSR &CD97 CD62: BRA &CD0B CD64: LDAA &7EEC CD67: CMPA &7F54 CD6A: BCS &CD6F CD6C: JSR &CD97 CD6F: LDAA &7EEC CD72: CMPA &7F55 CD75: BGT &CD0B CD77: JSR &CDA2 CD7A: BRA &CD0B CD7C: LDX #&1400 CD7F: BRA &CD84 CD81: LDX #&7800 CD84: LDAB &7EEC CD87: ABX CD88: LDAA &7EED CD8B: ORAA #&80 CD8D: STAA &00,X CD8F: ORAA #&80 CD91: STAA &80,X CD93: AIM #&7F,&9B CD96: RTS CD97: LDX #&1400 CD9A: LDAB &7EEC CD9D: ABX CD9E: CLRA CD9F: STAA &00,X CDA1: RTS CDA2: LDX #&7800 CDA5: BRA &CD9A CDA7: 00 00 00 ... ********** divide A by B, A = quotient, B = remainder CDAA: CLR &00EE CDAD: CBA CDAE: BCS &CDB7 CDB0: SBA CDB1: INC &00EE CDB4: JMP &CDAD CDB7: TAB CDB8: LDAA &EE CDBA: RTS **************************************** clear display memory write #&20 (space) into &1380 to &139F write #0 into &13C0 to &13DF CDBB: LDX #&1380 CDBE: LDAA #&20 CDC0: JSR &CDC7 CDC3: CLRA CDC4: LDX #&13C0 CDC7: LDAB #&20 CDC9: STAA &00,X CDCB: INX CDCC: DECB CDCD: BNE &CDC9 CDCF: RTS ********** CDD0: LDAA &7F79 CDD3: CMPA #&01 CDD5: BLT &CDED CDD7: BEQ &CDEF CDD9: CMPA #&03 CDDB: BLT &CDEA CDDD: BEQ &CDED CDDF: LDAA &7F58 CDE2: BEQ &CDEF CDE4: CMPA #&02 CDE6: BLT &CDED CDE8: BEQ &CDEF CDEA: LDAA #&02 CDEC: RTS CDED: CLRA CDEE: RTS CDEF: LDAA #&01 CDF1: RTS CDF2: JSR &DEB7 CDF5: LDAA #&BC CDF7: JSR &DEB7 CDFA: LDAA &AD CDFC: MUL CDFD: ASLA CDFE: JSR &DEB7 CE01: RTS CE02: LDX #&0019 CE05: CLRB CE06: JSR &CE10 CE09: DECB CE0A: BNE &CE06 CE0C: DEX CE0D: BNE &CE05 CE0F: RTS ********** pause for A * 4 cycles CE10: CLRA CE11: DECA CE12: BNE &CE11 CE14: RTS ********** if A < &40, A = 0 else A = &7F CE15: CMPA #&40 CE17: BLT &CE1C CE19: LDAA #&7F CE1B: RTS CE1C: CLRA CE1D: RTS ********** CE1E: CLRA CE1F: TIM #&20,&A6 CE22: BNE &CE2A CE24: TIM #&40,&A6 CE27: BNE &CE2A CE29: INCA CE2A: RTS ********** recall stored midi factors CE2B: LDAA &7F30 get current upper local flag CE2E: STAA &80 CE30: LDAA &7F39 get current lower local flag CE33: STAA &81 restore midi factors from saved values CE35: LDX #&6000 CE38: STX &90 CE3A: LDX #&7F2B CE3D: STX &92 copy &6000-&6013 to &7F2B-&7F3E CE3F: LDX &90 CE41: LDAA &00,X CE43: INX CE44: STX &90 CE46: LDX &92 CE48: STAA &00,X CE4A: INX CE4B: STX &92 CE4D: CPX #&7F3F CE50: BNE &CE3F CE52: LDAA &81 CE54: STAA &7F39 restore flag saved before recall CE57: LDAA &80 CE59: STAA &7F30 restore flag saved before recall CE5C: RTS ********** init chase play after factor change ? CE5D: OIM #&04,&99 CE60: JSR &C7E7 initialize chase play pointers CE63: LDX #&0000 CE66: STD &7E83 store D at &7E83? CE69: STD &7E79 store D at &7E79? CE6C: LDX #&7E7C CE6F: LDD #&7C00 CE72: STD &02,X store #&7C00 at &7E7E CE74: STD &00,X store #&7C00 at &7E7C CE76: LDX #&7E75 CE79: LDD #&7D2C CE7C: STD &02,X store #&7D2C at &7E77 CE7E: STD &00,X store #&7D2C at &7E75 CE80: LDAA #&00 CE82: STAA &7E85 &7E85 = 0 CE85: LDAA #&00 CE87: STAA &7E7B &7E7B = 0 CE8A: RTS ********** CE8B: LDAB &7F58 CE8E: LDAA #&F4 CE90: CMPB #&02 CE92: BEQ &CEBB CE94: BGT &CEA0 CE96: BSR &CE9E CE98: LDAA &81 CE9A: STAA &80 CE9C: BRA &CEB9 CE9E: LDAA #&F1 CEA0: LDAB &7F0C CEA3: JSR &DEB7 CEA6: LDAA #&9E CEA8: JSR &DEB7 CEAB: LDAA &80 CEAD: MUL CEAE: ASLD CEAF: ASLD CEB0: LDAB &7F59 CEB3: MUL CEB4: ASLD CEB5: JSR &DEB7 CEB8: RTS CEB9: LDAA #&F9 CEBB: LDAB &7F0D CEBE: BRA &CEA3 CEC0: RTS CEC1: 00 00 00 ... CEC4: TIM #&40,&98 CEC7: BEQ &CECC CEC9: JMP &D081 CECC: TIM #&80,&98 CECF: BEQ &CED4 CED1: JMP &D109 CED4: TIM #&80,&9C CED7: BEQ &CEDC CED9: JMP &D06C CEDC: TIM #&01,&9D CEDF: BEQ &CEE4 CEE1: JMP &D0E1 CEE4: LDAA &D0 CEE6: CMPA #&00 CEE8: BNE &CEEA CEEA: JSR &CF62 CEED: RTS CEEE: AIM #&FD,&9C clear &9C bit 0 and 1 CEF1: TIM #&08,&9C CEF4: BEQ &CEF9 CEF6: AIM #&F7,&9C clear &9C bit 3 CEF9: JSR &CF62 CEFC: BRA &CF61 CEFE: JSR &CC08 CF01: LDAA &D1 CF03: CMPA #&00 CF05: BNE &CF14 CF07: LDAB &D1 CF09: ANDB #&1F CF0B: LDAA #&3B CF0D: MUL CF0E: ADDD #&20A0 CF11: JMP &CF4A CF14: LDAA &BF CF16: CMPA #&01 CF18: BNE &CF27 CF1A: LDAB &D1 CF1C: ANDB #&1F CF1E: LDAA #&3B CF20: MUL CF21: ADDD #&6060 CF24: JMP &CF4A CF27: LDAA &BF CF29: CMPA #&02 CF2B: BNE &CF3A CF2D: LDAB &D1 CF2F: ANDB #&1F CF31: LDAA #&3B CF33: MUL CF34: ADDD #&F1A8 CF37: JMP &CF4A CF3A: LDAA &BF CF3C: CMPA #&03 CF3E: BNE &CF61 CF40: LDAB &D1 CF42: ANDB #&1F CF44: LDAA #&3B CF46: MUL CF47: ADDD #&F908 CF4A: XGDX CF4B: LDAA #&3B CF4D: STAA &87 CF4F: LDAA &00,X CF51: ANDA #&7F CF53: JSR &DEB7 CF56: INX CF57: DEC &0087 CF5A: BNE &CF4F CF5C: LDAA #&F7 CF5E: JSR &DEB7 CF61: RTS ********** load tone CF62: LDAB &D1 get tone number CF64: CMPB #&32 CF66: BGE &CFBD br if tone >= 50 CF68: TIM #&04,&9D CF6B: BEQ &CF74 CF6D: TIM #&80,&A4 CF70: BEQ &CF7B br if mem sel = cart CF72: BRA &CFB0 CF74: LDAA &1747 get mem select CF77: BITA #&04 CF79: BNE &CFB0 br if 'INTERNAL' CF7B: JSR &D259 check for cartridge CF7E: TIM #&08,&9A CF81: BEQ &CF91 br if cart present CF83: LDAA #&06 CF85: STAA &BE CF87: JSR &EA4E display 'INSERT CARTRIDGE' CF8A: JSR &CFB0 CF8D: JMP &AB3B CF90: RTS CF91: LDAA &D1 get tone number CF93: CMPA #&20 CF95: BLT &CFA3 br if < 32 CF97: JSR &9C11 check for M16C CF9A: TIM #&08,&9A CF9D: BEQ &CFA3 br if not M16C CF9F: LDAA #&0C CFA1: BRA &CF85 display 'SELECT NO. 1-32' cart tone... CFA3: LDAB &D1 CFA5: LDAA #&3B CFA7: MUL CFA8: ADDD #&20A0 CFAB: STD &90 CFAD: JMP &CFD6 internal tone... CFB0: LDAB &D1 CFB2: LDAA #&3B CFB4: MUL CFB5: ADDD #&6060 CFB8: STD &90 CFBA: JMP &CFD6 preset ROM tone... CFBD: SUBB #&32 CFBF: LDAA #&3B CFC1: MUL CFC2: ADDD #&F1A8 offset to ROM tones CFC5: STD &90 CFC7: JMP &CFD6 ***** unused code, alternative ROM preset CFCA: LDAB &D1 CFCC: ANDB #&1F CFCE: LDAA #&3B CFD0: MUL CFD1: ADDD #&F908 CFD4: STD &90 ***** CFD6: LDX &7F11 get tone edit buffer ptr CFD9: STX &92 CFDB: LDX #&7FC0 CFDE: STX &94 CFE0: LDAA #&3B CFE2: STAA &87 copy tone to current tone edit buffer and tone recall ? buffer CFE4: LDX &90 CFE6: LDAA &00,X CFE8: INX CFE9: STX &90 CFEB: LDX &92 CFED: STAA &00,X CFEF: INX CFF0: STX &92 CFF2: LDX &94 CFF4: STAA &00,X CFF6: INX CFF7: STX &94 CFF9: DEC &0087 CFFC: BNE &CFE4 CFFE: AIM #&FD,&9E D001: AIM #&F7,&9E D004: BRA &D006 D006: TIM #&04,&98 D009: BNE &D00C D00B: RTS D00C: JSR &D020 D00F: RTS ***** unused code D010: ADDA #&A0 D012: JSR &B6C7 D015: LDAA #&40 D017: JSR &B6C7 D01A: LDAA #&E3 D01C: JSR &B6C7 D01F: RTS **** send tone edit buffer to voice board D020: LDX &7F11 get tone edit buffer ptr D023: LDAB #&0A B = offset to data D025: ABX set data ptr D026: CLR &0087 D029: JSR &CBD1 tx Voice Board ptr D02C: INX D02D: STX &90 store data ptr D02F: XGDX D030: SUBB #&0B remove offset D032: ANDB #&3F force valid number D034: ORAB #&80 set cmd status D036: TBA D037: JSR &DEB7 tx command to voice board D03A: LDX &90 get data ptr D03C: LDAA &00,X get data D03E: ANDA #&7F force valid data D040: JSR &DEB7 tx data to voice board D043: LDAA &87 D045: INCA D046: STAA &87 D048: CMPA #&30 all data sent ? D04A: BEQ &D06B D04C: CMPA #&0C check for byte C D04E: BNE &D05D D050: LDAA #&0F skip cmd D and E D052: STAA &87 D054: LDX &90 D056: INX D057: INX D058: INX D059: STX &90 D05B: BRA &D02C D05D: CMPA #&1E check for byte 1E D05F: BNE &D02C br if not VCA level D061: INC &0087 skip if it is D064: LDX &90 D066: INX D067: STX &90 D069: BRA &D02C D06B: RTS ********** D06C: AIM #&7F,&9C D06F: LDX #&6BE6 D072: STX &90 D074: LDX #&2C26 D077: STX &92 D079: LDX #&77E6 D07C: STX &94 D07E: JMP &D09A D081: LDX #&6060 D084: STX &90 D086: LDX #&20A0 D089: STX &92 D08B: TIM #&01,&A3 D08E: BEQ &D095 D090: LDX #&67C0 D093: BRA &D098 D095: LDX #&6BE6 D098: STX &94 D09A: LDX &92 D09C: LDAA &00,X D09E: STAA &80 D0A0: TIM #&10,&9F D0A3: BEQ &D0AF D0A5: JSR &CBD7 D0A8: LDAA &80 D0AA: JSR &DEB7 D0AD: LDAA &80 D0AF: INX D0B0: STX &92 D0B2: LDX &90 D0B4: STAA &00,X D0B6: CMPA &00,X D0B8: BNE &D0D1 D0BA: INX D0BB: STX &90 D0BD: CPX &94 D0BF: BNE &D09A D0C1: LDAA #&03 D0C3: STAA &BE D0C5: JSR &EA4E D0C8: RTS D0C9: LDAA #&07 D0CB: STAA &BE D0CD: JSR &EA4E D0D0: RTS D0D1: LDAA #&08 D0D3: STAA &BE D0D5: JSR &EA4E D0D8: RTS D0D9: LDAA #&06 D0DB: STAA &BE D0DD: JSR &EA4E D0E0: RTS D0E1: CLRA D0E2: STAA &80 D0E4: JSR &D297 test for blank cart D0E7: TSTA D0E8: BNE &D0F4 br if cart is blank D0EA: JSR &D278 test for patch cart D0ED: TSTA D0EE: BEQ &D0F4 br if patch cart D0F0: JSR &EA4E display 'MISMATCH' D0F3: RTS D0F4: JSR &D2AA format cart for patch D0F7: LDX #&6BE6 D0FA: STX &90 &90 = ptr to internal patches D0FC: LDX #&2C26 D0FF: STX &92 &92 = ptr to cart patches D101: LDX #&3826 D104: STX &94 &94 = ptr to end of cart patches D106: JMP &D12B D109: CLRA D10A: STAA &80 D10C: JSR &D278 test for patch cart D10F: TSTA D110: BNE &D0F0 D112: LDX #&6060 D115: STX &90 &90 = ptr to internal tones D117: LDX #&20A0 D11A: STX &92 &92 = ptr to cart tones D11C: TIM #&01,&A3 D11F: BEQ &D126 br if not M16C D121: LDX #&2800 D124: BRA &D129 D126: LDX #&2C26 D129: STX &94 &94 = ptr to end of cart tones copy data from (&90) to (&92), stop at &F4 D12B: LDX &90 D12D: LDAA &00,X D12F: INX D130: STX &90 D132: LDX &92 D134: STAA &00,X D136: CMPA &00,X D138: BNE &D157 D13A: INX D13B: STX &92 D13D: CPX &94 D13F: BNE &D12B D141: LDAA #&04 D143: STAA &BE D145: JSR &EA4E display 'SAVE COMPLETE' D148: AIM #&FE,&9D reset &9D bit 0 D14B: RTS D14C: LDAA #&07 D14E: STAA &BE D150: JSR &EA4E display 'MEMORY PROTECTED' D153: AIM #&FE,&9D reset &9D bit 0 D156: RTS D157: INC &0080 D15A: BNE &D10C D15C: LDAA #&08 D15E: STAA &BE D160: JSR &EA4E D163: AIM #&FE,&9D D166: RTS D167: LDAA #&06 D169: STAA &BE D16B: JSR &EA4E D16E: AIM #&FE,&9D D171: RTS ********** write tone tone number in 7E9F D172: LDAA &1747 get row 7 status D175: BITA #&04 D177: BNE &D1BE br if internal D179: JSR &D259 check for cartridge D17C: TIM #&08,&9A D17F: BEQ &D189 br if cart Ok D181: LDAA #&06 D183: STAA &BE D185: JSR &EA4E display 'INSERT CARTRIDGE' D188: RTS D189: JSR &D23B check cart memory protect D18C: TIM #&08,&99 D18F: BNE &D1B8 br if protected D191: LDAB &7E9F get tone number D194: CMPB #&20 D196: BLT &D1A4 br if tone < 32 D198: JSR &9C11 check for M16C D19B: TIM #&08,&9A D19E: BEQ &D1A4 br if not M16C D1A0: LDAA #&0C D1A2: BRA &D183 display 'SELECT NO. 1-32' D1A4: JSR &D278 test for patch cart D1A7: TSTA D1A8: BNE &D183 if not, display 'MISMATCH' D1AA: LDAB &7E9F get tone number D1AD: LDAA #&3B D1AF: MUL D1B0: ADDD #&20A0 D1B3: STD &90 &90 = ptr to cart tone D1B5: JMP &D1D5 D1B8: JMP &D20D D1BB: JMP &D20D D1BE: JSR &D21D test for int mem protect D1C1: TIM #&08,&99 D1C4: BNE &D1BB br if protected D1C6: LDAB &7E9F get tone number D1C9: CMPB #&31 D1CB: BGT &D215 br if ROM tone D1CD: LDAA #&3B D1CF: MUL D1D0: ADDD #&6060 D1D3: STD &90 &90 = ptr to internal tone copy tone to recall buffer, write tone edit buffer to tone D1D5: LDX &7F11 D1D8: STX &92 &92 = ptr to current tone edit buffer D1DA: LDX #&7FC0 D1DD: STX &94 &94 = ptr to recall buffer D1DF: LDAA #&3B D1E1: STAA &87 D1E3: LDX &90 D1E5: LDAA &00,X D1E7: LDX &94 D1E9: STAA &00,X D1EB: INX D1EC: STX &94 D1EE: LDX &92 D1F0: LDAA &00,X D1F2: INX D1F3: STX &92 D1F5: LDX &90 D1F7: STAA &00,X D1F9: CMPA &00,X D1FB: BNE &D215 D1FD: INX D1FE: STX &90 D200: DEC &0087 D203: BNE &D1E3 D205: LDAA #&09 D207: STAA &BE D209: JSR &EA4E display 'WRITTEN TONE' D20C: RTS D20D: LDAA #&07 D20F: STAA &BE D211: JSR &EA4E display 'MEMORY PROTECTED' D214: RTS D215: LDAA #&08 D217: STAA &BE D219: JSR &EA4E display 'MEMORY ERR' D21C: RTS ***** test for internal memory protect &99 bit 3 = memory protected D21D: AIM #&F7,&99 D220: LDAA #&AA D222: STAA &605F D225: CMPA &605F D228: BEQ &D22D D22A: OIM #&08,&99 D22D: LDAA #&55 D22F: STAA &605F D232: CMPA &605F D235: BEQ &D23A D237: OIM #&08,&99 D23A: RTS test cartridge memory protect &99 bit 3 = cartridge protected D23B: AIM #&F7,&99 D23E: LDAA #&AA D240: STAA &209F D243: CMPA &209F D246: BEQ &D24B D248: OIM #&08,&99 D24B: LDAA #&55 D24D: STAA &209F D250: CMPA &209F D253: BEQ &D258 D255: OIM #&08,&99 D258: RTS ********** test for cartridge present check &2000 to &207F for #&FF return &9A bit 3 = true if *no cart* D259: PSHX D25A: LDX #&2000 D25D: LDAB #&00 D25F: LDAA &00,X D261: CMPA #&FF D263: BNE &D266 D265: INCB D266: INX D267: CPX #&207F D26A: BNE &D25F D26C: AIM #&F7,&9A D26F: CMPB #&7F D271: BNE &D276 D273: OIM #&08,&9A D276: PULX D277: RTS ***** test for patch cart D278: LDX #&2000 D27B: LDAA #&A5 D27D: CMPA &00,X D27F: BNE &D28A br if first byte of cart != #&A5 D281: INX D282: LDAA #&2C D284: CMPA &00,X D286: BNE &D28A br if second byte of cart != #&2C D288: CLRA D289: RTS D28A: STAA &00,X store byte to cart D28C: LDAA &A2 D28E: ANDA #&F8 D290: STAA &A2 reset &A2 b0 - b2 D292: LDAA #&10 D294: STAA &BE store 'MISMATCH' in message number D296: RTS ***** test for blank cart return A = 1 if blank, A = 0 if not D297: LDX #&2000 D29A: CLRA D29B: CMPA &00,X D29D: BNE &D2A9 D29F: CPX #&3FFF D2A2: BEQ &D2A7 D2A4: INX D2A5: BRA &D29B D2A7: LDAA #&01 D2A9: RTS ***** format cart for patch data D2AA: LDAA #&A5 D2AC: STAA &2000 D2AF: LDAA #&2C D2B1: STAA &2001 D2B4: RTS D2B5: 00 00 00 ... **************************************** dual mode... D2B8: JSR &D5E5 D2BB: BRA &D30F ***** note table processing - voice assign, midi tx ? D2BD: LDAA &7F58 get key mode D2C0: BEQ &D2B8 br if DUAL D2C2: CMPA #&02 D2C4: BEQ &D2CF br if WHOLE LOWER D2C6: BGT &D2CF br if WHOLE UPPER etc split mode... D2C8: JSR &D30F D2CB: JSR &D630 D2CE: RTS whole mode... D2CF: LDX #&7EA0 D2D2: CLRB D2D3: LDAA &10,X D2D5: ASLA D2D6: BCC &D2D9 D2D8: INCB D2D9: INX D2DA: CPX &BA D2DC: BNE &D2D3 D2DE: STAB &B8 D2E0: LDAA &B8 D2E2: BNE &D2FE D2E4: LDAA &B9 D2E6: BEQ &D2FE D2E8: LDAA &7F58 get key mode D2EB: CMPA #&03 D2ED: BEQ &D2F9 br if whole upper D2EF: CMPA #&02 redundant D2F1: CLRA D2F2: TST &7F63 test upper portamento D2F5: BNE &D300 br if porta on D2F7: BRA &D358 D2F9: TST &7F6C test lower potamento D2FC: BNE &D300 br if porta on D2FE: BRA &D358 porta is on... D300: LDAA #&01 D302: LDX #&7EA0 D305: STAA &00,X D307: INCA D308: INX D309: CPX &BA D30B: BNE &D305 D30D: BRA &D358 D30F: LDX #&7EC0 D312: CLRB D313: LDAA &10,X D315: ASLA D316: RORB D317: INX D318: CPX &7E89 D31B: BNE &D313 D31D: RORB D31E: RORB D31F: ANDB #&3F D321: STAB &B8 D323: COMB D324: TIM #&02,&9F test for AMD MODE D327: BEQ &D32C D329: STAB &5000 write modules to LEDs D32C: TST &00B8 D32F: BNE &D358 D331: TST &00B9 D334: BEQ &D358 D336: LDAA &7F5F D339: LDAB &7F63 D33C: CMPA #&04 D33E: BEQ &D347 D340: CMPA #&00 D342: BEQ &D358 D344: TSTB D345: BEQ &D358 D347: LDAA #&01 D349: LDX #&7EC0 D34C: STAA &00,X D34E: INCA D34F: INX D350: CPX &7E89 D353: BNE &D34C D355: TST &7F58 D358: LDAA &B8 D35A: STAA &B9 D35C: LDX #&1400 D35F: STX &DE D361: LDX #&1500 D364: STX &CC D366: LDX #&117F D369: STX &7F1B D36C: LDAA &7F58 D36F: CMPA #&01 D371: BEQ &D37D D373: LDX #&11D3 D376: STX &96 D378: LDX #&117F D37B: BRA &D385 D37D: LDX #&7BD3 D380: STX &96 D382: LDX #&7B7F D385: STX &C6 D387: LDX #&7B00 D38A: STX &CE D38C: LDX #&1600 D38F: STX &7EE5 D392: AIM #&DF,&9D D395: TIM #&20,&9E D398: BEQ &D39D D39A: OIM #&20,&9D D39D: AIM #&DF,&9E D3A0: LDX &C6 D3A2: LDAA &00,X D3A4: LDX &CE D3A6: STAA &00,X D3A8: LDX &7F1B D3AB: LDAA &00,X D3AD: BITA #&80 D3AF: BEQ &D3B4 D3B1: OIM #&20,&9E D3B4: LDX &7EE5 D3B7: CMPA &00,X D3B9: BEQ &D3E5 D3BB: TSTA D3BC: BGT &D3E5 D3BE: LDAA &00,X D3C0: BEQ &D3D5 D3C2: LDX &7F1B D3C5: JSR &D540 D3C8: LDX &7F1B D3CB: LDAA &00,X D3CD: LDX &7EE5 D3D0: STAA &00,X D3D2: JMP &D3E5 D3D5: LDX &7F1B D3D8: JSR &D49D D3DB: LDX &7F1B D3DE: LDAA &00,X D3E0: LDX &7EE5 D3E3: STAA &00,X D3E5: TIM #&20,&9D D3E8: BNE &D3F7 D3EA: TIM #&20,&9E D3ED: BEQ &D3F7 D3EF: LDAA #&FD D3F1: JSR &DEB7 D3F4: OIM #&20,&9D D3F7: LDX &DE D3F9: SEI D3FA: LDAA &00,X D3FC: ORAA &80,X D3FE: CLI D3FF: LDX &C6 D401: LDAB &00,X D403: BGT &D40C D405: LDAB &7F30 D408: BEQ &D40C D40A: ORAA &00,X D40C: LDX &CC D40E: STAA &00,X D410: BNE &D487 D412: LDAA &80,X D414: BEQ &D41B D416: LDX &CC D418: JSR &DA6D D41B: LDX &CC D41D: LDAA &00,X D41F: STAA &80,X D421: INX D422: STX &CC D424: LDX &CE D426: INX D427: STX &CE D429: LDX &7EE5 D42C: INX D42D: STX &7EE5 D430: LDX &7F1B D433: INX D434: STX &7F1B D437: LDX &DE D439: INX D43A: STX &DE D43C: CPX #&1407 D43F: BLT &D49A D441: LDX &C6 D443: INX D444: STX &C6 D446: CPX &96 D448: BLT &D49A D44A: TIM #&40,&9E D44D: BEQ &D465 D44F: TIM #&20,&9E D452: BNE &D465 D454: JSR &CBD7 D457: LDAA #&B0 send all notes off D459: JSR &CBE4 D45C: LDAA #&7B D45E: JSR &DEB7 D461: CLRA D462: JSR &DEB7 D465: AIM #&BF,&9E D468: TIM #&40,&A4 D46B: BEQ &D486 D46D: TIM #&20,&9E D470: BNE &D486 D472: JSR &CBD7 D475: LDAA #&B0 send all notes off D477: JSR &CBDD D47A: LDAA #&7B D47C: JSR &DEB7 D47F: CLRA D480: JSR &DEB7 D483: AIM #&BF,&A4 D486: RTS D487: LDX &DE D489: LDAA &80,X D48B: BEQ &D41B D48D: LDAB #&80 D48F: ABX D490: JSR &D78B D493: LDX &DE D495: CLR &80,X D497: JMP &D41B D49A: JMP &D3A0 D49D: LDAA &00,X D49F: ANDA #&7F D4A1: STAA &E4 D4A3: XGDX D4A4: ANDB #&7F D4A6: STAB &E1 D4A8: LDAA &A7 D4AA: RORA D4AB: BCC &D4B3 D4AD: RORA D4AE: BCC &D4B3 D4B0: JSR &E0B4 D4B3: LDAA &7F79 D4B6: CMPA #&01 D4B8: BLT &D4E8 D4BA: BEQ &D52B D4BC: CMPA #&03 D4BE: BGT &D4F4 D4C0: BLT &D516 D4C2: JSR &CBD7 D4C5: LDAA #&90 D4C7: JSR &CBDD D4CA: LDAA &E1 D4CC: ADDA #&1C D4CE: STAA &80 D4D0: JSR &DEB7 D4D3: LDAA &E4 D4D5: JSR &DEB7 D4D8: LDAA #&90 D4DA: JSR &CBE4 D4DD: LDAA &80 D4DF: JSR &DEB7 D4E2: LDAA &E4 D4E4: JSR &DEB7 D4E7: RTS D4E8: LDAA &7F7A D4EB: LDAB &E1 D4ED: ADDB #&07 D4EF: CBA D4F0: BGT &D516 D4F2: BRA &D52B D4F4: LDAA &7F58 D4F7: BEQ &D52B D4F9: CMPA #&02 D4FB: BGT &D516 D4FD: BEQ &D52B D4FF: LDAB &E1 D501: ADDB #&07 D503: STAB &80 D505: LDAA &7F54 D508: CBA D509: BGT &D50E D50B: JSR &D52B D50E: LDAB &80 D510: LDAA &7F55 D513: CBA D514: BLT &D52A D516: JSR &CBD7 D519: LDAA #&90 D51B: JSR &CBDD D51E: LDAA &E1 D520: ADDA #&1C D522: JSR &DEB7 D525: LDAA &E4 D527: JSR &DEB7 D52A: RTS D52B: JSR &CBD7 D52E: LDAA #&90 D530: JSR &CBE4 D533: LDAA &E1 D535: ADDA #&1C D537: JSR &DEB7 D53A: LDAA &E4 D53C: JSR &DEB7 D53F: RTS D540: XGDX D541: ANDB #&7F D543: STAB &E1 D545: LDAA &A7 D547: RORA D548: BCC &D550 D54A: RORA D54B: BCC &D550 D54D: JSR &E105 D550: LDAA &7F79 D553: CMPA #&01 D555: BLT &D589 D557: BEQ &D5CE D559: CMPA #&03 D55B: BGT &D595 D55D: BLT &D5B7 D55F: JSR &CBD7 D562: LDAA #&90 D564: JSR &CBDD D567: LDAA &E1 D569: ADDA #&1C D56B: STAA &80 D56D: JSR &DEB7 D570: CLRA D571: JSR &DEB7 D574: OIM #&40,&A4 D577: LDAA #&90 D579: JSR &CBE4 D57C: LDAA &80 D57E: JSR &DEB7 D581: CLRA D582: JSR &DEB7 D585: OIM #&40,&9E D588: RTS D589: LDAB &E1 D58B: ADDB #&07 D58D: LDAA &7F7A D590: CBA D591: BGT &D5B7 D593: BRA &D5CE D595: LDAA &7F58 D598: BEQ &D5CE D59A: CMPA #&02 D59C: BGT &D5B7 D59E: BEQ &D5CE D5A0: LDAB &E1 D5A2: ADDB #&07 D5A4: STAB &80 D5A6: LDAA &7F54 D5A9: CBA D5AA: BGT &D5AF D5AC: JSR &D5CE D5AF: LDAB &80 D5B1: LDAA &7F55 D5B4: CBA D5B5: BLT &D5CD D5B7: JSR &CBD7 D5BA: LDAA #&90 D5BC: JSR &CBDD D5BF: LDAA &E1 D5C1: ADDA #&1C D5C3: JSR &DEB7 D5C6: CLRA D5C7: JSR &DEB7 D5CA: OIM #&40,&A4 D5CD: RTS D5CE: JSR &CBD7 D5D1: LDAA #&90 D5D3: JSR &CBE4 D5D6: LDAA &E1 D5D8: ADDA #&1C D5DA: JSR &DEB7 D5DD: CLRA D5DE: JSR &DEB7 D5E1: OIM #&40,&9E D5E4: RTS D5E5: LDX #&7EA0 D5E8: CLRB D5E9: LDAA &10,X D5EB: ASLA D5EC: RORB D5ED: INX D5EE: CPX &BA D5F0: BNE &D5E9 D5F2: RORB D5F3: RORB D5F4: ANDB #&3F D5F6: STAB &176A D5F9: COMB D5FA: TIM #&02,&9F test for AMD MODE D5FD: BEQ &D602 D5FF: STAB &5000 write modules to LEDs D602: LDAA &176A D605: BNE &D629 D607: LDAA &176B D60A: BEQ &D629 D60C: LDAA &7F68 D60F: CMPA #&04 D611: BEQ &D61C D613: CMPA #&00 D615: BEQ &D629 D617: TST &7F6C D61A: BEQ &D629 D61C: LDAA #&01 D61E: LDX #&7EA0 D621: STAA &00,X D623: INCA D624: INX D625: CPX &BA D627: BNE &D621 D629: LDAA &176A D62C: STAA &176B D62F: RTS D630: BSR &D5E5 D632: LDX #&7800 D635: STX &DE D637: LDX #&7900 D63A: STX &CC D63C: LDX #&7A7F D63F: STX &C6 D641: LDX #&7A00 D644: STX &CE D646: AIM #&DF,&A4 D649: LDX &C6 D64B: LDAA &00,X D64D: BITA #&80 D64F: BEQ &D654 D651: OIM #&20,&A4 D654: LDX &CE D656: CMPA &00,X D658: BEQ &D678 D65A: TSTA D65B: BGT &D678 D65D: LDAA &00,X D65F: BEQ &D66E D661: LDX &C6 D663: LDX &C6 D665: LDAA &00,X D667: LDX &CE D669: STAA &00,X D66B: JMP &D678 D66E: LDX &C6 D670: LDX &C6 D672: LDAA &00,X D674: LDX &CE D676: STAA &00,X D678: LDX &DE D67A: SEI D67B: LDAA &00,X D67D: ORAA &80,X D67F: CLI D680: LDX &C6 D682: LDAB &00,X D684: BGT &D68D D686: LDAB &7F39 D689: BEQ &D68D D68B: ORAA &00,X D68D: LDX &CC D68F: STAA &00,X D691: BNE &D6DE D693: LDAA &80,X D695: BEQ &D69C D697: LDX &CC D699: JSR &DA8A D69C: LDX &CC D69E: LDAA &00,X D6A0: STAA &80,X D6A2: INX D6A3: STX &CC D6A5: LDX &CE D6A7: INX D6A8: STX &CE D6AA: LDX &DE D6AC: INX D6AD: STX &DE D6AF: CPX #&7807 D6B2: BLT &D6F1 D6B4: LDX &C6 D6B6: INX D6B7: STX &C6 D6B9: CPX #&7AD3 D6BC: BLT &D6F1 D6BE: TIM #&40,&A4 D6C1: BEQ &D6DA D6C3: TIM #&20,&A4 D6C6: BNE &D6DA D6C8: JSR &CBD7 D6CB: LDAA #&B0 all notes off D6CD: JSR &CBDD D6D0: LDAA #&7B D6D2: JSR &DEB7 D6D5: LDAA #&00 D6D7: JSR &DEB7 D6DA: AIM #&BF,&A4 D6DD: RTS D6DE: LDX &DE D6E0: LDAA &80,X D6E2: BEQ &D69C D6E4: LDAB #&80 D6E6: ABX D6E7: JSR &D7BF D6EA: LDX &DE D6EC: CLR &80,X D6EE: JMP &D69C D6F1: JMP &D649 D6F4: ABA D6F5: TSTA D6F6: BPL &D6FC D6F8: ADDA #&0C D6FA: BRA &D6F5 D6FC: CMPA #&58 D6FE: BCS &D704 D700: SUBA #&0C D702: BRA &D6FC D704: RTS D705: LDAA &E1 D707: LDAB &7F5E D70A: JSR &D6F4 D70D: STAA &E1 D70F: RTS D710: LDAB &7F54 D713: LSRB D714: ADDB #&3C D716: CBA D717: BCC &D72D D719: BRA &D777 D71B: JSR &D72D D71E: LDAA &E1 D720: LDAB &7F67 D723: JSR &D6F4 D726: STAA &E1 D728: LDAA &7F68 D72B: BRA &D77D D72D: STAA &7F0F D730: LDAA &7F5F D733: STAA &AB D735: LDAA &7F10 D738: LDAB &7F5E D73B: JSR &D6F4 D73E: STAA &7F10 D741: JMP &D919 D744: LDAA &E4 D746: LDAB &7F7B D749: BEQ &D71B D74B: CMPB #&02 D74D: BEQ &D710 D74F: CMPA #&60 D751: BGE &D760 D753: SUBA #&30 D755: BCS &D772 D757: ASLA D758: BMI &D75E D75A: CMPA #&60 D75C: BLE &D760 D75E: LDAA #&60 D760: JSR &D72D D763: LDAA #&70 D765: SUBA &E4 D767: BCS &D789 D769: TAB D76A: ASLA D76B: ABA D76C: BMI &D772 D76E: CMPA #&60 D770: BLE &D774 D772: LDAA #&60 D774: STAA &7F0E D777: JSR &D705 D77A: LDAA &7F5F D77D: STAA &AB D77F: LDAA &7F72 D782: CMPA #&01 D784: BEQ &D78A D786: JSR &D7E4 D789: RTS D78A: RTS D78B: LDAA &00,X D78D: ANDA #&7F D78F: STAA &E4 D791: STAA &7F0E D794: STAA &7F0F D797: XGDX D798: ANDB #&7F D79A: STAB &7F10 D79D: STAB &E1 D79F: LDAA &7F58 D7A2: BEQ &D744 D7A4: CMPA #&02 D7A6: BLT &D730 D7A8: BGT &D7CB D7AA: LDAA &7F5E D7AD: JSR &D6F4 D7B0: STAA &E1 D7B2: LDAA &7F63 D7B5: TSTA D7B6: BNE &D7BB D7B8: CLRA D7B9: BRA &D7E2 D7BB: LDAA #&04 D7BD: BRA &D7E2 D7BF: LDAA &00,X D7C1: ANDA #&7F D7C3: STAA &E4 D7C5: STAA &7F0E D7C8: XGDX D7C9: ANDB #&7F D7CB: LDAA &7F67 D7CE: JSR &D6F4 D7D1: STAA &E1 D7D3: LDAA &7F58 D7D6: CMPA #&02 D7D8: BLT &D7DF D7DA: LDAA &7F6C D7DD: BRA &D7B5 D7DF: LDAA &7F68 D7E2: STAA &AB D7E4: LDAA #&F1 D7E6: STAA &B0 D7E8: TIM #&04,&9F test for Rotary Ass Mode D7EB: BNE &D835 D7ED: LDAA &AB D7EF: CMPA #&04 D7F1: BEQ &D835 D7F3: CMPA #&00 D7F5: BEQ &D808 D7F7: LDAA &7F58 D7FA: CMPA #&02 D7FC: BNE &D803 D7FE: LDAA &7F63 D801: BRA &D806 D803: LDAA &7F6C D806: BNE &D835 D808: LDX #&7EA0 D80B: LDAA &10,X D80D: ANDA #&7F D80F: CMPA &E1 D811: BEQ &D81B D813: INX D814: CPX &BA D816: BNE &D80B D818: JMP &D835 D81B: LDAA &00,X D81D: STX &F2 D81F: LDX #&7EA0 D822: CMPA &00,X D824: BGT &D828 D826: DEC &00,X D828: INX D829: CPX &BA D82B: BNE &D822 D82D: LDX &F2 D82F: PSHX D830: JSR &D847 D833: PULX D834: RTS rotary assign mode D835: LDX #&7EA0 D838: DEC &00,X D83A: BNE &D841 D83C: PSHX D83D: JSR &D847 D840: PULX D841: INX D842: CPX &BA D844: BNE &D838 D846: RTS D847: LDAA &BC D849: STAA &00,X D84B: LDAA &E1 D84D: ORAA #&80 D84F: STAA &10,X D851: XGDX D852: STAB &E0 D854: AIM #&0F,&E0 D857: XGDX D858: JSR &D85C D85B: RTS D85C: LDAA &AB D85E: CMPA #&05 D860: BEQ &D899 D862: CMPA #&06 D864: BEQ &D87B D866: ANDA #&03 D868: CMPA #&00 D86A: BEQ &D87E D86C: CMPA #&01 D86E: BEQ &D875 D870: CMPA #&02 D872: BEQ &D878 D874: RTS D875: JMP &D8B2 D878: JMP &D8CB D87B: JMP &D8D2 D87E: LDAA &E0 D880: CMPA #&06 D882: BCS &D88F D884: SUBA #&06 D886: STAA &E0 D888: LDAA #&F9 D88A: STAA &B0 D88C: JMP &D895 D88F: STAA &E0 D891: LDAA #&F1 D893: STAA &B0 D895: JSR &D8F4 D898: RTS D899: JSR &D8F4 D89C: LDAA #&C0 D89E: ORAA &E0 D8A0: ADDA #&03 D8A2: JSR &DEB7 D8A5: LDAA &E1 D8A7: ANDA #&7F D8A9: ADDA #&09 D8AB: JSR &DEB7 D8AE: JSR &D90B D8B1: RTS D8B2: JSR &D8F4 D8B5: LDAA #&C0 D8B7: ORAA &E0 D8B9: ADDA #&03 D8BB: JSR &DEB7 D8BE: LDAA &E1 D8C0: ANDA #&7F D8C2: ADDA #&15 D8C4: JSR &DEB7 D8C7: JSR &D90B D8CA: RTS D8CB: CLRA D8CC: STAA &E0 D8CE: JSR &D8F4 D8D1: RTS D8D2: LDAA #&C0 D8D4: STAA &81 D8D6: JSR &CBD1 D8D9: LDAA &81 D8DB: JSR &DEB7 D8DE: LDAA &E1 D8E0: ANDA #&7F D8E2: ADDA #&15 D8E4: JSR &DEB7 D8E7: JSR &D90B D8EA: INC &0081 D8ED: LDAA &81 D8EF: CMPA #&C6 D8F1: BNE &D8D9 D8F3: RTS D8F4: JSR &CBD1 D8F7: LDAA #&C0 D8F9: ORAA &E0 D8FB: JSR &DEB7 D8FE: LDAA &E1 D900: ANDA #&7F D902: ADDA #&15 D904: JSR &DEB7 D907: JSR &D90B D90A: RTS D90B: LDAA &7F0E D90E: JSR &DEB7 D911: RTS D912: LDAA &7F0F D915: JSR &DEB7 D918: RTS D919: LDAA #&F9 D91B: STAA &B0 D91D: TIM #&04,&9F D920: BNE &D963 D922: LDAA &AB D924: CMPA #&04 D926: BEQ &D963 D928: CMPA #&00 D92A: BEQ &D931 D92C: LDAA &7F63 D92F: BNE &D963 D931: LDX #&7EC0 D934: LDAA &10,X D936: ANDA #&7F D938: CMPA &7F10 D93B: BEQ &D946 D93D: INX D93E: CPX &7E89 D941: BNE &D934 D943: JMP &D963 D946: LDAA &00,X D948: STX &7E8B D94B: LDX #&7EC0 D94E: CMPA &00,X D950: BGT &D954 D952: DEC &00,X D954: INX D955: CPX &7E89 D958: BNE &D94E D95A: LDX &7E8B D95D: PSHX D95E: JSR &D976 D961: PULX D962: RTS D963: LDX #&7EC0 D966: DEC &00,X D968: BNE &D96F D96A: PSHX D96B: JSR &D976 D96E: PULX D96F: INX D970: CPX &7E89 D973: BNE &D966 D975: RTS D976: LDAA &B2 D978: STAA &00,X D97A: LDAA &7F10 D97D: ORAA #&80 D97F: STAA &10,X D981: XGDX D982: STAB &B5 D984: AIM #&0F,&B5 D987: XGDX D988: JSR &D98C D98B: RTS D98C: LDAA &AB D98E: CMPA #&05 D990: BEQ &D9C9 D992: CMPA #&06 D994: BEQ &D9AB D996: ANDA #&03 D998: CMPA #&00 D99A: BEQ &D9AE D99C: CMPA #&01 D99E: BEQ &D9A5 D9A0: CMPA #&02 D9A2: BEQ &D9A8 D9A4: RTS D9A5: JMP &D9EA D9A8: JMP &DA0B D9AB: JMP &DA12 D9AE: LDAA &B5 D9B0: CMPA #&06 D9B2: BCS &D9BF D9B4: SUBA #&06 D9B6: STAA &B5 D9B8: LDAA #&F1 D9BA: STAA &B0 D9BC: JMP &D9C5 D9BF: STAA &B5 D9C1: LDAA #&F9 D9C3: STAA &B0 D9C5: JSR &DA3A D9C8: RTS D9C9: JSR &DA3A D9CC: LDAA #&C0 D9CE: ORAA &B5 D9D0: ADDA #&03 D9D2: STAA &81 D9D4: JSR &DEB7 D9D7: LDAA &7F10 D9DA: ANDA #&7F D9DC: ADDA #&09 D9DE: STAA &82 D9E0: JSR &DEB7 D9E3: JSR &D912 D9E6: JSR &DF58 D9E9: RTS D9EA: JSR &DA3A D9ED: LDAA #&C0 D9EF: ORAA &B5 D9F1: ADDA #&03 D9F3: STAA &81 D9F5: JSR &DEB7 D9F8: LDAA &7F10 D9FB: ANDA #&7F D9FD: ADDA #&15 D9FF: STAA &82 DA01: JSR &DEB7 DA04: JSR &D912 DA07: JSR &DF58 DA0A: RTS DA0B: CLRA DA0C: STAA &B5 DA0E: JSR &DA3A DA11: RTS DA12: LDAA #&C0 DA14: STAA &81 DA16: JSR &CBD1 DA19: LDAA &81 DA1B: JSR &DEB7 DA1E: LDAA &7F10 DA21: ANDA #&7F DA23: ADDA #&15 DA25: STAA &82 DA27: JSR &DEB7 DA2A: JSR &D912 DA2D: JSR &DF58 DA30: INC &0081 DA33: LDAA &81 DA35: CMPA #&C6 DA37: BNE &DA19 DA39: RTS DA3A: JSR &CBD1 DA3D: LDAA #&C0 DA3F: ORAA &B5 DA41: STAA &81 DA43: JSR &DEB7 DA46: LDAA &7F10 DA49: ANDA #&7F DA4B: ADDA #&15 DA4D: STAA &82 DA4F: JSR &DEB7 DA52: JSR &D912 DA55: JSR &DF58 DA58: RTS DA59: LDAA &7F5F DA5C: STAA &AB DA5E: LDAA &7F10 DA61: LDAB &7F5E DA64: JSR &D6F4 DA67: STAA &7F10 DA6A: JMP &DCAE DA6D: XGDX DA6E: ANDB #&7F DA70: STAB &E1 DA72: STAB &7F10 DA75: LDAA &7F58 DA78: BEQ &DAA5 DA7A: CMPA #&02 DA7C: BLT &DA59 DA7E: BGT &DA8F DA80: LDAA &7F5E DA83: JSR &D6F4 DA86: STAA &E1 DA88: BRA &DAE9 DA8A: XGDX DA8B: ANDB #&7F DA8D: STAB &E1 DA8F: LDAA &7F67 DA92: JSR &D6F4 DA95: STAA &E1 DA97: LDAA &7F58 DA9A: CMPA #&02 DA9C: BGE &DA88 DA9E: LDAA &7F68 DAA1: STAA &AB DAA3: BRA &DAE9 DAA5: LDAB &7F7B DAA8: BEQ &DACD DAAA: LDAA &E1 DAAC: LDAB &7F5E DAAF: JSR &D6F4 DAB2: STAA &7F10 DAB5: STAA &E1 DAB7: LDAA &7F5F DABA: STAA &AB DABC: JSR &DCAE DABF: LDAA &7F72 DAC2: CMPA #&01 DAC4: BEQ &DAE8 DAC6: LDAA &7F5F DAC9: STAA &AB DACB: BRA &DAE9 DACD: JSR &DA59 DAD0: LDAA &7F72 DAD3: CMPA #&01 DAD5: BEQ &DAE8 DAD7: LDAA &E1 DAD9: LDAB &7F67 DADC: JSR &D6F4 DADF: STAA &E1 DAE1: LDAA &7F68 DAE4: STAA &AB DAE6: BRA &DAE9 DAE8: RTS DAE9: LDAA #&F1 DAEB: STAA &B0 DAED: LDAB &E1 DAEF: LDX #&7EA0 DAF2: ORAB #&80 DAF4: CMPB &10,X DAF6: BNE &DAFF DAF8: STAB &8D DAFA: JSR &DB05 DAFD: LDAB &8D DAFF: INX DB00: CPX &BA DB02: BNE &DAF4 DB04: RTS DB05: ANDB #&7F DB07: STAB &10,X DB09: STX &F2 DB0B: XGDX DB0C: STAB &E0 DB0E: AIM #&0F,&E0 DB11: LDX #&7EA0 DB14: CLR &00E2 DB17: LDAA &10,X DB19: BITA #&80 DB1B: BNE &DB20 DB1D: INC &00E2 DB20: INX DB21: CPX &BA DB23: BNE &DB17 DB25: LDX &F2 DB27: LDAA &00,X DB29: STAA &E3 DB2B: LDAA &E2 DB2D: STAA &00,X DB2F: LDX #&7EA0 DB32: LDAA &10,X DB34: BITA #&80 DB36: BNE &DB40 DB38: INX DB39: CPX &BA DB3B: BNE &DB32 DB3D: JMP &DB4B DB40: LDAA &00,X DB42: CMPA &E3 DB44: BGE &DB38 DB46: INC &00,X DB48: JMP &DB38 DB4B: JSR &DB51 DB4E: LDX &F2 DB50: RTS DB51: LDAA &AB DB53: CMPA #&05 DB55: BEQ &DB8E DB57: CMPA #&06 DB59: BEQ &DB70 DB5B: ANDA #&03 DB5D: CMPA #&00 DB5F: BEQ &DB73 DB61: CMPA #&01 DB63: BEQ &DB6A DB65: CMPA #&02 DB67: BEQ &DB6D DB69: RTS DB6A: JMP &DBBE DB6D: JMP &DBD9 DB70: JMP &DC22 DB73: LDAA &E0 DB75: CMPA #&06 DB77: BCS &DB84 DB79: SUBA #&06 DB7B: STAA &E0 DB7D: LDAA #&F9 DB7F: STAA &B0 DB81: JMP &DB8A DB84: STAA &E0 DB86: LDAA #&F1 DB88: STAA &B0 DB8A: JSR &DC95 DB8D: RTS DB8E: JSR &CBD1 DB91: LDAA #&D0 DB93: ORAA &E0 DB95: JSR &DEB7 DB98: LDAA &E1 DB9A: ANDA #&7F DB9C: ADDA #&09 DB9E: JSR &DEB7 DBA1: LDAA #&00 DBA3: JSR &DEB7 DBA6: LDAA #&D0 DBA8: ORAA &E0 DBAA: ADDA #&03 DBAC: JSR &DEB7 DBAF: LDAA &E1 DBB1: ANDA #&7F DBB3: ADDA #&15 DBB5: JSR &DEB7 DBB8: LDAA #&00 DBBA: JSR &DEB7 DBBD: RTS DBBE: JSR &DC95 DBC1: LDAA #&D0 DBC3: ORAA &E0 DBC5: ADDA #&03 DBC7: JSR &DEB7 DBCA: LDAA &E1 DBCC: ANDA #&7F DBCE: ADDA #&15 DBD0: JSR &DEB7 DBD3: LDAA #&00 DBD5: JSR &DEB7 DBD8: RTS DBD9: LDAA #&FF DBDB: STAA &80 DBDD: LDX #&7EA0 DBE0: LDAA &10,X DBE2: BITA #&80 DBE4: BEQ &DBEC DBE6: CMPA &80 DBE8: BGE &DBEC DBEA: STAA &80 DBEC: INX DBED: CPX &BA DBEF: BNE &DBE0 DBF1: LDAA &80 DBF3: CMPA #&FF DBF5: BEQ &DC1B DBF7: JSR &CBD1 DBFA: LDAA #&C0 DBFC: JSR &DEB7 DBFF: LDAA &80 DC01: ANDA #&7F DC03: ADDA #&15 DC05: JSR &DEB7 DC08: LDX #&1500 DC0B: LDAB &80 DC0D: ANDB #&7F DC0F: ABX DC10: LDAA &00,X DC12: ANDA #&7F DC14: STAA &7F0E DC17: JSR &D90B DC1A: RTS DC1B: CLRA DC1C: STAA &E0 DC1E: JSR &DC95 DC21: RTS DC22: LDAA #&FF DC24: STAA &80 DC26: LDX #&7EA0 DC29: LDAA &10,X DC2B: BITA #&80 DC2D: BEQ &DC35 DC2F: CMPA &80 DC31: BGE &DC35 DC33: STAA &80 DC35: INX DC36: CPX &BA DC38: BNE &DC29 DC3A: LDAA &80 DC3C: CMPA #&FF DC3E: BEQ &DC71 DC40: JSR &CBD1 DC43: LDAA #&C0 DC45: STAA &81 DC47: LDAA &81 DC49: JSR &DEB7 DC4C: LDAA &80 DC4E: ANDA #&7F DC50: ADDA #&15 DC52: JSR &DEB7 DC55: LDX #&1500 DC58: LDAB &80 DC5A: ANDB #&7F DC5C: ABX DC5D: LDAA &00,X DC5F: ANDA #&7F DC61: STAA &7F0E DC64: JSR &D90B DC67: INC &0081 DC6A: LDAA &81 DC6C: CMPA #&C6 DC6E: BNE &DC47 DC70: RTS DC71: LDAA #&D0 DC73: STAA &81 DC75: JSR &CBD1 DC78: LDAA &81 DC7A: JSR &DEB7 DC7D: LDAA &E1 DC7F: ANDA #&7F DC81: ADDA #&15 DC83: JSR &DEB7 DC86: LDAA #&00 DC88: JSR &DEB7 DC8B: INC &0081 DC8E: LDAA &81 DC90: CMPA #&D6 DC92: BNE &DC78 DC94: RTS DC95: JSR &CBD1 DC98: LDAA #&D0 DC9A: ORAA &E0 DC9C: JSR &DEB7 DC9F: LDAA &E1 DCA1: ANDA #&7F DCA3: ADDA #&15 DCA5: JSR &DEB7 DCA8: LDAA #&00 DCAA: JSR &DEB7 DCAD: RTS DCAE: LDAA #&F9 DCB0: STAA &B0 DCB2: LDAB &7F10 DCB5: LDX #&7EC0 DCB8: ORAB #&80 DCBA: CMPB &10,X DCBC: BNE &DCC5 DCBE: STAB &8D DCC0: JSR &DCCC DCC3: LDAB &8D DCC5: INX DCC6: CPX &7E89 DCC9: BNE &DCBA DCCB: RTS DCCC: ANDB #&7F DCCE: STAB &10,X DCD0: STX &7E8B DCD3: XGDX DCD4: STAB &B5 DCD6: AIM #&0F,&B5 DCD9: LDX #&7EC0 DCDC: CLR &00B3 DCDF: LDAA &10,X DCE1: BITA #&80 DCE3: BNE &DCE8 DCE5: INC &00B3 DCE8: INX DCE9: CPX &7E89 DCEC: BNE &DCDF DCEE: LDX &7E8B DCF1: LDAA &00,X DCF3: STAA &B4 DCF5: LDAA &B3 DCF7: STAA &00,X DCF9: LDX #&7EC0 DCFC: LDAA &10,X DCFE: BITA #&80 DD00: BNE &DD0B DD02: INX DD03: CPX &7E89 DD06: BNE &DCFC DD08: JMP &DD16 DD0B: LDAA &00,X DD0D: CMPA &B4 DD0F: BGE &DD02 DD11: INC &00,X DD13: JMP &DD02 DD16: JSR &DD1D DD19: LDX &7E8B DD1C: RTS DD1D: LDAA &AB DD1F: CMPA #&05 DD21: BEQ &DD5A DD23: CMPA #&06 DD25: BEQ &DD3C DD27: ANDA #&03 DD29: CMPA #&00 DD2B: BEQ &DD3F DD2D: CMPA #&01 DD2F: BEQ &DD36 DD31: CMPA #&02 DD33: BEQ &DD39 DD35: RTS DD36: JMP &DD9C DD39: JMP &DDC0 DD3C: JMP &DE10 DD3F: LDAA &B5 DD41: CMPA #&06 DD43: BCS &DD50 DD45: SUBA #&06 DD47: STAA &B5 DD49: LDAA #&F1 DD4B: STAA &B0 DD4D: JMP &DD56 DD50: STAA &B5 DD52: LDAA #&F9 DD54: STAA &B0 DD56: JSR &DE92 DD59: RTS DD5A: JSR &CBD1 DD5D: LDAA #&D0 DD5F: ORAA &B5 DD61: STAA &81 DD63: JSR &DEB7 DD66: LDAA &7F10 DD69: ANDA #&7F DD6B: ADDA #&09 DD6D: STAA &82 DD6F: JSR &DEB7 DD72: CLRA DD73: STAA &83 DD75: JSR &DEB7 DD78: JSR &DFD1 DD7B: LDAA #&D0 DD7D: ORAA &B5 DD7F: ADDA #&03 DD81: STAA &81 DD83: JSR &DEB7 DD86: LDAA &7F10 DD89: ANDA #&7F DD8B: ADDA #&15 DD8D: STAA &82 DD8F: JSR &DEB7 DD92: CLRA DD93: STAA &83 DD95: JSR &DEB7 DD98: JSR &DFD1 DD9B: RTS DD9C: JSR &DE92 DD9F: LDAA #&D0 DDA1: ORAA &B5 DDA3: ADDA #&03 DDA5: STAA &81 DDA7: JSR &DEB7 DDAA: LDAA &7F10 DDAD: ANDA #&7F DDAF: ADDA #&15 DDB1: STAA &82 DDB3: JSR &DEB7 DDB6: CLRA DDB7: STAA &83 DDB9: JSR &DEB7 DDBC: JSR &DFD1 DDBF: RTS DDC0: LDAA #&FF DDC2: STAA &80 DDC4: LDX #&7EC0 DDC7: LDAA &10,X DDC9: BITA #&80 DDCB: BEQ &DDD3 DDCD: CMPA &80 DDCF: BGE &DDD3 DDD1: STAA &80 DDD3: INX DDD4: CPX &7E89 DDD7: BNE &DDC7 DDD9: LDAA &80 DDDB: CMPA #&FF DDDD: BEQ &DE09 DDDF: JSR &CBD1 DDE2: LDAA #&C0 DDE4: STAA &81 DDE6: JSR &DEB7 DDE9: LDAA &80 DDEB: ANDA #&7F DDED: ADDA #&15 DDEF: STAA &82 DDF1: JSR &DEB7 DDF4: LDX #&1500 DDF7: LDAB &80 DDF9: ANDB #&7F DDFB: ABX DDFC: LDAA &00,X DDFE: ANDA #&7F DE00: STAA &7F0F DE03: STAA &83 DE05: JSR &D912 DE08: RTS DE09: CLRA DE0A: STAA &B5 DE0C: JSR &DE92 DE0F: RTS DE10: LDAA #&FF DE12: STAA &80 DE14: LDX #&7EC0 DE17: LDAA &10,X DE19: BITA #&80 DE1B: BEQ &DE23 DE1D: CMPA &80 DE1F: BGE &DE23 DE21: STAA &80 DE23: INX DE24: CPX &7E89 DE27: BNE &DE17 DE29: LDAA &80 DE2B: CMPA #&FF DE2D: BEQ &DE67 DE2F: JSR &CBD1 DE32: LDAA #&C0 DE34: STAA &81 DE36: LDAA &81 DE38: JSR &DEB7 DE3B: LDAA &80 DE3D: ANDA #&7F DE3F: ADDA #&15 DE41: STAA &82 DE43: JSR &DEB7 DE46: LDX #&1500 DE49: LDAB &80 DE4B: ANDB #&7F DE4D: ABX DE4E: LDAA &00,X DE50: ANDA #&7F DE52: STAA &7F0F DE55: STAA &83 DE57: JSR &D912 DE5A: JSR &DFD1 DE5D: INC &0081 DE60: LDAA &81 DE62: CMPA #&C6 DE64: BNE &DE36 DE66: RTS DE67: LDAA #&D0 DE69: STAA &81 DE6B: JSR &CBD1 DE6E: LDAA &81 DE70: JSR &DEB7 DE73: LDAA &7F10 DE76: ANDA #&7F DE78: ADDA #&15 DE7A: STAA &82 DE7C: JSR &DEB7 DE7F: CLRA DE80: STAA &83 DE82: JSR &DEB7 DE85: JSR &DFD1 DE88: INC &0081 DE8B: LDAA &81 DE8D: CMPA #&D6 DE8F: BNE &DE6E DE91: RTS DE92: JSR &CBD1 DE95: LDAA #&D0 DE97: ORAA &B5 DE99: STAA &81 DE9B: JSR &DEB7 DE9E: LDAA &7F10 DEA1: ANDA #&7F DEA3: ADDA #&15 DEA5: STAA &82 DEA7: JSR &DEB7 DEAA: CLRA DEAB: STAA &83 DEAD: JSR &DEB7 DEB0: JSR &DFD1 DEB3: RTS DEB4: 00 00 00 ... **************************************** tx byte in A via assign sig out DEB7: PSHX DEB8: LDX &F4 get midi tx head DEBA: STAA &00,X store byte in buffer DEBC: INX increment buffer pos DEBD: CPX #&1380 DEC0: BCS &DEC5 DEC2: LDX #&1200 loop buffer DEC5: SEI DEC6: STX &F4 store pointer DEC8: OIM #&04,&11 set tx irq enable DECB: CLI DECC: PULX DECD: RTS **************************************** DECE: 00 00 00 ... IRQ (keyboard gate array) interrupt handler DED1: LDAA &3FFF DED4: CMPA #&A5 DED6: BNE &DEDB br if no dev cart DED8: JMP &200C DEDB: PSHX DEDC: LDAA &117C get note number DEDF: STAA &84 store note number DEE1: LDAA &117D get note velocity DEE4: STAA &85 store note velocity DEE6: JSR &DEEB DEE9: PULX DEEA: RTI process gate array message DEEB: LDAA &7F58 get key mode DEEE: CMPA #&01 DEF0: BNE &DF0A br if not split DEF2: LDAA &84 get key number DEF4: ANDA #&7F DEF6: ADDA #&07 adjust number DEF8: LDAB &7F54 get upper split point DEFB: CBA DEFC: BLT &DF2A br if below upper split DEFE: LDX #&7B80 DF01: LDAB &84 DF03: ANDB #&7F DF05: ABX DF06: LDAA &85 DF08: STAA &00,X store in table at 7B80 DF0A: LDX #&1480 DF0D: LDAB &84 DF0F: ANDB #&7F DF11: ADDB #&07 DF13: ABX DF14: LDAA &85 DF16: BITA #&80 DF18: BEQ &DF23 DF1A: LDAB &7F30 get upper local DF1D: BEQ &DF23 br if local off DF1F: ANDA #&7F DF21: STAA &00,X store in upper note table DF23: LDAA &7F58 get key mode DF26: CMPA #&01 DF28: BNE &DF57 br if not split DF2A: LDAA &84 DF2C: ANDA #&7F DF2E: ADDA #&07 DF30: LDAB &7F55 get lower split point DF33: CBA DF34: BGT &DF57 br if above lower split DF36: LDX #&7A80 DF39: LDAB &84 DF3B: ANDB #&7F DF3D: ABX DF3E: LDAA &85 DF40: STAA &00,X store in table at &7A80 DF42: LDX #&7880 DF45: ADDB #&07 DF47: ABX DF48: LDAA &85 DF4A: BITA #&80 DF4C: BEQ &DF57 DF4E: LDAB &7F39 get lower local DF51: BEQ &DF57 br if lower local off DF53: ANDA #&7F DF55: STAA &00,X store in lower note table DF57: RTS ********** DF58: LDAA &7F72 DF5B: CMPA #&01 DF5D: BNE &DF6B DF5F: LDX #&7E6F DF62: LDAB &81 DF64: ANDB #&07 DF66: ABX DF67: STAA &00,X DF69: BRA &DF6C DF6B: RTS DF6C: LDAA &7F70 DF6F: CMPA #&03 DF71: BEQ &DF6B DF73: LDAA &7F71 DF76: TAB DF77: MUL DF78: ASLD DF79: TAB DF7A: ADDB &7F71 DF7D: CLRA DF7E: ADDD #&0005 DF81: ADDD &7E83 DF84: LDX &7E7C DF87: STD &00,X DF89: LDAA &81 DF8B: STAA &02,X DF8D: LDAA &82 DF8F: STAA &03,X DF91: LDAA &7F0F DF94: LDAB &7F6F DF97: MUL DF98: ASLD DF99: STAA &86 DF9B: STX &92 DF9D: LDX #&7E6F DFA0: LDAB &81 DFA2: ANDB #&07 DFA4: ABX DFA5: LDAA &00,X DFA7: CMPA #&00 DFA9: BEQ &DFD0 DFAB: LDX &92 DFAD: LDAA &86 DFAF: STAA &04,X DFB1: LDAA #&01 DFB3: STAA &7E85 DFB6: XGDX DFB7: ADDD #&0005 DFBA: XGDX DFBB: CPX #&7D2C DFBE: BCS &DFC3 DFC0: LDX #&7C00 DFC3: STX &7E7C DFC6: CPX &7E7E DFC9: BNE &DFD0 DFCB: LDAA #&02 DFCD: STAA &7E85 DFD0: RTS DFD1: LDAA &7F72 DFD4: CMPA #&01 DFD6: BNE &DFD0 DFD8: LDAA &7F70 DFDB: CMPA #&03 DFDD: BNE &DFFE DFDF: LDAA &81 DFE1: CMPA #&D0 DFE3: BLT &DFD0 DFE5: ORAA #&10 DFE7: STAA &86 DFE9: LDAA #&F1 DFEB: JSR &DEB7 DFEE: LDAA &86 DFF0: JSR &DEB7 DFF3: LDAA &82 DFF5: JSR &DEB7 DFF8: LDAA &7F6F DFFB: JSR &DEB7 DFFE: LDAA &7E7B E001: CMPA #&02 E003: BEQ &E046 E005: LDAA &7F71 E008: TAB E009: MUL E00A: ASLD E00B: TAB E00C: ADDB &7F71 E00F: CLRA E010: ADDD #&0005 E013: ADDD &7E79 E016: LDX &7E75 E019: STD &00,X E01B: LDAA &81 E01D: STAA &02,X E01F: LDAA &82 E021: STAA &03,X E023: LDAA &83 E025: STAA &04,X E027: LDAA #&01 E029: STAA &7E7B E02C: XGDX E02D: ADDD #&0005 E030: XGDX E031: CPX #&7E58 E034: BCS &E039 E036: LDX #&7D2C E039: STX &7E75 E03C: CPX &7E77 E03F: BNE &E046 E041: LDAA #&02 E043: STAA &7E7B E046: RTS E047: LDX &7EE2 E04A: CPX #&2010 E04D: BEQ &E05E E04F: TIM #&04,&A5 E052: BEQ &E05E E054: LDAB #&FF E056: STAB &00,X E058: INX E059: DEC &7EFC E05C: BNE &E056 E05E: AIM #&FB,&A5 E061: RTS E062: CLRA E063: BRA &E067 E065: LDAA #&7F E067: LDAB &A7 E069: RORB E06A: BCC &E05E E06C: RORB E06D: BCC &E05E E06F: LDAB #&C1 E071: BRA &E082 E073: CLRA E074: BRA &E078 E076: LDAA #&7F E078: LDAB &A7 E07A: RORB E07B: BCC &E05E E07D: RORB E07E: BCC &E05E E080: LDAB #&C0 E082: STAA &87 E084: STAB &86 E086: TIM #&04,&A7 E089: BNE &E09A E08B: JSR &E128 E08E: AIM #&F7,&08 E091: CLRA E092: CLR &7EE4 E095: OIM #&08,&08 E098: BRA &E0A6 E09A: AIM #&F7,&08 E09D: LDAA &7EE4 E0A0: CLR &7EE4 E0A3: OIM #&08,&08 E0A6: JSR &E047 E0A9: STAA &00,X E0AB: INX E0AC: LDAA &87 E0AE: STAA &00,X E0B0: LDAA &86 E0B2: BRA &E0DD E0B4: TIM #&04,&A7 E0B7: BNE &E0C5 E0B9: JSR &E128 E0BC: JSR &A359 E0BF: CLRA E0C0: CLR &7EE4 E0C3: BRA &E0D1 E0C5: AIM #&F7,&08 E0C8: LDAA &7EE4 E0CB: CLR &7EE4 E0CE: OIM #&08,&08 E0D1: JSR &E047 E0D4: STAA &00,X E0D6: INX E0D7: LDAA &E1 E0D9: STAA &00,X E0DB: LDAA &E4 E0DD: INX E0DE: STAA &00,X E0E0: INX E0E1: STX &7EE2 E0E4: LDD &7EE2 E0E7: LDX &7EE7 E0EA: STX &90 E0EC: SUBD &90 E0EE: BCS &E0F6 E0F0: OIM #&08,&A5 E0F3: OIM #&80,&A7 E0F6: COMA E0F7: COMB E0F8: ASLD E0F9: ASLD E0FA: TIM #&10,&A7 E0FD: BNE &E101 E0FF: ASLD E100: ASLD E101: JSR &8937 E104: RTS E105: JSR &E047 E108: AIM #&F7,&08 E10B: LDAA &7EE4 E10E: CLR &7EE4 E111: OIM #&08,&08 E114: STAA &00,X E116: INX E117: LDAB &E1 E119: ORAB #&80 E11B: STAB &00,X E11D: BRA &E0E0 E11F: 20 41 56 41 49 4C 20 20 AVAIL E127: 20 E128: TIM #&04,&A7 7B 04 A7 {.. E12B: BNE &E144 26 17 &. E12D: OIM #&04,&A7 72 04 A7 r.. E130: LDX #&E11E CE E1 1E ... E133: STX &90 DF 90 .. E135: LDX #&1396 CE 13 96 ... E138: STX &92 DF 92 .. E13A: LDAA #&09 86 09 .. E13C: STAA &80 97 80 .. E13E: JSR &A54C BD A5 4C ..L E141: JSR &9647 BD 96 47 ..G E144: RTS 39 9 E145: 00 00 00 ********** Lookup table to map values 0-127 to 0-99 for factor value display E148: 00 00 01 01 02 03 04 ....... E14F: 05 06 07 07 08 09 0A 0A ........ E157: 0B 0C 0D 0E 0E 0F 10 11 ........ E15F: 11 12 13 14 15 15 16 17 ........ E167: 18 18 19 1A 1B 1C 1C 1D ........ E16F: 1E 1F 1F 20 21 22 23 23 ... !"## E177: 24 25 26 26 27 28 29 2A $%&&'()* E17F: 2A 2B 2C 2D 2D 2E 2F 30 *+,--./0 E187: 31 32 32 33 34 35 35 36 12234556 E18F: 37 38 38 39 3A 3B 3C 3C 7889:;<< E197: 3D 3E 3F 3F 40 41 42 43 =>??@ABC E19F: 43 44 45 46 46 47 48 49 CDEFFGHI E1A7: 4A 4A 4B 4C 4D 4D 4E 4F JJKLMMNO E1AF: 50 51 51 52 53 54 54 55 PQQRSTTU E1B7: 56 57 58 59 5A 5B 5C 5D VWXYZ[\] E1BF: 5E 5F 60 61 62 63 63 63 ^_`abccc E1C7: 63 c ***** Lookup table for ? E1C8: 00 02 03 04 06 07 08 ....... E1CF: 09 0B 0C 0D 0F 10 11 12 ........ E1D7: 14 15 16 18 19 1A 1B 1D ........ E1DF: 1E 1F 21 22 23 24 26 27 ..!"#$&' E1E7: 28 2A 2B 2C 2D 2F 30 31 (*+,-/01 E1EF: 33 34 35 36 36 38 3A 3C 345668:< E1F7: 3D 3E 3F 41 42 43 44 46 =>?ABCDF E1FF: 47 48 4A 4B 4C 4D 4F 50 GHJKLMOP E207: 51 53 54 55 56 58 59 5A QSTUVXYZ E20F: 5C 5D 5E 5F 61 62 63 65 \]^_abce E217: 66 67 68 6A 6B 6C 6E 6F fghjklno E21F: 70 71 73 74 75 77 78 79 pqstuwxy E227: 7A 7C 7D 7E 7F z|}~. patch factor text and data offset 0 E22C: 31 31 20 E22F: 55 50 50 45 52 2F 4C 4F E237: 57 45 52 20 42 41 4C 41 11 UPPER/LOWER BALANCE E23F: 4E 43 45 00 7F 0, 7F offset 1 E244: 31 32 20 E247: 44 55 41 4C 20 44 45 54 E24F: 55 4E 45 20 20 20 20 20 12 DUAL DETUNE E257: 20 20 20 01 3F 1, 3F offset 2 E25C: 31 33 20 E25F: 55 50 50 45 52 20 53 50 E267: 4C 49 54 20 50 4F 49 4E 13 UPPER SPLIT POINT E26F: 54 20 20 02 7F 2, 7F offset 3 E274: 31 34 20 E277: 4C 4F 57 45 52 20 53 50 E27F: 4C 49 54 20 50 4F 49 4E 14 LOWER SPLIT POINT E287: 54 20 20 02 7F 2, 7F offset 4 E28C: 31 35 20 E28F: 50 4F 52 54 41 4D 45 4E E297: 54 4F 20 54 49 4D 45 20 15 PORTAMENTO TIME E29F: 20 20 20 00 7F 0, 7F offset 5 E2A4: 31 36 20 E2A7: 42 45 4E 44 45 52 20 52 E2AF: 41 4E 47 45 20 20 20 20 16 BENDER RANGE E2B7: 20 20 20 03 03 3, 3 offset 6 E2BC: 31 37 20 E2BF: 4B 45 59 20 20 4D 4F 44 E2C7: 45 20 20 20 20 20 20 20 17 KEY MODE E2CF: 20 20 20 04 02 4, 2 offset 7 E2D4: 31 38 20 E2D7: 54 4F 54 41 4C 20 56 4F E2DF: 4C 55 4D 45 20 20 20 20 18 TOTAL VOLUME E2E7: 20 20 20 00 7F 0, 7F offset 8 E2EC: 32 31 20 E2EF: 41 46 54 45 52 20 54 4F E2F7: 55 43 48 20 20 56 49 42 21 AFTER TOUCH VIB E2FF: 20 20 20 05 7F 5, 7F offset 9 E304: 32 32 20 E307: 41 46 54 45 52 20 54 4F E30F: 55 43 48 20 20 42 52 49 22 AFTER TOUCH BRI E317: 20 20 20 05 7F 5, 7F offset A E31C: 32 33 20 E31F: 41 46 54 45 52 20 54 4F E327: 55 43 48 20 20 56 4F 4C 23 AFTER TOUCH VOL E32F: 20 20 20 05 7F 5, 7F offset B E334: 33 31 20 E337: 55 50 50 45 52 20 54 4F E33F: 4E 45 20 20 20 20 20 20 31 UPPER TONE E347: 20 20 20 06 64 6, 64 offset C E34C: 33 32 20 E34F: 55 50 20 43 48 52 4F 4D E357: 41 54 49 43 20 53 48 49 32 UP CHROMATIC SHIFT E35F: 46 54 20 07 7F 7, 7F offset D E364: 33 33 20 E367: 55 50 50 45 52 20 4B 45 E36F: 59 20 41 53 53 49 47 4E 33 UPPER KEY ASSIGN E377: 20 20 20 08 02 8, 2 offset E E37C: 33 34 20 E37F: 55 50 50 45 52 20 55 4E E387: 49 53 4F 4E 20 44 45 54 34 UPPER UNISON DETUNE E38F: 55 4E 45 01 3F 1, 3F offset F E394: 33 35 20 E397: 55 50 50 45 52 20 48 4F E39F: 4C 44 20 20 20 20 20 20 35 UPPER HOLD E3A7: 20 20 20 09 01 9, 1 offset 10 E3AC: 33 36 20 E3AF: 55 50 50 45 52 20 4C 46 E3B7: 4F 20 4D 4F 44 20 44 45 36 UPPER LFO MOD DEPTH E3BF: 50 54 48 00 7F 0, 7F offset 11 E3C4: 33 37 20 E3C7: 55 50 50 45 52 20 50 4FO E3CF: 52 54 41 4D 45 4E 54 4F 37 UPPER PORTAMENT E3D7: 20 20 20 09 01 9, 1 offset 12 E3DC: 33 38 20 E3DF: 55 50 50 45 52 20 42 45 E3E7: 4E 44 45 52 20 20 20 20 38 UPPER BENDER E3EF: 20 20 20 09 01 9, 1 offset 13 E3F4: 33 39 20 E3F7: 55 50 50 45 52 20 44 59 E3FF: 4E 41 4D 49 43 53 20 20 39 UPPER DYNAMICS E407: 20 20 20 0F 01 F, 1 offset 14 E40C: 34 31 20 E40F: 4C 4F 57 45 52 20 54 4F E417: 4E 45 20 20 20 20 20 20 41 LOWER TONE E41F: 20 20 20 06 64 6, 64 offset 15 E424: 34 32 20 E427: 4C 4F 20 43 48 52 4F 4D E42F: 41 54 49 43 20 53 48 49 42 LO CHROMATIC SHIFT E437: 46 54 20 07 7F 7, 7F offset 16 E43C: 34 33 20 E43F: 4C 4F 57 45 52 20 4B 45 E447: 59 20 41 53 53 49 47 4E 43 LOWER KEY ASSIGN E44F: 20 20 20 08 02 8, 2 offset 17 E454: 34 34 20 E457: 4C 4F 57 45 52 20 55 4E E45F: 49 53 4F 4E 20 44 45 54 44 LOWER UNISON DETUNE E467: 55 4E 45 01 3F 1, 3F offset 18 E46C: 34 35 20 E46F: 4C 4F 57 45 52 20 48 4F E477: 4C 44 20 20 20 20 20 20 45 LOWER HOLD E47F: 20 20 20 09 01 9, 1 offset 19 E484: 34 36 20 E487: 4C 4F 57 45 52 20 4C 46 E48F: 4F 20 4D 4F 44 20 44 45 46 LOWER LFO MOD DEPTH E497: 50 54 48 00 7F 0, 7F offset 1A E49C: 34 37 20 E49F: 4C 4F 57 45 52 20 50 4F E4A7: 52 54 41 4D 45 4E 54 4F 47 LOWER PORTAMENTO E4AF: 20 20 20 09 01 9, 1 offset 1B E4B4: 34 38 20 E4B7: 4C 4F 57 45 52 20 42 45 E4BF: 4E 44 45 52 20 20 20 20 48 LOWER BENDER E4C7: 20 20 20 09 01 9, 1 offset 1C E4CC: 34 39 20 E4CF: 4C 4F 57 45 52 20 44 59S E4D7: 4E 41 4D 49 43 53 20 20 49 LOWER DYNAMIC E4DF: 20 20 20 0F 01 F, 1 offset 1D E4E4: 35 31 20 E4E7: 43 48 41 53 45 20 50 4C E4EF: 41 59 20 4C 45 56 45 4C 51 CHASE PLAY LEVEL E4F7: 20 20 20 00 7F 0, 7F offset 1E E4FC: 35 32 20 E4FF: 43 48 41 53 45 20 50 4C E507: 41 59 20 4D 4F 44 45 20 52 CHASE PLAY MODE E50F: 20 20 20 0A 7F A, 7F offset 1F E514: 35 33 20 E517: 43 48 41 53 45 20 50 4C E51F: 41 59 20 54 49 4D 45 20 53 CHASE PLAY TIME E527: 20 20 20 00 7F 0, 7F offset 20 E52C: 35 34 20 E52F: 43 48 41 53 45 20 50 4C E537: 41 59 20 53 57 49 54 43 54 CHASE PLAY SWITCH E53F: 48 20 20 09 7F 9, 7F offset 21 E544: 36 31 20 E547: 55 50 20 4D 49 44 49 20 E54F: 43 48 20 53 45 4E 44 20 61 UP MIDI CH SEND E557: 20 20 20 0C 10 C, 10 offset 22 E55C: 36 32 20 E55F: 4C 4F 20 4D 49 44 49 20 E567: 43 48 20 53 45 4E 44 20 62 LO MIDI CH SEND E56F: 20 20 20 0C 10 C, 10 offset 23 E574: 36 33 20 E577: 55 50 20 50 52 4F 47 20 E57F: 43 48 41 4E 47 45 20 53 63 UP PROG CHANGE SEND E587: 45 4E 44 0D FF D, FF offset 24 E5BC: 36 34 20 E58F: 4C 4F 20 50 52 4F 47 20 E597: 43 48 41 4E 47 45 20 53 64 LO PROG CHANGE SEND E59F: 45 4E 44 0D FF D, FF offset 25 E5A4: 36 35 20 E5A7: 55 50 20 56 4F 4C 55 4D E5AF: 45 20 20 53 45 4E 44 20 65 UP VOLUME SEND E5B7: 20 20 20 0E FF E, FF offset 26 E5BC: 36 36 20 E5BF: 4C 4F 20 56 4F 4C 55 4D E5C7: 45 20 20 53 45 4E 44 20 66 LO VOLUME SEND E5CF: 20 20 20 0E FF E, FF offset 27 E5D4: 36 37 20 E5D7: 4D 49 44 49 20 53 45 4E E5DF: 44 20 4B 45 59 20 4D 4F 67 MIDI SEND KEY MODE E5E7: 44 45 20 0F 03 F, 3 offset 28 E5EC: 36 38 20 E5EF: 4D 49 44 49 20 53 45 4E E5F7: 44 20 53 50 4C 49 54 20 68 MIDI SEND SPLIT E5FF: 20 20 20 02 7F 2, 7F E605: 00 01 02 ..... E607: 03 04 05 06 07 80 08 09 ........ E60F: 0A 80 80 80 80 80 80 0B ........ E617: 0C 0D 0E 0F 10 11 12 80 ........ E61F: 14 15 16 17 18 19 1A 1B ........ E627: 80 1D 1E 1F 20 80 80 80 .... ... E62F: 80 80 21 22 23 24 25 26 ..!"#$%& E637: 27 28 80 '(. Cn slider functions E63A: 31 31 20 55 2F 11 U/ E63F: 4C 20 20 42 41 4C 20 20 L BAL E647: 00 31 35 20 50 4F 52 54 .15 PORT E64F: 41 2E 54 49 4D 45 04 31 A.TIME.1 E657: 38 20 54 4F 54 41 4C 20 8 TOTAL E65F: 56 4F 4C 20 07 36 35 20 VOL .65 E667: 55 50 20 4D 49 44 49 56 UP MIDIV E66F: 4F 4C 25 36 36 20 4C 4F OL%66 LO E677: 20 4D 49 44 49 56 4F 4C MIDIVOL E67F: 26 39 37 20 52 45 53 45 &97 RESE E687: 52 56 45 44 20 20 FF 39 RVED .9 E68F: 38 20 52 45 53 45 52 56 8 RESERV E697: 45 44 20 20 FF 39 39 20 ED .99 E69F: 52 45 53 45 52 56 45 44 RESERVED E6A7: 20 20 FF 00 04 07 25 26 ....%& Pedal switch functions E6AF: 50 41 54 43 48 20 20 53 PATCH S E6B7: 48 49 46 54 20 14 50 4F HIFT .PO E6BF: 52 54 41 4D 45 4E 54 4F RTAMENTO E6C7: 20 20 20 09 43 48 41 53 .CHAS E6CF: 45 20 20 50 4C 41 59 20 E PLAY E6D7: 20 09 55 50 50 45 52 20 .UPPER E6DF: 20 48 4F 4C 44 20 20 09 HOLD . E6E7: 4C 4F 57 45 52 20 20 48 LOWER H E6EF: 4F 4C 44 20 20 09 20 52 OLD . R E6F7: 45 53 45 52 56 45 44 20 ESERVED E6FF: 30 31 20 09 20 52 45 53 01 . RES E707: 45 52 56 45 44 20 30 32 ERVED 02 E70F: 20 09 20 52 45 53 45 52 . RESER E717: 56 45 44 20 30 33 20 09 VED 03 . ********** midi factor names and data byte E71F: 10 PATCH MEMORY CH ;31 E734: 11 SYSTEM EXCLUSIVE ;21 E749: 20 UPPER CHANNEL ;23 E75E: 21 UPPER PROG CHANGE ;24 E773: 22 UPPER AFTER TOUCH ;25 E788: 23 UPPER LOCAL ;25 E79D: 24 UPPER BENDER ;25 E7B2: 25 UPPER MODULATION ;25 E7C7: 26 UPPER PORTAMENTO ;25 E7DC: 27 UPPER HOLD ;25 E7F1: 28 UPPER MIDI VOLUME ;25 E806: 30 LOWER CHANNEL ;23 E81B: 31 LOWER PROG CHANGE ;24 E830: 32 LOWER AFTER TOUCH ;25 E845: 33 LOWER LOCAL ;25 E85A: 34 LOWER BENDER ;25 E86F: 35 LOWER MODULATION ;25 E884: 36 LOWER PORTAMENTO ;25 E899: 37 LOWER HOLD ;25 E8AE: 38 LOWER MIDI VOLUME ;25 ********** E8C4: 00 01 80 80 .... E8C7: 80 80 80 80 80 02 03 04 ........ E8CF: 05 06 07 08 09 0A 0B 0C ........ E8D7: 0D 0E 0F 10 11 12 13 20 ....... E8DF: 2D 31 32 20 2D 31 32 20 -12 -12 E8E7: 2D 31 31 20 2D 31 30 20 -11 -10 E8EF: 2D 30 39 20 2D 30 38 20 -09 -08 E8F7: 2D 30 37 20 2D 30 37 20 -07 -07 E8FF: 2D 30 36 20 2D 30 35 20 -06 -05 E907: 2D 30 34 20 2D 30 33 20 -04 -03 E90F: 2D 30 32 20 2D 30 31 20 -02 -01 E917: 20 30 30 20 20 30 30 20 00 00 E91F: 20 30 30 20 20 30 30 20 00 00 E927: 2B 30 31 20 2B 30 32 20 +01 +02 E92F: 2B 30 33 20 2B 30 34 20 +03 +04 E937: 2B 30 35 20 2B 30 36 20 +05 +06 E93F: 2B 30 37 20 2B 30 37 20 +07 +07 E947: 2B 30 38 20 2B 30 39 20 +08 +09 E94F: 2B 31 30 20 2B 31 31 20 +10 +11 E957: 2B 31 32 20 2B 31 32 20 +12 +12 E95F: 20 20 20 20 20 20 20 20 E967: 20 20 20 20 20 20 20 20 E96F: 20 20 20 20 20 20 20 20 E977: 20 20 20 20 20 20 20 20 E97F: 20 20 20 20 20 20 20 20 E987: 20 20 20 20 20 20 20 20 E98F: 20 20 20 20 20 20 20 20 E997: 20 20 20 20 20 20 20 20 E99F: 31 36 27 20 20 38 27 20 16' 8' E9A7: 20 34 27 20 20 32 27 4E 4' 2'N E9AF: 4F 49 53 53 51 55 41 50 OISSQUAP E9B7: 55 4C 53 53 41 57 54 20 ULSSAWT E9BF: 4F 46 46 53 4E 43 31 53 OFFSNC1S E9C7: 4E 43 32 58 4D 4F 44 20 NC2XMOD E9CF: 4F 46 46 20 20 31 20 20 OFF 1 E9D7: 20 32 20 20 20 33 20 20 2 3 E9DF: 62 2D 32 20 61 2D 32 20 b-2 a-2 E9E7: 62 2D 31 20 61 2D 31 20 b-1 a-1 E9EF: 20 30 20 20 20 31 20 20 0 1 E9F7: 20 32 20 20 20 33 20 47 2 3 G E9FF: 41 54 45 47 41 54 45 45 ATEGATEE EA07: 4E 56 32 45 4E 56 32 20 NV2ENV2 EA0F: 4F 46 46 20 20 31 20 20 OFF 1 EA17: 20 32 20 20 20 32 20 52 2 2 R EA1F: 41 4E 44 53 51 55 41 53 ANDSQUAS EA27: 49 4E 45 53 49 4E 45 20 INESINE EA2F: 20 20 20 20 20 20 20 20 EA37: 4F 46 46 20 4F 4E 20 20 OFF ON EA3F: 20 20 20 20 20 20 20 20 EA47: 20 20 20 20 20 20 20 ********** display message (with optional pause) message location = &EACE + (#&12 * &BE) EA4E: JSR &AFDA clear display flash/point clear second half of display EA51: LDX #&137F EA54: STX &92 EA56: LDAA #&10 EA58: LDAB #&20 EA5A: STAB &11,X EA5C: INX EA5D: DECA EA5E: BNE &EA5A EA60: LDAB &BE get message number EA62: ANDB #&1F EA64: LDAA #&12 EA66: MUL offset = number * 18 EA67: LDX #&EACD EA6A: STX &90 EA6C: ADDD &90 EA6E: STD &90 EA70: LDAA #&10 EA72: STAA &80 EA74: JSR &A54C write 16 bytes to display mem EA77: LDX &90 EA79: LDAA &01,X get byte after message data EA7B: TSTA EA7C: BNE &EA7F EA7E: RTS EA7F: JSR &B632 update display EA82: CMPA #&01 EA84: BEQ &EA90 EA86: CMPA #&02 EA88: BRA &EA90 EA8A: BNE &EA8F EA8C: JMP &EAA9 EA8F: RTS pause for a bit if data was 1 or 2 EA90: LDAA #&03 EA92: STAA &86 EA94: CLRA EA95: STAA &87 EA97: STAA &83 EA99: DEC &0083 EA9C: BNE &EA99 EA9E: DEC &0087 EAA1: BNE &EA99 EAA3: DEC &0086 EAA6: BNE &EA99 EAA8: RTS redundant code (would have been for code 2) EAA9: LDAA #&DF EAAB: JSR &B6C7 EAAE: LDAA #&60 EAB0: JSR &B6C7 EAB3: LDAA #&06 EAB5: STAA &86 EAB7: CLRA EAB8: STAA &87 EABA: STAA &81 EABC: DEC &0081 EABF: BNE &EABC EAC1: DEC &0087 EAC4: BNE &EABC EAC6: DEC &0086 EAC9: BNE &EABC EACB: JMP &EA90 message 0 EACE: 57 52 49 54 45 20 20 54 WRITE TONE; 0 EAD6: 4F 4E 45 20 20 20 20 20 EADE: 00 00 message 1 EAE0: 57 52 49 54 54 45 WRITTEN PATCH; 1 EAE6: 4E 20 20 50 41 54 43 48 EAEE: 20 20 01 00 message 2 EAF2: 52 45 57 52 EAF6: 49 54 45 20 56 4F 49 43 REWRITE VOICE; 0 EAFE: 45 20 20 20 00 00 message 3 EB04: 4C 4F LOAD COMPLETE; 1 EB06: 41 44 20 20 43 4F 4D 50 EB0E: 4C 45 54 45 20 20 01 00 message 4 EB16: 53 41 56 45 20 20 43 4F SAVE COMPLETE; 1 EB1E: 4D 50 4C 45 54 45 20 20 EB26: 01 00 message 5 EB28: 20 20 43 41 4E 43 CANCEL; 1 EB2E: 45 4C 20 20 20 20 20 20 EB36: 20 20 01 00 message 6 EB3A: 49 4E 53 45 INSERT CARTRIDGE; 2 EB3E: 52 54 20 43 41 52 54 52 EB46: 49 44 47 45 02 00 message 7 EB4C: 4D 45 MEMORY PROTECTED; 2 EB4E: 4D 4F 52 59 20 50 52 4F EB56: 54 45 43 54 45 44 02 00 message 8 EB5E: 4D 45 4D 4F 52 59 20 20 MEMORY ERR; 2 EB66: 45 52 52 20 20 20 20 20 EB6E: 02 00 message 9 EB70: 57 52 49 54 54 45 WRITTEN TONE; 1 EB76: 4E 20 20 54 4F 4E 45 20 EB7E: 20 20 01 00 message A EB82: 4D 49 44 49 MIDI BULK DUMP; 0 EB86: 20 20 42 55 4C 4B 20 44 EB8E: 55 4D 50 20 00 00 message B EB94: 4D 49 MIDI BULK LOAD; 0 EB96: 44 49 20 20 42 55 4C 4B EB9E: 20 4C 4F 41 44 20 00 00 message C EBA6: 53 45 4C 45 43 54 20 20 SELECT NO. 1-32; 2 EBAE: 4E 4F 2E 20 31 2D 33 32 EBB6: 02 00 message D EBB8: 20 20 45 4E 54 45 ENTERED; 1 EBBE: 52 45 44 20 20 20 20 20 EBC6: 20 20 01 00 message E EBCA: 57 52 49 54 WRITTEN CONTROL; 1 EBCE: 54 45 4E 20 20 43 4F 4E EBD6: 54 52 4F 4C 01 00 message F EBDC: 53 45 SELECT NO. 1-50; 1 EBDE: 4C 45 43 54 20 20 4E 4F EBE6: 2E 20 31 2D 35 30 01 00 message 10 EBEE: 4D 49 53 4D 41 54 43 48 MISMATCH; 1 EBF6: 20 20 20 20 20 20 20 20 EBFE: 01 00 message 11 EC00: 57 52 49 54 54 45 WRITTEN TUNE; 1 EC06: 4E 20 20 54 55 4E 45 20 EC0E: 20 20 01 00 message 12 EC12: 57 52 49 54 WRITE MIDI; 0 EC16: 45 20 20 4D 49 44 49 20 EC1E: 20 20 20 20 00 00 message 13 EC25: 4D 45 MEMORY FULL; 1 EC26: 4D 4F 52 59 20 46 55 4C EC2E: 4C 20 20 20 20 20 01 00 message 14 EC36: 57 52 49 54 54 45 4E 20 WRITTEN MIDI; 1 EC3E: 20 4D 49 44 49 20 20 20 EC46: 01 00 message 15 EC48: 4E 4F 54 20 4D 2D NOT M-64C; 2 EC4E: 36 34 43 20 20 20 20 20 EC56: 20 20 02 00 message 16 EC5A: 57 52 49 54 WRITE PATCH; 1 EC5E: 45 20 20 50 41 54 43 48 EC66: 20 20 20 20 01 00 message 17 EC6C: 42 55 BULK DUMP ERROR; 1 EC6E: 4C 4B 20 44 55 4D 50 20 EC76: 45 52 52 4F 52 20 01 00 **************************************** display message message location = &ECAE + (#&20 * &BE ) EC7E: LDX #&137F EC81: STX &92 EC83: LDAB &BE EC85: ANDB #&1F EC87: LDAA #&20 EC89: MUL EC8A: LDX #&ECAB EC8D: STX &90 EC8F: ADDD &90 EC91: XGDX EC92: STX &90 EC94: LDAA #&20 EC96: STAA &87 EC98: LDX &90 EC9A: INX EC9B: STX &90 EC9D: LDAA &00,X EC9F: LDX &92 ECA1: INX ECA2: STX &92 ECA4: STAA &00,X ECA6: DEC &0087 ECA9: BNE &EC98 ECAB: RTS message 0 ECAC: 43 4F 50 59 20 43 41 52 COPY CAR ECB4: 54 52 49 44 47 45 20 54 TRIDGE T ECBC: 4F 20 49 4E 54 45 52 4E O INTERN ECC4: 41 4C 4D 45 4D 4F 52 59 ALMEMORY message 1 ECCC: 43 4F 50 59 20 49 4E 54 COPY INT ECD4: 45 52 4E 41 4C 4D 45 4D ERNALMEM ECDC: 4F 52 59 20 54 4F 20 43 ORY TO C ECE4: 41 52 54 52 49 44 47 45 ARTRIDGE message 2 ECEC: 20 20 20 4D 41 53 54 45 MASTE ECF4: 52 20 54 55 4E 45 20 20 R TUNE ECFC: 20 20 20 20 20 20 20 41 A ED04: 3D 20 20 20 20 20 48 5A = HZ message 3 ED0C: 2A 2A 2A 2A 2A 2A 20 20 ****** ED14: 52 4F 4C 41 4E 44 20 20 ROLAND ED1C: 20 4A 58 2D 31 30 20 20 JX-10 ED24: 2A 2A 2A 2A 2A 2A 2A 2A ******** message 4 ED2C: 20 20 57 52 49 54 45 20 WRITE ED34: 50 41 54 43 48 20 20 54 PATCH T ED3C: 4F 20 20 20 20 20 20 20 O ED44: 20 20 20 20 4F 4B 3F 20 OK? message 5 ED4C: 20 50 52 4F 47 52 41 4D PROGRAM ED54: 45 44 20 20 42 59 20 20 ED BY ED5C: 54 41 4B 41 48 41 52 55 TAKAHARU ED64: 20 20 46 55 4B 55 49 20 FUKUI message 6 ED6C: 56 45 52 2E 20 32 2E 30 VER. 2.0 ED74: 30 20 20 38 36 2F 20 35 0 86/ 5 ED7C: 2F 31 35 20 3C 54 52 55 /15 message 7 ED8C: 20 20 20 20 54 48 41 4E THAN ED94: 4B 53 20 20 45 52 49 43 KS ERIC ED9C: 20 26 20 41 44 52 49 41 & ADRIA EDA4: 4E 20 20 20 20 20 20 20 N message 8 EDAC: 4A 58 2D 38 50 20 20 50 JX-8P P EDB4: 52 4F 47 52 41 4D 45 44 ROGRAMED EDBC: 20 42 59 20 41 4B 49 52 BY AKIR EDC4: 41 20 4D 41 54 53 55 49 A MATSUI message 9 EDCC: 20 20 20 20 20 20 20 20 EDD4: 52 4F 4C 41 4E 44 20 20 ROLAND EDDC: 20 4A 58 2D 31 30 20 20 JX-10 EDE4: 20 20 20 20 20 20 20 20 EDEC: 00 01 02 03 04 8E 8F 8E ........ EDF4: 8E 00 00 00 00 00 05 8E ........ EDFC: 05 06 07 08 09 0A 0B 8E ........ EE04: 9F 00 00 00 00 00 17 8E ........ EE0C: 0F 10 8E AF 8E 8E 8E 8E ........ EE14: 8E 00 00 00 00 00 22 8E ......". EE1C: 11 12 13 14 15 8E BF 8E ........ EE24: 8E 00 00 00 00 00 35 8E ......5. EE2C: 16 17 18 19 1A 1B 1C 1D ........ EE34: 8E CF 00 00 00 00 48 8E ......H. EE3C: 1E 2F 1F 20 8E DF 8E 8E ./. .... EE44: 8E 00 00 00 00 00 54 8E ......T. EE4C: 21 22 23 8E EF 8E 8E 8E !"#..... EE54: 8E 00 00 00 00 00 63 8E ......c. EE5C: 24 25 26 27 28 8E FF 8E $%&'(... EE64: 8E 00 00 00 00 00 75 8E ......u. EE6C: 29 2A 2B 2C 2D 8E 8E 8E )*+,-... EE74: 8E 00 00 00 00 00 00 8E ........ ********** parameter names addr no. VB data buffer text cmd offset ---------------------------------------- EE7C: 0 80 4 B DCO1 RANG. EE86: 1 81 5 C DCO1 WF . EE90: 2 82 1 D DCO1 TUNE. EE9A: 3 83 0 E DCO1 LFO . EEA4: 4 84 0 F DCO1 ENV . EEAE: 5 85 4 10 DCO2 RANG. EEB8: 6 86 5 11 DCO2 WF . EEC2: 7 87 6 12 XMOD . EECC: 8 88 1 13 DCO2 TUNE. EED6: 9 89 2 14 DCO2 FTUN. EEE0: A 8A 0 15 DCO2 LFO . EEEA: B 8B 0 16 DCO2 ENV . EEF4: C 8C 0D 17 BEND LFO . EEFE: D 8D 3 18 . EF08: E 8E 3 19 . EF12: F 8F 7 1A DCO DYNA . EF1C: 10 90 8 1B DCO MODE . EF26: 11 91 0 1C MIX DCO1 . EF30: 12 92 0 1D MIX DCO2 . EF3A: 13 93 0 1E MIX ENV . EF44: 14 94 7 1F MIX DYNA . EF4E: 15 95 8 20 MIX MODE . EF58: 16 96 9 21 HPF FREQ . EF62: 17 97 0 22 VCF FREQ . EF6C: 18 98 0 23 VCF RES . EF76: 19 99 0 24 VCF LFO . EF80: 1A 9A 0 25 VCF ENV . EF8A: 1B 9B 0 26 VCF KEY . EF94: 1C 9C 7 27 VCF DYNA . EF9E: 1D 9D 8 28 VCF MODE . EFA8: 1E 9E 0 29 VCA LEVEL. EFB2: 1F 9F 7 2A VCA DYNA . EFBC: 20 A0 0B 2B CHORUS . EFC6: 21 A1 0C 2C LFO WF . EFD0: 22 A2 0 2D LFO DELAY. EFDA: 23 A3 0 2E LFO RATE . EFE4: 24 A4 0 2F ENV1 ATT . EFEE: 25 A5 0 30 ENV1 DECY. EFF8: 26 A6 0 31 ENV1 SUS . F002: 27 A7 0 32 ENV1 REL . F00C: 28 A8 7 33 ENV1 KEY . F016: 29 A9 0 34 ENV2 ATT . F020: 2A AA 0 35 ENV2 DECY. F02A: 2B AB 0 36 ENV2 SUS . F034: 2C AC 0 37 ENV2 REL . F03E: 2D AD 7 38 ENV2 KEY . F048: 2E AE 3 39 . F052: 2F AF 0A 3A VCA MODE . ********** F05C: 00 00 80 00 80 00 80 00 ........ F064: 00 80 00 80 00 00 80 00 ........ F06C: 80 00 80 00 00 80 00 80 ........ F074: 00 00 80 00 80 00 80 00 ........ F07C: 00 80 00 80 00 00 80 00 ........ F084: 80 00 80 00 00 80 00 80 ........ F08C: 00 00 80 00 80 00 80 00 ........ F094: 00 80 00 80 00 00 80 00 ........ F09C: 80 00 80 00 00 80 00 80 ........ F0A4: 00 00 80 00 C7 01 02 03 ........ F0AC: 04 05 06 07 08 09 0A FE ........ F0B4: F3 EB E5 E0 DC D9 D5 D3 ........ F0BC: D2 CF CE CD CB CB CA C9 ........ F0C4: C8 C7 C8 C6 C6 C6 C5 C5 ........ F0CC: C5 C5 C4 C4 C3 C4 C3 C3 ........ F0D4: C3 C3 C3 C3 C2 C2 C3 C2 ........ F0DC: C2 C2 C2 36 C3 C2 C2 3A ...6...: F0E4: C2 C2 3D C2 C2 40 41 C2 ..=..@A. F0EC: 43 44 45 C2 47 48 49 4A CDE.GHIJ F0F4: 4B 4C 4D 4E 4F 4F 51 52 KLMNOOQR F0FC: 53 54 54 56 57 57 59 5A STTVWWYZ F104: 5A 5C 5C 5E 5E 60 60 62 Z\\^^``b F10C: 62 64 64 66 66 68 68 68 bddffhhh F114: 6B 6B 6D 6D 6D 70 70 70 kkmmmppp F11C: 73 73 73 76 76 76 76 7A sssvvvvz F124: 7A 7A 7A 7E C5 01 02 03 zzz~.... F12C: 04 05 06 07 08 09 FA F0 ........ F134: E8 E1 DC D9 D5 D2 D1 CE ........ F13C: CD CC CA CA C8 C8 C7 C7 ........ F144: C6 C6 C5 C5 C5 C4 C4 C4 ........ F14C: C3 C4 C3 C3 C3 C2 C3 C2 ........ F154: C3 C2 C2 C2 2F C2 C2 32 ..../..2 F15C: C2 34 C2 36 37 38 C2 3A .4.678.: F164: 3B 3C 3D 3E 3F 3F 41 42 ;<=>??AB F16C: 43 44 44 46 47 47 49 49 CDDFGGII F174: 4B 4C 4C 4E 4E 50 50 52 KLLNNPPR F17C: 52 52 55 55 57 57 57 5A RRUUWWWZ F184: 5A 5A 5D 5D 5D 60 60 60 ZZ]]]``` F18C: 60 64 64 64 64 68 68 68 `ddddhhh F194: 68 6C 6C 6C 6C 6C 71 71 hlllllqq F19C: 71 71 71 71 77 77 77 77 qqqqwwww F1A4: 77 77 77 7E www~ **************************************** preset tones F1A8: 20 50 49 41 PIA F1AC: 4E 4F 20 31 20 20 20 00 NO 1 . F1B4: 60 42 00 00 60 20 00 68 `B..` .h F1BC: 46 00 00 7F 7F 7F 00 60 F......` F1C4: 5A 55 7F 20 60 20 2D 1C ZU. ` -. F1CC: 00 11 5F 40 20 7F 20 20 .._@ . F1D4: 40 54 67 00 2F 00 21 20 @Tg./.! F1DC: 00 4D 00 25 20 7F 40 45 .M.% .@E F1E4: 2E 47 52 41 4E 44 20 31 .GRAND 1 F1EC: 20 20 20 60 00 00 00 40 `...@ F1F4: 60 20 6E 2F 06 00 00 00 ` n/.... F1FC: 00 00 40 47 1E 3B 20 60 ..@G.; ` F204: 00 3A 00 00 13 48 20 20 .:...H F20C: 7F 40 00 40 00 40 00 2E .@.@.@.. F214: 63 4E 20 00 4A 00 30 20 cN .J.0 F21C: 00 40 20 50 49 41 4E 4F .@ PIANO F224: 20 33 20 20 20 20 60 41 3 `A F22C: 00 00 60 20 00 71 16 00 ..` .q.. F234: 00 00 00 00 60 40 42 36 ....`@B6 F23C: 76 20 60 20 21 00 00 27 v ` !..' F244: 5E 20 20 7F 40 20 40 60 ^ .@ @` F24C: 67 00 20 00 46 00 00 60 g. .F..` F254: 00 40 40 00 40 43 45 4C .@@.@CEL F25C: 4C 4F 20 53 45 43 54 20 LO SECT F264: 20 60 00 02 02 40 60 40 `...@`@ F26C: 18 03 22 6C 7F 7F 7F 60 .."l...` F274: 40 7F 69 7F 00 60 20 3A @.i..` : F27C: 00 02 31 66 60 60 7F 60 ..1f``.` F284: 00 40 4C 61 00 28 00 29 .@La.(.) F28C: 20 4A 64 05 3A 40 7F 40 Jd.:@.@ F294: 41 52 43 4F 20 53 54 52 ARCO STR F29C: 4E 47 20 34 60 42 07 00 NG 4`B.. F2A4: 20 60 00 46 46 00 02 7F `.FF... F2AC: 7F 7F 00 60 7F 7F 7F 00 ...`.... F2B4: 60 00 49 00 00 1A 61 60 `.I...a` F2BC: 60 6D 40 25 40 39 64 00 `m@%@9d. F2C4: 27 00 26 20 40 4E 46 33 '.& @NF3 F2CC: 40 7F 40 4C 4F 20 53 54 @.@LO ST F2D4: 52 49 4E 47 53 20 00 60 RINGS .` F2DC: 42 05 00 00 60 00 3C 49 B...`...#:.` F3E4: 7F 40 20 40 50 63 05 0E .@ @Pc.. F3EC: 1F 27 00 29 00 75 16 00 .'.).u.. F3F4: 7F 40 50 49 50 45 20 4F .@PIPE O F3FC: 52 47 41 4E 20 00 60 3A RGAN .`: F404: 00 00 40 60 00 3A 45 00 ..@`.:E. F40C: 00 7F 7F 7F 00 00 5B 7F ......[. F414: 00 00 60 00 4E 00 00 00 ..`.N... F41C: 3E 00 20 50 00 20 40 00 >. P. @. F424: 66 2D 00 00 40 00 2B 67 f-..@.+g F42C: 6C 34 20 7F 40 44 52 59 l4 .@DRY F434: 53 54 4C 44 52 55 4D 20 STLDRUM F43C: 40 20 3E 00 00 60 40 00 @ >..`@. F444: 55 7F 00 00 7F 7F 7F 60 U......` F44C: 00 31 00 40 00 60 00 26 .1.@.`.& F454: 00 00 24 4B 00 20 7F 60 ..$K. .` F45C: 00 40 19 63 28 40 00 4C .@.c(@.L F464: 00 00 43 00 46 20 7F 40 ..C.F .@ F46C: 20 4D 55 53 49 43 20 42 MUSIC B F474: 4F 58 20 60 20 56 00 00 OX ` V.. F47C: 60 20 60 67 52 00 01 7F ` `gR... F484: 7F 7F 20 60 00 63 7F 00 .. `.c.. F48C: 60 00 49 00 00 2F 68 40 `.I../h@ F494: 60 63 40 20 40 00 67 00 `c@ @.g. F49C: 06 00 34 20 00 44 00 48 ..4 .D.H F4A4: 20 7F 40 57 49 4E 44 43 .@WINDC F4AC: 48 49 4D 45 53 20 60 20 HIMES ` F4B4: 2F 00 00 60 60 60 7F 36 /..```.6 F4BC: 00 00 7F 7F 7F 00 60 00 ......`. F4C4: 6D 7F 20 60 40 23 00 00 m. `@#.. F4CC: 3D 7F 20 20 76 40 00 00 =. v@.. F4D4: 00 65 00 00 00 6B 00 00 .e...k.. F4DC: 3C 00 4B 00 7F 40 20 45 <.K..@ E F4E4: 2E 20 42 41 53 53 20 20 . BASS F4EC: 20 20 20 00 00 00 20 20 ... F4F4: 40 66 46 02 65 7F 7F 7F @fF.e... F4FC: 00 60 18 4F 7F 20 60 00 .`.O. `. F504: 1F 00 00 40 40 40 20 7F ...@@@ . F50C: 00 00 40 50 61 00 03 00 ..@Pa... F514: 39 20 00 4B 00 00 60 7F 9 .K..`. F51C: 00 53 59 4E 54 48 20 42 .SYNTH B F524: 41 53 53 20 20 20 00 00 ASS .. F52C: 00 20 60 00 3B 49 00 00 . `.;I.. F534: 7F 7F 7F 40 40 7F 7F 7F ...@@... F53C: 00 60 00 27 32 00 2F 4C .`.'2./L F544: 20 60 7F 00 20 40 00 63 `.. @.c F54C: 00 44 00 47 40 00 0C 40 .D.G@..@ F554: 09 20 7F 40 53 4F 55 4E . .@SOUN F55C: 44 54 52 41 43 4B 20 20 DTRACK F564: 60 00 00 00 20 60 00 02 `... `.. F56C: 30 00 00 7F 7F 7F 60 20 0.....` F574: 6D 6D 3A 20 20 00 34 00 mm: .4. F57C: 00 3C 58 20 60 68 40 20 .. F6EC: 45 20 00 79 7F 4A 40 7F E .y.J@. F6F4: 40 47 4F 57 45 53 54 42 @GOWESTB F6FC: 52 53 32 20 00 60 42 00 RS2 .`B. F704: 09 00 60 00 38 31 00 00 ..`.81.. F70C: 7F 0F 2F 00 60 74 7F 00 ../.`t.. F714: 40 60 00 5D 00 00 5F 7F @`.].._. F71C: 40 40 5E 00 00 00 00 7F @@^..... F724: 00 2A 00 00 20 21 6E 38 .*.. !n8 F72C: 07 40 33 40 47 4F 57 45 .@3@GOWE F734: 53 54 42 52 53 31 20 20 STBRS1 F73C: 60 42 00 50 20 60 00 38 `B.P `.8 F744: 31 00 00 7F 0F 2F 00 60 1..../.` F74C: 74 7F 00 40 60 00 1E 00 t..@`... F754: 00 5F 7F 40 20 5E 00 00 ._.@ ^.. F75C: 00 00 69 00 16 00 00 20 ..i.... F764: 21 6E 38 07 40 33 40 50 !n8.@3@P F76C: 4F 4C 59 20 42 52 41 53 OLY BRAS F774: 53 20 00 60 3B 02 00 00 S .`;... F77C: 60 00 3F 3D 00 01 7F 7F `.?=.... F784: 7F 00 40 7F 7F 7F 40 60 ..@...@` F78C: 00 1F 02 00 56 5F 40 60 ....V_@` F794: 68 20 20 40 60 64 16 42 h @`d.B F79C: 2E 2A 20 17 7E 7F 2A 20 .* .~.* F7A4: 7F 40 47 41 4D 45 4C 41 .@GAMELA F7AC: 4E 45 54 20 20 40 20 3A NET @ : F7B4: 00 00 60 40 00 6D 7F 00 ..`@.m.. F7BC: 00 7F 7F 7F 60 00 31 00 ....`.1. F7C4: 7F 00 60 20 34 00 00 49 ..` 4..I F7CC: 4B 3E 20 7F 20 20 40 19 K> . @. F7D4: 63 00 41 00 4C 00 00 53 c.A.L..S F7DC: 00 54 20 7F 40 43 45 4C .T .@CEL F7E4: 45 53 54 45 20 32 20 20 ESTE 2 F7EC: 60 20 3A 00 00 40 20 00 ` :..@ . F7F4: 7F 52 00 00 7F 7F 7F 00 .R...... F7FC: 60 4E 00 57 40 60 40 3B `N.W@`@; F804: 00 00 11 4B 20 60 6B 00 ...K `k. F80C: 00 00 00 66 00 54 00 58 ...f.T.X F814: 20 00 47 00 40 20 7F 40 .G.@ .@ F81C: 41 47 4F 47 4F 20 42 45 AGOGO BE F824: 4C 4C 20 40 20 45 00 00 LL @ E.. F82C: 60 20 60 6F 34 00 00 7F ` `o4... F834: 7F 7F 20 40 42 00 7F 40 .. @B..@ F83C: 60 00 38 00 00 7F 7F 60 `.8....` F844: 60 7F 40 00 40 60 66 00 `.@.@`f. F84C: 20 24 50 60 00 34 00 31 $P`.4.1 F854: 20 7F 40 53 59 4E 44 55 .@SYNDU F85C: 4C 43 49 4D 52 20 20 60 LCIMR ` F864: 3D 00 00 20 60 00 79 49 =.. `.yI F86C: 06 4D 7F 7F 7F 20 40 7F .M... @. F874: 1A 7F 60 20 00 3A 00 00 ..` .:.. F87C: 42 46 40 20 49 20 20 40 BF@ I @ F884: 50 66 00 0A 00 00 00 14 Pf...... F88C: 6B 22 4A 20 7F 40 47 55 k"J .@GU F894: 49 54 41 52 43 4C 41 56 ITARCLAV F89C: 20 20 20 00 04 00 20 20 ... F8A4: 40 5E 46 02 4A 7F 7F 7F @^F.J... F8AC: 00 60 18 52 7F 20 60 00 .`.R. `. F8B4: 29 00 00 4A 40 40 20 4F )..J@@ O F8BC: 00 20 40 67 66 00 04 00 . @gf... F8C4: 39 20 00 55 00 2C 20 7F 9 .U., . F8CC: 40 50 45 52 4B 45 50 49 @PERKEPI F8D4: 41 4E 4F 20 00 60 42 00 ANO .`B. F8DC: 00 60 20 00 64 46 00 00 .` .dF.. F8E4: 7F 7F 7F 00 60 5C 49 7F ....`\I. F8EC: 00 60 20 2C 1C 00 15 6F .` ,...o F8F4: 40 60 7F 40 20 40 54 63 @`.@ @Tc F8FC: 00 2C 00 21 60 00 47 00 .,.!`.G. F904: 25 20 7F 40 20 50 49 41 % .@ PIA F90C: 4E 4F 20 34 20 20 20 20 NO 4 F914: 60 00 00 00 60 20 00 76 `...` .v F91C: 00 00 00 7F 7F 7F 40 60 ......@` F924: 52 42 7F 60 60 00 2C 1B RB.``.,. F92C: 00 14 62 40 60 7F 20 20 ..b@`. F934: 20 00 67 00 40 30 50 20 .g.@0P F93C: 00 4F 00 29 20 7F 40 53 .O.) .@S F944: 59 4E 43 20 4C 45 41 44 YNC LEAD F94C: 20 20 00 40 42 00 00 20 .@B.. F954: 20 40 0E 2F 00 6F 7F 7F @./.o.. F95C: 7F 20 60 00 7F 7F 40 60 . `...@` F964: 00 47 00 00 35 5B 40 60 .G..5[@` F96C: 67 20 00 40 5C 67 00 5F g .@\g._ F974: 00 65 00 00 00 3C 00 20 .e...<. F97C: 7F 40 53 45 51 2A 31 20 .@SEQ*1 F984: 20 20 20 20 20 60 60 56 ``V F98C: 00 00 60 20 60 67 56 00 ..` `gV. F994: 7F 7F 7F 7F 20 60 00 7F .... `.. F99C: 00 00 60 00 3F 00 00 5B ..`.?..[ F9A4: 68 40 60 7F 40 00 40 00 h@`.@.@. F9AC: 67 00 01 00 34 20 00 3A g...4 .: F9B4: 00 3C 60 7F 40 52 45 43 .<`.@REC F9BC: 4F 52 44 45 52 53 20 20 ORDERS F9C4: 20 20 46 02 00 40 20 40 F..@ @ F9CC: 20 68 00 00 7F 7F 7F 20 h..... F9D4: 40 3C 00 7F 00 60 40 2A @<...`@* F9DC: 00 06 37 7F 60 20 7F 20 ..7.` . F9E4: 00 40 56 65 02 13 00 31 .@Ve...1 F9EC: 20 24 4C 66 19 20 7F 40 $Lf. .@ F9F4: 42 52 49 47 48 54 20 42 BRIGHT B F9FC: 4F 57 20 40 60 00 02 03 OW @`... FA04: 20 60 20 46 46 40 6C 7F ` FF@l. FA0C: 7F 7F 60 60 67 41 7F 00 ..``gA.. FA14: 60 40 3C 00 02 41 72 60 `@<..Ar` FA1C: 60 70 40 00 40 45 67 00 `p@.@Eg. FA24: 28 00 2C 20 40 4E 05 33 (., @N.3 FA2C: 40 7F 40 20 53 54 52 49 @.@ STRI FA34: 4E 47 53 20 31 20 00 60 NGS 1 .` FA3C: 42 05 00 00 60 00 3C 33 B...`.<3 FA44: 00 00 7F 7F 7F 00 60 7F ......`. FA4C: 7F 00 00 60 00 3C 00 00 ...`.<.. FA54: 02 67 40 60 69 60 20 40 .g@`i` @ FA5C: 43 67 29 4B 00 34 40 58 Cg)K.4@X FA64: 56 24 48 40 7F 40 20 53 V$H@.@ S FA6C: 54 52 49 4E 47 53 20 32 TRINGS 2 FA74: 20 20 60 3E 00 00 20 60 `>.. ` FA7C: 00 3A 3A 06 00 7F 7F 7F .::..... FA84: 00 00 70 26 53 40 60 00 ..p&S@`. FA8C: 43 00 00 18 57 20 60 64 C...W `d FA94: 40 20 40 45 67 40 66 00 @ @Eg@f. FA9C: 53 20 5C 55 2C 48 00 7F S \U,H.. FAA4: 40 20 43 48 4F 49 52 20 @ CHOIR FAAC: 20 20 20 20 40 40 00 04 @@.. FAB4: 00 40 60 60 06 55 00 00 .@``.U.. FABC: 7F 7F 7F 40 40 7F 7F 00 ...@@... FAC4: 40 60 00 34 2E 00 00 5E @`.4...^ FACC: 20 20 68 40 40 40 40 67 h@@@@g FAD4: 3F 32 00 45 00 4D 00 7F ?2.E.M.. FADC: 39 00 7F 40 4D 41 59 2E 9..@MAY. FAE4: 53 20 57 49 4E 44 20 40 S WIND @ FAEC: 20 00 00 23 40 20 00 02 ..#@ .. FAF4: 30 05 00 7F 7F 7F 60 60 0.....`` FAFC: 6D 6D 3A 20 20 20 45 00 mm: E. FB04: 00 46 63 20 40 70 60 00 .Fc @p`. FB0C: 40 5E 63 00 15 00 5B 00 @^c...[. FB14: 20 48 2A 21 20 7F 40 20 H*! .@ FB1C: 4D 41 52 49 4D 42 41 20 MARIMBA FB24: 20 20 20 20 42 00 00 60 B..` FB2C: 20 60 10 4F 00 00 7F 7F `.O.... FB34: 7F 00 60 7F 00 7F 20 60 ..`... ` FB3C: 00 30 41 00 13 64 40 60 .0A..d@` FB44: 7F 20 00 40 54 63 00 0A . .@Tc.. FB4C: 00 21 00 00 2D 00 2C 20 .!..-., FB54: 7F 40 20 4D 45 54 41 4C .@ METAL FB5C: 4C 45 54 20 20 60 20 3A LET ` : FB64: 00 7F 60 20 60 2E 00 00 ..` `... FB6C: 7F 7F 7F 7F 60 60 7F 0A ....``.. FB74: 7F 60 60 00 43 00 00 31 .``.C..1 FB7C: 50 65 20 55 40 00 40 4F Pe U@.@O FB84: 67 00 00 00 00 40 00 3F g....@.? FB8C: 00 39 40 7F 40 53 59 4E .9@.@SYN FB94: 54 48 42 45 4C 4C 32 20 THBELL2 FB9C: 40 20 40 00 00 40 20 00 @ @..@ . FBA4: 43 40 07 00 7F 7F 7F 00 C@...... FBAC: 00 59 00 7F 00 60 00 37 .Y...`.7 FBB4: 00 00 77 7F 60 60 77 60 ..w.``w` FBBC: 20 40 37 63 00 08 52 6D @7c..Rm FBC4: 20 01 47 00 46 20 7F 40 .G.F .@ FBCC: 58 4D 41 53 20 42 45 4C XMAS BEL FBD4: 4C 53 20 53 20 3D 00 00 LS S =.. FBDC: 60 20 00 7F 37 00 00 7F ` ..7... FBE4: 7F 7F 00 60 55 40 7F 40 ...`U@.@ FBEC: 60 20 30 00 00 27 72 20 ` 0..'r FBF4: 60 4E 20 20 40 00 67 00 `N @.g. FBFC: 1D 69 52 00 00 43 00 58 .iR..C.X FC04: 20 7F 40 20 20 56 49 42 .@ VIB FC0C: 45 53 20 20 20 20 20 20 ES FC14: 42 00 00 60 20 00 58 46 B..` .XF FC1C: 00 00 00 00 00 00 60 41 ......`A FC24: 20 7F 00 60 20 2D 59 06 ..` -Y. FC2C: 0B 6E 40 20 7F 40 20 40 .n@ .@ @ FC34: 47 5C 00 32 00 21 20 00 G\.2.! . FC3C: 45 00 42 20 00 40 43 48 E.B .@CH FC44: 55 52 43 48 42 45 4C 4C URCHBELL FC4C: 20 4C 20 45 00 00 40 20 L E..@ FC54: 60 69 34 00 00 7F 7F 7F `i4..... FC5C: 20 40 4A 4F 7F 40 60 00 @JO.@`. FC64: 2C 00 02 2F 7F 60 20 50 ,../.` P FC6C: 40 20 40 1C 5A 00 7C 00 @ @.Z.|. FC74: 7F 20 00 50 00 4F 20 7F . .P.O . FC7C: 40 20 52 45 53 20 42 45 @ RES BE FC84: 4C 4C 20 20 40 60 45 00 LL @`E. FC8C: 00 40 60 60 46 56 00 07 .@``FV.. FC94: 7F 7F 7F 20 40 7F 7F 3A ... @..: FC9C: 00 40 20 50 7F 00 0D 65 .@ P...e FCA4: 60 60 68 40 20 40 60 66 ``h@ @`f FCAC: 00 37 00 35 40 03 67 27 .7.5@.g' FCB4: 48 20 7F 40 4B 41 4C 49 H .@KALI FCBC: 4D 42 41 20 32 20 20 60 MBA 2 ` FCC4: 20 73 00 00 60 20 60 40 s..` `@ FCCC: 4D 00 7F 7F 7F 7F 00 60 M......` FCD4: 3C 7F 7F 00 60 00 34 00 <...`.4. FCDC: 00 73 7F 60 60 7F 40 00 .s.``.@. FCE4: 40 54 65 00 00 11 7F 00 @Te..... FCEC: 18 2C 00 2B 20 7F 40 20 .,.+ .@ FCF4: 47 4F 57 45 53 54 56 4F GOWESTVO FCFC: 58 20 20 60 42 00 04 20 X `B.. FD04: 60 00 38 31 08 00 7F 0F `.81.... FD0C: 2F 00 40 74 7F 00 40 60 /.@t..@` FD14: 60 34 00 00 08 49 60 20 `4...I` FD1C: 6B 00 00 40 2C 5C 00 33 k..@,\.3 FD24: 00 00 20 26 6E 38 51 40 .. &n8Q@ FD2C: 33 40 00 00 00 3@... **************************************** FD31: LDX #&2000 FD34: STX &96 FD36: CLRA FD37: STAA &87 FD39: LDAA &80 FD3B: PSHA FD3C: LDAA &81 FD3E: PSHA FD3F: LDAA &87 FD41: PSHA FD42: JSR &B632 write disp mem to FIP FD45: PULA FD46: STAA &87 FD48: PULA FD49: STAA &81 FD4B: PULA FD4C: STAA &80 FD4E: LDX &96 FD50: XGDX FD51: LDX #&1380 FD54: STX &FC FD56: STAB &81 FD58: JSR &FEBA FD5B: LDAA &81 FD5D: JSR &FEBA FD60: LDAA #&20 FD62: JSR &FED1 FD65: LDAA #&08 FD67: STAA &81 FD69: LDX &96 FD6B: LDAA #&20 FD6D: JSR &FED1 FD70: LDAA &00,X FD72: JSR &FEBA FD75: INX FD76: DEC &0081 FD79: BNE &FD6B FD7B: CLRA FD7C: STAA &82 FD7E: LDAA #&03 FD80: STAA &81 FD82: LDAA #&20 FD84: JSR &FED1 FD87: DEC &0081 FD8A: BNE &FD82 FD8C: LDAB #&03 FD8E: LDAA &87 FD90: MUL FD91: LDX #&1386 FD94: ABX FD95: STX &FC FD97: JSR &FE5C FD9A: LDAA &1749 FD9D: RORA FD9E: BCC &FDA8 FDA0: LDX #&2000 FDA3: STX &96 FDA5: JMP &FD39 FDA8: RORA FDA9: BCC &FDB0 FDAB: LDX #&8000 FDAE: BRA &FDA3 FDB0: LDAA &174E FDB3: BITA #&20 FDB5: BEQ &FDCD FDB7: LDAA &1746 FDBA: BITA #&80 FDBC: BNE &FDC3 FDBE: LDD #&FFF8 FDC1: BRA &FDC6 FDC3: LDD #&0008 FDC6: ADDD &96 FDC8: STD &96 FDCA: JMP &FD39 FDCD: JSR &FE93 FDD0: CMPA #&7F FDD2: BEQ &FE1F FDD4: CMPA #&FF FDD6: BEQ &FDF7 FDD8: STAA &86 FDDA: JSR &FED1 FDDD: JSR &FE5C FDE0: JSR &FE93 FDE3: CMPA #&7F FDE5: BEQ &FDDD FDE7: CMPA #&FF FDE9: BEQ &FDDD FDEB: STAA &83 FDED: JSR &FED1 FDF0: LDAA #&33 FDF2: STAA &82 FDF4: JMP &FD97 FDF7: LDAA &82 FDF9: CMPA #&33 FDFB: BNE &FE1F FDFD: LDX &96 FDFF: LDAB &87 FE01: ABX FE02: LDAA &86 FE04: ASLA FE05: ASLA FE06: ASLA FE07: ASLA FE08: LDAB &83 FE0A: ABA FE0B: STAA &00,X FE0D: INC &0087 FE10: LDAB &87 FE12: CMPB #&08 FE14: BLT &FE1C FE16: CLRB FE17: STAB &87 FE19: JMP &FDC3 FE1C: JMP &FD39 FE1F: LDAA &174B FE22: BITA #&10 FE24: BEQ &FE29 FE26: JMP &9FEF FE29: LDAA &174D FE2C: BITA #&08 FE2E: BEQ &FE43 FE30: LDAA &87 FE32: CMPA #&00 FE34: BEQ &FE3C FE36: DEC &0087 FE39: JMP &FD8C FE3C: LDAA #&07 FE3E: STAA &87 FE40: JMP &FDBE FE43: BITA #&10 FE45: BNE &FE4A FE47: JMP &FD97 FE4A: LDAA &87 FE4C: CMPA #&07 FE4E: BEQ &FE56 FE50: INC &0087 FE53: JMP &FD8C FE56: CLRA FE57: STAA &87 FE59: JMP &FDC3 ********** read key matrix and store FE5C: LDX #&173F FE5F: STX &90 FE61: LDX #&3FFF FE64: STX &92 FE66: LDX #&1747 FE69: STX &94 for scan n = 0 to 7 FE6B: LDX &90 FE6D: INX FE6E: STX &90 FE70: LDAA &00,X FE72: STAA &80 &80 = last key status (&1740 + scan n) FE74: LDX &92 FE76: INX FE77: STX &92 FE79: LDAA &00,X FE7B: STAA &81 &81 = current matrix status FE7D: COMA FE7E: ANDA &80 FE80: LDX &94 FE82: INX FE83: STX &94 FE85: STAA &00,X &1748 + scan n = new key presses FE87: LDX &90 FE89: LDAA &81 FE8B: STAA &00,X last key status = current matrix status FE8D: CPX #&1747 FE90: BNE &FE6B FE92: RTS ********** FE93: JSR &86E4 FE96: CMPA #&7F FE98: BEQ &FE9B FE9A: RTS set A to lowest patch key (A - H = 0 - 7) + #&A A = #&7F if no new patch key FE9B: LDAA #&0A FE9D: LDAB &1748 FEA0: RORB FEA1: BCS &FE9A FEA3: INCA FEA4: RORB FEA5: BCS &FE9A FEA7: INCA FEA8: RORB FEA9: BCS &FE9A FEAB: INCA FEAC: RORB FEAD: BCS &FE9A FEAF: INCA FEB0: RORB FEB1: BCS &FE9A FEB3: INCA FEB4: RORB FEB5: BCS &FE9A FEB7: LDAA #&7F FEB9: RTS ********** store upper nybble A at (&FC), inc &FC, store lower nybble A at (&FC), inc &FC FEBA: PSHX FEBB: LDX &FC FEBD: STAA &80 FEBF: LSRA FEC0: LSRA FEC1: LSRA FEC2: LSRA FEC3: STAA &00,X FEC5: INX FEC6: LDAA &80 FEC8: ANDA #&0F FECA: STAA &00,X FECC: INX FECD: STX &FC FECF: PULX FED0: RTS store A at (&FC), post inc &FC FED1: PSHX FED2: LDX &FC FED4: STAA &00,X FED6: INX FED7: STX &FC FED9: PULX FEDA: RTS FEDB: 00 00 00 ... **************************************** TOF interrupt handler FEDE: LDAA &3FFF FEE1: CMPA #&A5 FEE3: BNE &FEE8 FEE5: JMP &2015 FEE8: RTI ICF interrupt handler FEE9: LDAA &3FFF FEEC: CMPA #&A5 FEEE: BNE &FEF3 FEF0: JMP &200F FEF3: RTI SWI interrupt handler FEF4: LDAA &3FFF FEF7: CMPA #&A5 FEF9: BNE &FEF3 FEFB: JMP &2009 FEFE: RTI ********** NMI interrupt handler FEFF: LDAA &3FFF check for dev cart FF02: CMPA #&A5 FF04: BNE &FF09 FF06: JMP &2006 FF09: OIM #&10,&9A reset &9A bit 4 - FF0C: RTI voice board handshake ********** Vectors: FFF0: SCI &B6CB FFF2: TOF &FEDE FFF4: OCF &CC8B FFF6: ICF &FEE9 FFF8: IRQ &DED1 FFFA: SWI &FEF4 FFFC: NMI &FEFF FFFE: Reset &C000