|
|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 12032 (0x2f00)
Types: RcTekst
Names: »44RT2119.WP«
└─⟦d6fd29e8c⟧ Bits:30005864 Manualer - tekstfiler 42-I og 44-RT afdelingerne
└─⟦this⟧ »44RT2119.WP«
╱04002d4e0a00060000000003013c3140000000000000000000000000000000000000000000000000050f19232d37414b555f69737d8791ff04╱
┆b0┆┆a1┆┆f0┆┆e1┆┆06┆i↲
↲
┆b0┆┆a1┆TABLE OF CONTENTS┆05┆PAGE↲
↲
1. DESCRIPTION ........................................ 1↲
1.1 Hardware Survey ............................... 4↲
↲
2. THE KEYBOARD CONTROLLER (KBC751/KBC752) ............┆05┆6↲
2.1 Logic Diagrams and Functional Description .....┆05┆8↲
2.2 Special Hardware Features .....................┆05┆11↲
↲
3. THE KEY SWITCH ASSEMBLY (KSA751) ................... 16↲
3.1 The Phantom Phenomenon ........................ 16↲
↲
4. THE MICROPROGRAM ...................................┆05┆19↲
4.1 Error-Codes ...................................┆05┆19↲
════════════════════════════════════════════════════════════════════════
↓
┆06┆ii↲
↲
════════════════════════════════════════════════════════════════════════
↓
════════════════════════════════════════════════════════════════════════
↓
┆14┆┆b3┆┆a1┆┆b0┆┆e1┆┆06┆┆0b┆↲
┆b0┆┆a1┆1. DESCRIPTION↲
↲
The RC730 is the keyboard for the RC750 microcomputer. The ↓
keyboard is based on the position-code principle. I.e. that ↓
a depression of a key results in the transmission of a ↓
position code. Therefore the host computer must perform a ↓
translation from position codes to e.g. ASCII. When a key is ↓
released, 128 (decimal) is added to the position code and ↓
this code is then to be transmitted. I.e. that a single ↓
"hit" on a key results in the transmission of 2 codes. The ↓
position code allocation is shown in fig. 1.2.↲
↲
The position codes is transmitted to the host in a serial ↓
form. The keyboard provides both data and clock information.↲
↲
════════════════════════════════════════════════════════════════════════
↓
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
┆06┆Figure 1.1: Keyboard layout.↲
════════════════════════════════════════════════════════════════════════
↓
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
┆06┆Figure 1.2: Positioncode allocation.↲
════════════════════════════════════════════════════════════════════════
↓
┆b0┆┆a1┆1.1 Hardware Survey↲
↲
The RC730 keyboard consists fo two modules: KBC751/KBC752 ↓
and KSA751.↲
↲
KBC751 is the controller module and KSA751 is simply the PCB ↓
where the keyswitches are mounted.↲
↲
The controller performs the "reading" of the switches, the ↓
transmission of position codes and the generation of ↓
"keyswitchclicks". The controller has also got a connector ↓
which is intended to be used in conjunction with a mouse. ↓
Fig. 1.3 shows the physical interconnection of the modules.↲
↲
The connection to the computer is made through the cable ↓
KBL574. The definition of the cable is as follows:↲
↲
┆06┆ Pin 1: Strobe Clock from keyboard↲
2: Serial Data from keyboard↲
3: no connection↲
4: 0 V↲
Front view 5: 6,5 V - 7,5 V supply↲
5P DIN-connector Shield connected to housing↲
(DIN 41524)↲
════════════════════════════════════════════════════════════════════════
↓
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
┆06┆Figure 1.3:↲
════════════════════════════════════════════════════════════════════════
↓
┆b0┆┆a1┆2. THE KEYBOARD CONTROLLER (KBC751/KBC752)↲
↲
The KBC751/KBC752 is based upon a 8039 single chip micro- ↓
computer. The program for the microcomputer is stored in 2 K ↓
x 8 ROM (2716). ↲
↲
In this section the hardware around the microcomputer will ↓
be described. The KBC751/KBC752 assembly drawing is shown in ↓
fig. 2.1.↲
↲
════════════════════════════════════════════════════════════════════════
↓
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
┆06┆Figure 3:↲
════════════════════════════════════════════════════════════════════════
↓
┆b0┆┆a1┆2.1 Logic Diagrams and Functional Description↲
↲
┆a1┆Signal┆e1┆┆06┆┆a1┆Description↲
↲
MOUSECON╞ ╞ Serial data input from mouse.↲
RX╞ ╞ ╞ Returnline for the two SHIFT-keys.↲
R0-7╞ ╞ Returnlines from the KSA751↲
T0, T1╞ ╞ Input from nationality switch↲
DA0-7 ╞ ╞ Data-Address bus.↲
LATCH╞ ╞ ┆84┆Strobe signal present in the mouse ↓
┆19┆┆99┆┄┄connector J3.↲
ALE╞ ╞ ╞ Address latch enable↲
PSEN╞ ╞ Program store enable↲
A8-A10╞ ╞ 3 most significant address bits.↲
DATA╞ ╞ Unbuffered DATAOUT-line↲
CLOCK╞ ╞ Unbuffered inverted CLOCKOUT line↲
CLICK╞ ╞ ┆84┆Controls the activation of the ↓
┆19┆┆99┆┄┄relay↲
┆a1┆┆05┆↲
↲
S0-12 ╞ ╞ Scanlines used on the KSA751↲
SX1, 2╞ ╞ ┆84┆Scanlines dedicated to the ↓
┆19┆┆99┆┄┄nationality switch and the two ↓
┆19┆┆99┆┄┄SHIFT-keys.↲
DATAOUT╞ ╞ Serial data from keyboard.↲
CLOCKOUT╞ ╞ Strobe clock from keyboard.↲
════════════════════════════════════════════════════════════════════════
↓
↲
════════════════════════════════════════════════════════════════════════
↓
↲
════════════════════════════════════════════════════════════════════════
↓
┆b0┆┆a1┆2.2 Special Hardware Features↲
↲
┆a1┆The keyboard scanning↲
↲
The scanning circuit consist of the 4 IC's 1, 2, 3 and 4. ↓
The IC4 is a 4-to-16 line demultiplexer. The IC's 1, 2 and 3 ↓
form a line of 18 inverters with open collector outputs. ↓
One, and only one, of the scanlines S0-S12 and SX1, 2 will ↓
be pulled low at a time. The rest of the scanlines will be ↓
in the high impedance state. The line to be pulled low is ↓
selected by the 4 selectlines A-D on IC4.↲
↲
The selectlines A-D is connected to the addresslines A4-A7.↲
↲
The STROBE-input on IC4 is connected to the most significant ↓
addressbit, A10. The following figure will describe the ↓
scanline addressing.↲
↲
┆a1┆MSB ENABLES SCANNING LSB↲
┆a1┆ A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 ┆e1┆ BIN↲
┆a1┆ H2 H1 H0 ┆e1┆ HEX↲
CONTROLS DON'T↲
┆a1┆ SCANLINES CARES ↲
↲
Example: ┆84┆In the address 043B(H) the scanline S3 will be ↓
┆19┆┆89┆┄┄pulled low.↲
┆84┆In the address 0431(H) the scanline S3 will be ↓
┆19┆┆89┆┄┄pulled low.↲
╞ ┆84┆In the address 0331(H) none of the scanline will be ↓
┆19┆┆89┆┄┄pulled low. All lines will be in the high impedance ↓
┆19┆┆89┆┄┄state.↲
╞ ┆84┆In the address 06D7(H) the scanline SX1 will be ↓
┆19┆┆89┆┄┄pulled low.↲
↲
════════════════════════════════════════════════════════════════════════
↓
┆a1┆The return lines↲
↲
Port 1 defines the returnlines from the keyswitch assembly ↓
(KSA751). The figure shown below shows the principal ↓
function of the returnlines, R0-R7.↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
Example: ┆84┆Assume that the switch B0 is closed.↲
┆84┆Assume that the return-lines is read, and that the ↓
┆19┆┆89┆┄┄address for this operation is 0456(H).↲
╞ ┆84┆The S5-line is then pulled low, and the reading ↓
┆19┆┆89┆┄┄will then show that the LSB of part 1 (R0) is "0". ↓
┆19┆┆89┆┄┄This will mean that B0 is closed.↲
┆84┆The MSB of part 1 (R7) will be "1" since B7 is ↓
┆19┆┆89┆┄┄open.↲
┆84┆If the reading of part 1 was done while the address ↓
┆19┆┆89┆┄┄was e.g. 050F(H) then the LSB of part 1 (R0) will ↓
┆19┆┆89┆┄┄reflect the status of switch A0.↲
════════════════════════════════════════════════════════════════════════
↓
┆a1┆The nationality switch↲
↲
SW1 in the KBC751 diagram is the nationality switch. This ↓
switch is a binary-count switch. The switchfunction is ↓
described in the following scheme.↲
┆a1┆ ↲
┆a1┆┆e1┆ SX1┆a1┆┆e1┆ SX2 ↲
┆a1┆ LOW LOW ↲
┆a1┆ Pin pair: 7-9 6-12 4-14 1-15 T1 T0 T1 T0 ↲
┆a1┆ switch position 0 O O O O L L L L ↲
┆a1┆ 1 O O O S L H L L ↲
┆a1┆ 2 O O S O L L L H ↲
┆a1┆ 3 O O S S L H L H ↲
┆a1┆ 4 O S O O H L L L ↲
┆a1┆ 5 O S O S H H L L ↲
┆a1┆ 6 O S S O H L L H ↲
┆a1┆ 7 O S S S H H L H ↲
┆a1┆ 8 S O O O L L H L ↲
┆a1┆ 9 S O O S L H H L ↲
┆a1┆ A S O S O L L H H ↲
┆a1┆ B S O S S L H H H ↲
┆a1┆ C S S O O H L H L ↲
┆a1┆ D S S O S H H H L ↲
┆a1┆ E S S S O H L H H ↲
┆a1┆ F S S S S H H H H ↲
↲
S = Shorted O = Open L = Low H = High↲
↲
To the right in scheme is the state of the two test inputs ↓
shown; as a function of the switch position and the state ↓
off the two scanlines (IC no. 3 pin 10 and 12).↲
↲
════════════════════════════════════════════════════════════════════════
↓
┆a1┆The handshake↲
↲
Port 1 and 2 of the 8039 microcomputer has a special ↓
feature: Each bit in the ports can function as both an input ↓
and an outputline. this feature is used in making the ↓
DATAOUT-line bidirectional.↲
↲
The DATAOUT-line is, when inactive, pulled high via an 50 K ↓
Ohm resistor located inside the 8039.↲
↲
The internal structure of the I/O-parts is shown below.↲
↲
↲
↲
↲
↲
↲
↲
Whenever the computer is ┆a1┆not┆e1┆ ready for receiving data from ↓
the keyboard, the computer will pull the DATAOUT-line low. ↓
this low level will be detected at port 2's bit no. 4.↲
↲
This handshake feature is a very efficient way to avoid ↓
overrun in the keyboard-receiver-circuit.↲
↲
┆a1┆The click device↲
↲
In order to simulate the "click"-sound of a ordinary ↓
typewriter, the KBC751/KBC752 is equipped with a relay ↓
(RL1). This relay can be used to create a "click"-sound ↓
whenever a key is pressed. The relay is controlled by bit ↓
no. 6 in port 2. A low voltage on this pin will turn on the ↓
relay.↲
↲
════════════════════════════════════════════════════════════════════════
↓
In order to create a well defined "click"-sound, the pulse ↓
to the relay is as follows:↲
↲
╞ H ┆a1┆ ┆e1┆ ┆a1┆ ↲
L ┆a1┆ ↲
9mS↲
↲
┆a1┆Mouse connection↲
↲
KBC751/752 is prepared for the connection of a mouse. The ↓
mouse will send serial data to the KBC at a baudrate of ↓
1200. The KBC is then to pass on the mouse-information to ↓
the computer.↲
↲
Two types of mouseconnectors can be used; this is shown by ↓
the double layout of J3 (J3A) in fig. 2.1.↲
════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆3. THE KEY SWITCH ASSEMBLY (KSA751)↲
↲
The KSA is simply the printed circuit board where the ↓
switches are mounted. The diagram is shown on page 18.↲
↲
↲
┆b0┆┆a1┆3.1 The Phantom Phenomenon↲
↲
The KSA is very simple but there is still a problem ↓
concerning the detection of depressed keys. Consider the ↓
example shown below:↲
↲
↲
↲
↲
↲
↲
↲
↲
If S0 is pulled low, R0 and R2 will also be pulled low, ↓
indicating that A and E are closed. The next step in the ↓
scanningprocedure will now be to pull S1 low. R0-R2 will now ↓
be high indicating that none of the switches B, C and F are ↓
closed. The situation described here will be normal.↲
↲
Consider now this situation:↲
↲
↲
↲
↲
↲
↲
↲
↲
════════════════════════════════════════════════════════════════════════
↓
When S0 is pulled low, R0 and R2 will be pulled low ↓
indicating that A and E is closed. When now S1 is being ↓
pulled low, R0 ┆a1┆and┆e1┆ R2 will be pulled low. This would ↓
normally indicate that F is closed, but this is actually not ↓
so. This condition is called a phantom condition. The ↓
condition is caused by the connection from B to A and to E. ↓
This is shown in the figure. We will see that the phantom ↓
condition will occur whenever the switches in 3 corners of a ↓
layout switch quadrangle is closed. The effect of the ↓
phantom conditionis that two scanlines (here S0 and S1) will ↓
look as though they were equal. I.e. that A and E are closed ↓
┆a1┆and┆e1┆ B and F are closed.↲
↲
The equality will in the program be used as a criteria for ↓
the presence of a phantom condition.↲
↲
════════════════════════════════════════════════════════════════════════
↓
↲
════════════════════════════════════════════════════════════════════════
↓
┆b0┆┆a1┆4. ╞ THE MICROPROGRAM↲
↲
The microprogram for the 8039 single chip micro-computer is ↓
stored in a 2716PROM.↲
↲
There exists 3 versions of the PROM:↲
↲
ROC191 ┆84┆is the originally PROM with no mouse-support.↲
↲
ROC315 ┆84┆is basicly a ROC191 except for the selftest-↓
┆19┆┆88┆┄┄routine. ROC315 will transmit an error-code when a ↓
┆19┆┆88┆┄┄key is depressed during power-up.↲
↲
ROC405 ┆84┆is basicly a ROC315 with a mouse-handling-routine ↓
┆19┆┆88┆┄┄added.↲
↲
↲
┆a1┆┆b0┆4.1 Error-Codes↲
↲
When power is applied the KBC performs a selftest. The test ↓
is divided into 3 "sub-tests" which are performed in the ↓
sequence shown below:↲
↲
1. ┆84┆First the PROM is being testet for a zero checksum. If ↓
┆19┆┆83┆┄┄this test fails 4 "cliks" are being transmitted and the ↓
┆19┆┆83┆┄┄"position code" 254 decimal is send to the computer.↲
↲
2. ┆84┆The keyswitch-assembly is then being tested for any ↓
┆19┆┆83┆┄┄depressed key during power-up. If a depressed key is ↓
┆19┆┆83┆┄┄detected 1 "click" is transmitted and 253 decimal is send ↓
┆19┆┆83┆┄┄to the computer.↲
↲
════════════════════════════════════════════════════════════════════════
↓
3. ┆84┆Port 2 are the 8039 microcomputer is then being tested. ↓
┆19┆┆83┆┄┄The test fails if the setup value written to the port ↓
┆19┆┆83┆┄┄does not match the actual read value. If the test fails ↓
┆19┆┆83┆┄┄2 "clicks" are transmitted and 252 decimal is send to the ↓
┆19┆┆83┆┄┄computer.↲
↲
If no error conditionis detected 3 "clicks" are transmitted ↓
and 255 decimal is send to the computer.↲
↲
════════════════════════════════════════════════════════════════════════
↓
┆06┆┆a1┆CODE ASSIGNMENT↲
↲
┆a1┆CODE╞ DECRIPTION╞ ╞ ↲
255╞ ╞ OK-code↲
214↲
.↲
.╞ ╞ Available error-codes↲
.↲
244↲
243↲
.↲
.╞ ╞ Nationality codes↲
.↲
228↲
227╞ ╞ Not used↲
226↲
.↲
.╞ ╞ Release codes↲
.↲
129↲
128↲
.↲
.╞ ╞ Not used↲
.↲
99↲
98↲
.↲
.╞ ╞ Position codes↲
.↲
.↲
1↲
0╞ ╞ Not used↲
════════════════════════════════════════════════════════════════════════
↓
↲
════════════════════════════════════════════════════════════════════════
↓
┆1a┆┆1a┆(KSA751)↲
↲
The KSA is simply the printed circuit board where thne, of the scanlines S0-S12 an