COMPUTER INTERFACE DESCRIPTION : When an OB-Xa is ready to transmit data to the computer interface, the HINT* line goes low (active). The OB-Xa then waits approximately 100 microseconds for a BUSRQ*. During this time the HRV* line must go low in order to read in the vector placed on the first five data lines, followed by BUSRQ* going low (within the 100 microseconds). The three most significant bits must be masked off the vector since they contain random data. The five bits of data are used to determine at what point in the program the OB-Xa is in. After the 100 microseconds, (plus the time that BUSRQ* was held low), the OB-Xa will reset the HINT* line, reset the five data lines, and read in COMFLG into the A register, to possibly be used in the OB-Xa. HINT* D0 D1 D2 D3 D4 LOCATION IN PROGRAM ---------------------------------------------------------------------------- 0 0 0 0 0 0 KEYBOARD ROUTINE, JUST AFTER SCANNING KEYBOARD 0 0 1 1 0 0 BEGINNING OF PROGRAMMER ROUTINE 0 0 1 1 1 0 BEGINNING OF MAIN SCAN JUST AFTER SCANNING THE SWITCHES ---------------------------------------------------------------------------- If during the keyboard interrupt, COMFLG is made non-zero, the rest of the routine is skipped. This allows the insertion of notes directly to specific voices (called NVAL, located in RAM at 4010 to 4017 hex) while ignoring any notes being played on the keyboard. If during the programmer interrupt COMFLG is made non-zero, the OB-Xa will assume a program change has been made (by altering OLDPGM, located at RAM location 402E hex), and act accordingly. COMFLG has no effect on the main scan interrupt. ADDRESS NAME DESCRIPTION ---------------------------------------------------------------------------- 4010-4017 NVAL NOTES PLAYED BY THE 8 VOICES 4001-4009 BUFF KEYS BEING DEPRESSED ON THE KEYBOARD 402E OLDPGM CURRENT PROGRAM 40AA COMFLG COMPUTER INTERFACE FLAG 40E0-40EF SW STORAGE LOCATIONS FOR FRONT PANEL SWITCH POSITIONS ---------------------------------------------------------------------------- NVAL : These 8 locations contain the data currently being played by the voices in the OB-Xa. NVAL contains information for voice 1, NVAL+1 contains information for voice 2, etc. The information is stored as follows : bit 0-5 contain the note number (0 through 63), bit 6 is the HOLD bit and bit 7 is the GATE bit. The HOLD bit, when set, causes a voice to remain at its current pitch even if the key are released. The GATE bit, when set, sends a gate voltage to both envelope generators of the selected voices. BUFF : These 9 locations contain data relating to the keys currently being played on the kayboard. The data can represent a key (0-63H), or it can represent no key being depressed at that location (FFH). BUFF+9 contains the lowest note being played on the kayboard, and BUFF is the highest. The OB-Xa uses this data during the keyboard routine to determine what notes to output to the voices. OLDPGM : This location contains the program number currently being used in the instrument. In the OB-X, it can be 0-1FH; in the OB-SX , 0-17H; in the OB-Xa, 0-1FH; in the OB-X/120, 0-77H. These numbers relate to the selected programs in the following manner : The three least significant bits represent the PROGRAM number 1-8, the bits 3 &4 represent the group A-D (on the OB- Xa/120 there are 15 possible groups, represented with bits 3 through 6). COMFLG : This location is used to tell the OB-Xa to respond in a determined manner to the information given to it from the computer interface. SW : These 16 locations contain a bit for each switch and each key on the keyboard on the OB-Xa only. That data is arranged as follows : ADRESS D0 D1 D2 D3 D4 D5 D6 D7 ---------------------------------------------------------------------------- 40E0 C0 C#0 D0 D#0 E0 F0 F#0 G0 40E1 G#0 A0 A#0 B0 C1 C#1 D1 D#1 40E2 E1 F1 F#1 G1 G#1 A1 A#1 B1 40E3 C2 C#2 D2 D#2 E2 F2 F#2 G2 40E4 G#2 A2 A#2 B2 C3 C#3 D3 D#3 40E5 E3 F3 F#3 G3 G#3 A3 A#3 B3 40E6 C4 C#4 D4 D#4 E4 F4 F#4 G4 40E7 G#4 A4 A#4 B4 C5 -- -- -- 40E8 PROG1 PROG2 PROG3 PROG4 PROG5 PROG6 PROG7 PROG8 40E9 GRP A GRP B GRP C GRP D HOLD CHORD SUSTFS PRGADV 40EA -- -- -- UNISON LFOSIN LFOSQR LFOS/H FMOSC1 40EB FMOSC2 FMFILT PMOSC1 PMOSC2 OSC1SW OSC1SQ OSC2SW OSC2SQ 40EC OSC1FL TRACK OSC2HF OSC2FL NOISE 4-POLE SYNC F-ENV 40ED -- LOWER UPPER SPLIT -- TEST1 TEST2 AUTO 40EE MANUAL WRITE DOUBLE -- RGATE* CASSET CDATI* DREQ* 40EF VOICE1 VOICE2 VOICE3 VOICE4 VOICE5 VOICE6 VOICE7 VOICE8 ---------------------------------------------------------------------------- Here is an description of how communication occurs between an OB-Xa and a DSX when connected together through the computer interface. The DSX, while in play, keeps track of the current "time of day" with its real time clock and decides whether or not it is time to play a note. When it is time to play a note, the DSX stores that note into a particular place in its memory. When it is time to stop playing that note, it takes the note out of that place in memory. In the mean time, if the OB-Xa has reached one of its three routines in which it calls the Computer Interface, it will place a vector onto the first five data lines and set the HINT* line low. This signal causes a non-maskable interrupt to occur in the Z80 of the DSX, gorcing it to stop what it is doing and immediately execute a specific part of its program. This program will read in the vector and set the BUSRQ* low. The Z80 in the OB-Xa will send a BUSAK* signal and then stop everything until the BUSRQ* line returns to its normally high state. The DSX will then determine, using the vector, whether or not any communicatiob is necessary between the DSX and the OB-Xa. If the vector indicated that the OB-Xa was in its keyboard routine and the DSX has a note to play, the DSX would then ouput the note into the appropriate memory location of the OB-Xa and make the memory location COMFLG non-zero. After this the DSX would return BUSQR* to a high state, allowing the OB-Xa to resume its program. The OB-Xa would then output the note to the proper voice. CABLE #21 -- Computer interface (Upper Control Board to Rear Panel) CONTROL BOARD REAR PANEL INTERFACE CONNECTOR ------------- ------------------------------ X1 HA11 37 X2 HA10 36 X3 HA9 35 X4 HA8 34 X5 HA7 33 X6 HA5 32 X7 HA3 31 X8 HA1 30 X9 HD0 29 X10 HD1 28 X11 HD2 27 X12 HD3 26 X13 HRV* 25 X14 BUSRQ* 24 X15 BUSAKA* 23 X16 HINT* 22 X17 HWR* 21 X18 HMRQ* 20 X19 X20 X21 X22 HRD* 1 X23 GROUND 2 X24 GROUND 3 X25 GROUND 4 X26 GROUND 5 X27 GROUND 6 X28 OSC MUX 7 X29 HD4 8 X30 HD5 9 X31 HD6 10 X32 HD7 11 X33 HA0 12 X34 HA2 13 X35 HA4 14 X36 HA6 15 X37 HA15 16 X38 HA14 17 X39 HA13 18 X40 HA12 19 PIN CONNECTOR DIAGRAM : PIN 19 PIN 1 | | /ooooooooooooooooooo\ \ oooooooooooooooooo/ | | PIN 37 PIN 20