figured out where it sends note on and off I guess
This commit is contained in:
parent
d4a5299b2b
commit
cf72be9e1c
@ -12,9 +12,9 @@
|
|||||||
1 CALF $0AF8 // voice functions
|
1 CALF $0AF8 // voice functions
|
||||||
1 CALF $0B30 // voice functions
|
1 CALF $0B30 // voice functions
|
||||||
1 CALF $0BA9 // Sustain on/off
|
1 CALF $0BA9 // Sustain on/off
|
||||||
1 CALF $0BCC // adjusts switch values
|
1 CALF $0BCC // range switch values
|
||||||
1 CALF $0BDA // adjusts switch values
|
1 CALF $0BDA // osc switch values
|
||||||
1 CALF $0BEB // adjusts switch values
|
1 CALF $0BEB // both range and osc values
|
||||||
1 CALF $0C0C // switches2 values
|
1 CALF $0C0C // switches2 values
|
||||||
1 CALF $0C54 // switches values
|
1 CALF $0C54 // switches values
|
||||||
1 CALF $0F27 // maybe tape?
|
1 CALF $0F27 // maybe tape?
|
||||||
|
266
plugin/ic1.cpp
266
plugin/ic1.cpp
@ -214,8 +214,9 @@
|
|||||||
// 0177: 17 01 ORI A,$01 // transpose on
|
// 0177: 17 01 ORI A,$01 // transpose on
|
||||||
// 0179: 63 c8 STAW $FFC8 // save it
|
// 0179: 63 c8 STAW $FFC8 // save it
|
||||||
// 017b: 78 00 CALF $0800_showTranspose
|
// 017b: 78 00 CALF $0800_showTranspose
|
||||||
|
// -------------------------------------------------------------
|
||||||
|
// done with transpose?
|
||||||
|
// -------------------------------------------------------------
|
||||||
// 017d: 24 ff 1f LXI DE,$1FFF // select keypad MUX
|
// 017d: 24 ff 1f LXI DE,$1FFF // select keypad MUX
|
||||||
// 0180: 69 de MVI A,$DE
|
// 0180: 69 de MVI A,$DE
|
||||||
// 0182: 3a STAX (DE) // column 6
|
// 0182: 3a STAX (DE) // column 6
|
||||||
@ -231,96 +232,103 @@
|
|||||||
// 0192: 01 cd LDAW $FFCD // some flag
|
// 0192: 01 cd LDAW $FFCD // some flag
|
||||||
// 0194: 07 10 ANI A,$10 //
|
// 0194: 07 10 ANI A,$10 //
|
||||||
// 0196: 74 f8 bf EQAW $FFBF // some flag
|
// 0196: 74 f8 bf EQAW $FFBF // some flag
|
||||||
// 0199: 71 c0 00 MVIW $FFC0_runningStatus,$00
|
// 0199: 71 c0 00 MVIW $FFC0_runningStatus,$00 // clear running status
|
||||||
// 019c: 63 bf STAW $FFBF
|
// 019c: 63 bf STAW $FFBF // save flag
|
||||||
// 019e: 24 ff 1f LXI DE,$1FFF
|
|
||||||
// 01a1: 34 50 ff LXI HL,$FF50
|
// scan keys again
|
||||||
// 01a4: 6a e8 MVI B,$E8
|
// 019e: 24 ff 1f LXI DE,$1FFF // keypad MUX
|
||||||
|
// 01a1: 34 50 ff LXI HL,$FF50 // key bitfield
|
||||||
|
// 01a4: 6a e8 MVI B,$E8 // first column
|
||||||
// 01a6: 0a MOV A,B
|
// 01a6: 0a MOV A,B
|
||||||
// 01a7: 3a STAX (DE)
|
// 01a7: 3a STAX (DE) // enable
|
||||||
// 01a8: 00 NOP
|
// 01a8: 00 NOP
|
||||||
// 01a9: 00 NOP
|
// 01a9: 00 NOP
|
||||||
// 01aa: 4c c0 MOV A,PA
|
// 01aa: 4c c0 MOV A,PA // wait
|
||||||
// 01ac: 1b MOV C,A
|
// 01ac: 1b MOV C,A // save
|
||||||
// 01ad: 77 00 EQI A,$00
|
// 01ad: 77 00 EQI A,$00 // is it zero
|
||||||
// 01af: 15 87 80 ORIW $FF87,$80
|
// 01af: 15 87 80 ORIW $FF87,$80 // yes, set All Notes Off flag
|
||||||
// 01b2: 0a MOV A,B
|
// 01b2: 0a MOV A,B
|
||||||
// 01b3: 17 10 ORI A,$10
|
// 01b3: 17 10 ORI A,$10
|
||||||
// 01b5: 3a STAX (DE)
|
// 01b5: 3a STAX (DE) // disable
|
||||||
// 01b6: 0b MOV A,C
|
// 01b6: 0b MOV A,C // get bitfield back
|
||||||
// 01b7: 70 93 XRAX (HL)
|
// 01b7: 70 93 XRAX (HL) // compare with bitfield already stored
|
||||||
// 01b9: 48 0c SK Z
|
// 01b9: 48 0c SK Z // has it changed
|
||||||
// 01bb: 79 96 CALF $0996
|
// 01bb: 79 96 CALF $0996 // yes, so we need to do MIDI
|
||||||
// 01bd: 0b MOV A,C
|
// 01bd: 0b MOV A,C // get bitfield back
|
||||||
// 01be: 3d STAX (HL+)
|
// 01be: 3d STAX (HL+) // save, incrementing HL, in the bitfield RAM
|
||||||
// 01bf: 42 INR B
|
// 01bf: 42 INR B // next column
|
||||||
// 01c0: 48 0b SK HC
|
// 01c0: 48 0b SK HC // if we rolled over a nybble skip
|
||||||
// 01c2: e3 JR $01A6
|
// 01c2: e3 JR $01A6 // go back for the next column
|
||||||
// 01c3: 55 87 80 OFFIW $FF87,$80
|
// 01c3: 55 87 80 OFFIW $FF87,$80 // there are keys held
|
||||||
// 01c6: d3 JR $01DA
|
// 01c6: d3 JR $01DA // jump ahead
|
||||||
// 01c7: 5e 87 BIT 6,$FF87
|
// 01c7: 5e 87 BIT 6,$FF87 // we already sent All Notes Off
|
||||||
// 01c9: d0 JR $01DA
|
// 01c9: d0 JR $01DA // jump ahead and flag All notes off as Sent
|
||||||
// 01ca: 69 f9 MVI A,$F9
|
// 01ca: 69 f9 MVI A,$F9
|
||||||
// 01cc: 79 e8 CALF $09E8_sendToTx
|
// 01cc: 79 e8 CALF $09E8_sendToTx // enable MIDI output
|
||||||
// 01ce: 69 b0 MVI A,$B0
|
// 01ce: 69 b0 MVI A,$B0 // control change
|
||||||
// 01d0: 79 d5 CALF $09D5
|
// 01d0: 79 d5 CALF $09D5 // send and clear running status
|
||||||
// 01d2: 69 7b MVI A,$7B
|
// 01d2: 69 7b MVI A,$7B // All Notes Off
|
||||||
// 01d4: 79 e8 CALF $09E8_sendToTx
|
// 01d4: 79 e8 CALF $09E8_sendToTx
|
||||||
// 01d6: 69 00 MVI A,$00
|
// 01d6: 69 00 MVI A,$00 // off
|
||||||
// 01d8: 79 e8 CALF $09E8_sendToTx
|
// 01d8: 79 e8 CALF $09E8_sendToTx
|
||||||
// 01da: 01 87 LDAW $FF87
|
// 01da: 01 87 LDAW $FF87 // shift bit 7 to bit 6 to show we've already done it
|
||||||
// 01dc: 48 21 SLR A
|
// 01dc: 48 21 SLR A
|
||||||
// 01de: 63 87 STAW $FF87
|
// 01de: 63 87 STAW $FF87
|
||||||
// 01e0: 6a 0d MVI B,$0D
|
|
||||||
// 01e2: 34 3d ff LXI HL,$FF3D
|
// now consider bits from MIDI
|
||||||
// 01e5: 24 57 ff LXI DE,$FF57
|
// 01e0: 6a 0d MVI B,$0D // 13 bytes, 104 keys
|
||||||
// 01e8: 71 d0 00 MVIW $FFD0,$00
|
// 01e2: 34 3d ff LXI HL,$FF3D // top of note bitfield
|
||||||
// 01eb: af 10 LDAX (HL+$10)
|
// 01e5: 24 57 ff LXI DE,$FF57 // top of keyboard bitfield
|
||||||
// 01ed: 74 3a 03 LTI B,$03
|
// 01e8: 71 d0 00 MVIW $FFD0,$00 // zero out
|
||||||
// 01f0: 74 3a 0b LTI B,$0B
|
// 01eb: af 10 LDAX (HL+$10) // fetch MIDI bitfield
|
||||||
// 01f3: c3 JR $01F7
|
// 01ed: 74 3a 03 LTI B,$03 // B<3, skip
|
||||||
// 01f4: 70 9a ORAX (DE)
|
// 01f0: 74 3a 0b LTI B,$0B // B<11, skip - these select just the 8 bytes of keyboard scan
|
||||||
// 01f6: 23 DCX DE
|
// 01f3: c3 JR $01F7 // it didn't skip, ignore keyboard
|
||||||
// 01f7: 1b MOV C,A
|
// 01f4: 70 9a ORAX (DE) // combine with the keyboard bitfield
|
||||||
// 01f8: 70 93 XRAX (HL)
|
// 01f6: 23 DCX DE // next byte down
|
||||||
// 01fa: 48 0c SK Z
|
// 01f7: 1b MOV C,A // save
|
||||||
// 01fc: 7a 18 CALF $0A18
|
// 01f8: 70 93 XRAX (HL) // compare with current note bitfield
|
||||||
// 01fe: 0b MOV A,C
|
// 01fa: 48 0c SK Z // has it changed
|
||||||
// 01ff: 3b STAX (HL)
|
// 01fc: 7a 18 CALF $0A18 // yes, handle that
|
||||||
// 0200: 33 DCX HL
|
// 01fe: 0b MOV A,C // get bitfield back
|
||||||
// 0201: 52 DCR B
|
// 01ff: 3b STAX (HL) // store in current note bitfield
|
||||||
// 0202: e8 JR $01EB
|
// 0200: 33 DCX HL // next bitfield down
|
||||||
// 0203: 65 d0 ff NEIW $FFD0,$FF
|
// 0201: 52 DCR B // count down bitfield bytes
|
||||||
|
// 0202: e8 JR $01EB // back for the next one
|
||||||
|
// 0203: 65 d0 ff NEIW $FFD0,$FF // ffd0 remains a mystery
|
||||||
// 0206: 7b 9e CALF $0B9E_clrNoteBits
|
// 0206: 7b 9e CALF $0B9E_clrNoteBits
|
||||||
// 0208: 24 ff 1f LXI DE,$1FFF
|
// -------------------------------------------------------
|
||||||
// 020b: 34 a4 ff LXI HL,$FFA4
|
// now consider the keypad buttons
|
||||||
// 020e: 6a da MVI B,$DA
|
// -------------------------------------------------------
|
||||||
|
// 0208: 24 ff 1f LXI DE,$1FFF // keypad mux
|
||||||
|
// 020b: 34 a4 ff LXI HL,$FFA4 // raw switch data
|
||||||
|
// 020e: 6a da MVI B,$DA // mux column, start with bank buttons
|
||||||
// 0210: 0a MOV A,B
|
// 0210: 0a MOV A,B
|
||||||
// 0211: 3a STAX (DE)
|
// 0211: 3a STAX (DE) // enable
|
||||||
// 0212: 00 NOP
|
// 0212: 00 NOP // wait
|
||||||
// 0213: 00 NOP
|
// 0213: 00 NOP
|
||||||
// 0214: 4c c0 MOV A,PA
|
// 0214: 4c c0 MOV A,PA // read
|
||||||
// 0216: 1b MOV C,A
|
// 0216: 1b MOV C,A // save
|
||||||
// 0217: 0a MOV A,B
|
// 0217: 0a MOV A,B
|
||||||
// 0218: 17 20 ORI A,$20
|
// 0218: 17 20 ORI A,$20 // disable
|
||||||
// 021a: 3a STAX (DE)
|
// 021a: 3a STAX (DE)
|
||||||
// 021b: 0b MOV A,C
|
// 021b: 0b MOV A,C // get it back
|
||||||
// 021c: 70 93 XRAX (HL)
|
// 021c: 70 93 XRAX (HL) // has it changed?
|
||||||
// 021e: bf 06 STAX (HL+$06)
|
// 021e: bf 06 STAX (HL+$06) // store xored value
|
||||||
// 0220: 60 8b ANA A,C
|
// 0220: 60 8b ANA A,C // AND with original value
|
||||||
// 0222: bf 0c STAX (HL+$0C)
|
// 0222: bf 0c STAX (HL+$0C) // store ANDed value
|
||||||
// 0224: 0b MOV A,C
|
// 0224: 0b MOV A,C // get value back
|
||||||
// 0225: 3d STAX (HL+)
|
// 0225: 3d STAX (HL+) // store at HL, next byte
|
||||||
// 0226: 42 INR B
|
// 0226: 42 INR B // next column
|
||||||
// 0227: 48 0b SK HC
|
// 0227: 48 0b SK HC // did it roll over nybble
|
||||||
// 0229: e6 JR $0210
|
// 0229: e6 JR $0210 // no, loop back for next
|
||||||
// 022a: 58 b6 BIT 0,$FFB6
|
// 022a: 58 b6 BIT 0,$FFB6 // test mode?
|
||||||
// 022c: c2 JR $022F
|
// 022c: c2 JR $022F // no
|
||||||
// 022d: 4e 3f JRE $026E
|
// 022d: 4e 3f JRE $026E // interpret buttons for test mode
|
||||||
// 022f: 5b ae BIT 3,$FFAE
|
// 022f: 5b ae BIT 3,$FFAE // has the MIDI Channel button changed?
|
||||||
// 0231: d6 JR $0248
|
// 0231: d6 JR $0248 // no
|
||||||
// 0232: 5b a8 BIT 3,$FFA8_midiSwitch ; MIDI CH button
|
// 0232: 5b a8 BIT 3,$FFA8_midiSwitch ; MIDI CH button
|
||||||
// 0234: d1 JR $0246
|
// 0234: d1 JR $0246 // button was released
|
||||||
// 0235: 78 43 CALF $0843_sendOmniOffPoly
|
// 0235: 78 43 CALF $0843_sendOmniOffPoly
|
||||||
// 0237: 7b 9a CALF $0B9A_clrMidiBits
|
// 0237: 7b 9a CALF $0B9A_clrMidiBits
|
||||||
// 0239: 78 28 CALF $0828_centreBend
|
// 0239: 78 28 CALF $0828_centreBend
|
||||||
@ -332,29 +340,31 @@
|
|||||||
// 0245: c2 JR $0248
|
// 0245: c2 JR $0248
|
||||||
// 0246: 7d 3c CALF $0D3C_rstrDigitPatt
|
// 0246: 7d 3c CALF $0D3C_rstrDigitPatt
|
||||||
// 0248: 5b a8 BIT 3,$FFA8_midiSwitch ; MIDI CH button
|
// 0248: 5b a8 BIT 3,$FFA8_midiSwitch ; MIDI CH button
|
||||||
// 024a: 4e 4f JRE $029B
|
// 024a: 4e 4f JRE $029B // if it's not still being pressed?
|
||||||
// 024c: 55 87 40 OFFIW $FF87,$40
|
// 024c: 55 87 40 OFFIW $FF87,$40 // did we send all notes off?
|
||||||
// 024f: db JR $026B
|
// 024f: db JR $026B
|
||||||
// 0250: 64 4a 08 ONI PC,$08
|
// 0250: 64 4a 08 ONI PC,$08 // sustain pedal
|
||||||
// 0253: d7 JR $026B
|
// 0253: d7 JR $026B
|
||||||
// 0254: 25 b0 00 GTIW $FFB0,$00
|
// 0254: 25 b0 00 GTIW $FFB0,$00 // any bank buttons pressed?
|
||||||
// 0257: c7 JR $025F
|
// 0257: c7 JR $025F // none pressed
|
||||||
// 0258: 01 b0 LDAW $FFB0
|
// 0258: 01 b0 LDAW $FFB0
|
||||||
// 025a: 7c 9d CALF $0C9D
|
// 025a: 7c 9d CALF $0C9D // find which button is pressed
|
||||||
// 025c: 51 DCR A
|
// 025c: 51 DCR A // subtract 1, 0-7
|
||||||
// 025d: 78 13 CALF $0813
|
// 025d: 78 13 CALF $0813 // store MIDI channel number and set flags
|
||||||
// 025f: 25 b1 00 GTIW $FFB1,$00
|
// 025f: 25 b1 00 GTIW $FFB1,$00 // any patch buttons pressed
|
||||||
// 0262: c8 JR $026B
|
// 0262: c8 JR $026B // no
|
||||||
// 0263: 01 b1 LDAW $FFB1
|
// 0263: 01 b1 LDAW $FFB1 // get bitfield
|
||||||
// 0265: 7c 9d CALF $0C9D
|
// 0265: 7c 9d CALF $0C9D // find which button is pressed
|
||||||
// 0267: 46 07 ADI A,$07
|
// 0267: 46 07 ADI A,$07 // add 7, 8-15
|
||||||
// 0269: 78 13 CALF $0813
|
// 0269: 78 13 CALF $0813 // store MIDI channel number and set flags
|
||||||
// 026b: 54 5d 04 JMP $045D
|
// 026b: 54 5d 04 JMP $045D // go on ahead
|
||||||
// 026e: 5b b4 BIT 3,$FFB4
|
|
||||||
// 0270: c2 JR $0273
|
// set up testmode
|
||||||
|
// 026e: 5b b4 BIT 3,$FFB4 // MIDI CH pressed?
|
||||||
|
// 0270: c2 JR $0273 // no, go on
|
||||||
// 0271: 78 5c CALF $085C // tell the module board to zero the DAC
|
// 0271: 78 5c CALF $085C // tell the module board to zero the DAC
|
||||||
// 0273: 01 a8 LDAW $FFA8_midiSwitch
|
// 0273: 01 a8 LDAW $FFA8_midiSwitch
|
||||||
// 0275: 48 21 SLR A
|
// 0275: 48 21 SLR A //
|
||||||
// 0277: 07 38 ANI A,$38
|
// 0277: 07 38 ANI A,$38
|
||||||
// 0279: 1b MOV C,A
|
// 0279: 1b MOV C,A
|
||||||
// 027a: 01 c8 LDAW $FFC8
|
// 027a: 01 c8 LDAW $FFC8
|
||||||
@ -406,7 +416,7 @@
|
|||||||
// 02d4: 63 c8 STAW $FFC8
|
// 02d4: 63 c8 STAW $FFC8
|
||||||
// 02d6: 58 b6 BIT 0,$FFB6
|
// 02d6: 58 b6 BIT 0,$FFB6
|
||||||
// 02d8: cc JR $02E5
|
// 02d8: cc JR $02E5
|
||||||
// 02d9: 69 fd MVI A,$FD // select module board // select module board
|
// 02d9: 69 fd MVI A,$FD // select module board
|
||||||
// 02db: 79 e8 CALF $09E8_sendToTx
|
// 02db: 79 e8 CALF $09E8_sendToTx
|
||||||
// 02dd: 5e c8 BIT 6,$FFC8
|
// 02dd: 5e c8 BIT 6,$FFC8
|
||||||
// 02df: 69 86 MVI A,$86
|
// 02df: 69 86 MVI A,$86
|
||||||
@ -1388,33 +1398,35 @@
|
|||||||
// 0993: 79 e8 CALF $09E8_sendToTx
|
// 0993: 79 e8 CALF $09E8_sendToTx
|
||||||
// 0995: b8 RET
|
// 0995: b8 RET
|
||||||
|
|
||||||
// voice mapper?
|
// handles note on/off from key bitfield
|
||||||
// 0996: 19 MOV EAL,A
|
// sends velocity byte after note on
|
||||||
|
// called with column in B, bitfield in C, difference in A
|
||||||
|
// 0996: 19 MOV EAL,A // save difference
|
||||||
// 0997: 0a MOV A,B
|
// 0997: 0a MOV A,B
|
||||||
// 0998: 07 07 ANI A,$07
|
// 0998: 07 07 ANI A,$07
|
||||||
// 099a: 7a 0d CALF $0A0D
|
// 099a: 7a 0d CALF $0A0D // routine that multiplies A by 8 and saves it in EAH then stores C to FFC3
|
||||||
// 099c: b3 PUSH HL
|
// 099c: b3 PUSH HL
|
||||||
// 099d: b1 PUSH BC
|
// 099d: b1 PUSH BC
|
||||||
// 099e: 6a 00 MVI B,$00
|
// 099e: 6a 00 MVI B,$00 //
|
||||||
// 09a0: 09 MOV A,EAL
|
// 09a0: 09 MOV A,EAL // difference
|
||||||
// 09a1: 1b MOV C,A
|
// 09a1: 1b MOV C,A // into C
|
||||||
// 09a2: 48 03 SLRC C
|
// 09a2: 48 03 SLRC C // shift right, skip if carry
|
||||||
// 09a4: d5 JR $09BA
|
// 09a4: d5 JR $09BA // bit 7 was 0
|
||||||
// 09a5: 34 08 00 LXI HL,$0008
|
// 09a5: 34 08 00 LXI HL,$0008 // bit 7 was 1
|
||||||
// 09a8: ad LDAX (HL+B)
|
// 09a8: ad LDAX (HL+B) // get bit value
|
||||||
// 09a9: 74 c8 c3 ONAW $FFC3
|
// 09a9: 74 c8 c3 ONAW $FFC3 // is that bit set in the saved bitfield
|
||||||
// 09ac: c7 JR $09B4
|
// 09ac: c7 JR $09B4 // no
|
||||||
// 09ad: 79 c2 CALF $09C2
|
// 09ad: 79 c2 CALF $09C2 // send Note On to MIDI
|
||||||
// 09af: 69 40 MVI A,$40
|
// 09af: 69 40 MVI A,$40 // velocity is 64
|
||||||
// 09b1: 79 e8 CALF $09E8_sendToTx
|
// 09b1: 79 e8 CALF $09E8_sendToTx
|
||||||
// 09b3: c6 JR $09BA
|
// 09b3: c6 JR $09BA // loop around to next bit
|
||||||
// 09b4: 79 c2 CALF $09C2
|
// 09b4: 79 c2 CALF $09C2 // Note Off is send Note On to MIDI
|
||||||
// 09b6: 69 00 MVI A,$00
|
// 09b6: 69 00 MVI A,$00 // but with velocity 0
|
||||||
// 09b8: 79 e8 CALF $09E8_sendToTx
|
// 09b8: 79 e8 CALF $09E8_sendToTx
|
||||||
// 09ba: 42 INR B
|
// 09ba: 42 INR B // next nit
|
||||||
// 09bb: 74 7a 08 EQI B,$08
|
// 09bb: 74 7a 08 EQI B,$08 // if we've done all 8
|
||||||
// 09be: e3 JR $09A2
|
// 09be: e3 JR $09A2 // we haven't, loop
|
||||||
// 09bf: a1 POP BC
|
// 09bf: a1 POP BC // restore and return
|
||||||
// 09c0: a3 POP HL
|
// 09c0: a3 POP HL
|
||||||
// 09c1: b8 RET
|
// 09c1: b8 RET
|
||||||
|
|
||||||
@ -1423,10 +1435,10 @@
|
|||||||
// 09c4: 79 e8 CALF $09E8_sendToTx
|
// 09c4: 79 e8 CALF $09E8_sendToTx
|
||||||
// 09c6: 69 90 MVI A,$90
|
// 09c6: 69 90 MVI A,$90
|
||||||
// 09c8: 79 dc CALF $09DC
|
// 09c8: 79 dc CALF $09DC
|
||||||
// 09ca: 08 MOV A,EAH
|
// 09ca: 08 MOV A,EAH // contains column number *8
|
||||||
// 09cb: 60 9a ORA A,B
|
// 09cb: 60 9a ORA A,B // contains bit number count (lower 3 bits) of note
|
||||||
// 09cd: 46 18 ADI A,$18
|
// 09cd: 46 18 ADI A,$18 // +24
|
||||||
// 09cf: 74 c0 be ADDW $FFBE_transpose
|
// 09cf: 74 c0 be ADDW $FFBE_transpose // +transpose
|
||||||
// 09d2: 79 e8 CALF $09E8_sendToTx
|
// 09d2: 79 e8 CALF $09E8_sendToTx
|
||||||
// 09d4: b8 RET
|
// 09d4: b8 RET
|
||||||
|
|
||||||
@ -1436,16 +1448,16 @@
|
|||||||
// 09db: cc JR $09E8_sendToTx
|
// 09db: cc JR $09E8_sendToTx
|
||||||
|
|
||||||
// add MIDI channel and send
|
// add MIDI channel and send
|
||||||
// 09dc: 47 80 ONI A,$80
|
// 09dc: 47 80 ONI A,$80 // is it a status byte
|
||||||
// 09de: c9 JR $09E8_sendToTx
|
// 09de: c9 JR $09E8_sendToTx // no, just send it
|
||||||
// 09df: 74 c0 bd ADDW $FFBD_midiChannel
|
// 09df: 74 c0 bd ADDW $FFBD_midiChannel // yes, add the MIDI channel
|
||||||
// 09e2: 74 e8 c0 NEAW $FFC0_runningStatus
|
// 09e2: 74 e8 c0 NEAW $FFC0_runningStatus // skip if not the same as the current running status
|
||||||
// 09e5: b8 RET
|
// 09e5: b8 RET // yes it is, return
|
||||||
|
|
||||||
// set running status
|
// set running status
|
||||||
// 09e6: 63 c0 STAW $FFC0_runningStatus
|
// 09e6: 63 c0 STAW $FFC0_runningStatus // save the running status and fall through to
|
||||||
// send to TX
|
// send to TX
|
||||||
// 09e8: b3 PUSH HL
|
// 09e8: b3 PUSH HL // send to TX
|
||||||
// 09e9: b1 PUSH BC
|
// 09e9: b1 PUSH BC
|
||||||
// 09ea: b2 PUSH DE
|
// 09ea: b2 PUSH DE
|
||||||
// 09eb: 1b MOV C,A
|
// 09eb: 1b MOV C,A
|
||||||
|
Loading…
Reference in New Issue
Block a user