-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathIBM LPFK on a Serial Port.html
executable file
·164 lines (133 loc) · 5.51 KB
/
IBM LPFK on a Serial Port.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- saved from url=(0045)http://www.brutman.com/IBM_LPFK/IBM_LPFK.html -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta content="Michael B Brutman" name="author">
<meta content="Interfacing the IBM Lighted Program Function Keyboard (LPFK)" name="description">
<meta content="IBM,LPFK,6094-020,Lighted Program Function Keyboard,Serial Port" name="keywords">
<title>IBM LPFK on a Serial Port</title>
</head><body class=" hasGoogleVoiceExt">
<h1 style="text-align: center;">IBM LPFK on a Serial Port</h1>
<img style="width: 200px; height: 319px; float: right;" alt="IBM LPFK 6094-020" src="./IBM LPFK on a Serial Port_files/LPFK_thumbnail.jpg" hspace="20" vspace="20"><br>
<p>This is an IBM Lighted Program Function Keyboard (LPFK) Model number
6094-020. It was used as an extra input device when doing computer
aided design on the IBM RS/6000 series of machines. It connected to the
machine by a special port or by the serial port. IBM also made an
attachment kit so that you could connect it to the serial port of a
generic PC.</p>
<p>The LPFK consists of 32 keys each with an LED indicator. The LED
indicator can be turned on and off by program control. Each time a key
is pressed a byte is sent to the host machine to tell it what
key was pressed. The lights have to be set from the host
machine - there is no automatic mode that turns the lights on and off
when keys are pressed.</p>
<p>Internally the LPFK is driven by an Intel 8051 microcontroller. The
circuitry and the lights pull too much power for a serial port so the
LPFK is powered by an external AC to DC 'wall wart' that provides up to
500 milliamps at 5V. They could also be powered directly from the
RS/6000 on the special port, or by a special cable from an IBM 6091
monitor.</p>
<p>Now for the fun part - here is how to make it talk when connected to
a
serial port.</p>
<p><span style="font-weight: bold;">Protocol:</span> 9600 bps, Odd
parity, 8 data
bits, 1 stop bit. No handshaking (hardware or software) is required.</p>
<p><span style="font-weight: bold;">Commands: (All commands
are shown in hex)</span></p>
<table style="text-align: left;" border="1" cellpadding="2" cellspacing="0">
<tbody>
<tr>
<td>0x01</td>
<td>Reset</td>
<td>Similar to the power on reset. Leaves the LPFK in the
'disabled' state with all indicators off.</td>
</tr>
<tr>
<td>0x06</td>
<td>Read Configuration</td>
<td>Upon getting this byte the LPFK responds with 0x03.
Helpful for
determining if the LPFK is active on a serial port.</td>
</tr>
<tr>
<td>0x08</td>
<td>Enable</td>
<td>Tells the LPFK that it may process and send keystroke
data to the host
machine.</td>
</tr>
<tr>
<td>0x09</td>
<td>Disable</td>
<td>Keyboard input is disabled. The LPFK will still respond
to Reset and
Read Configuration</td>
</tr>
<tr>
<td>0x94</td>
<td>Set Indicators</td>
<td>This command is followed by four more bytes which is a
bitmap that
represents the indicator lights on the keys. If the bit for a key is
turned on, the light will be turned on. If the bit for a key is 0, the
light will be turned off. Keys are numbered from 0 to 31.</td>
</tr>
</tbody>
</table>
<br>
<p><span style="font-weight: bold;">Responses from the LPFK:</span></p>
<table style="text-align: left;" border="1" cellpadding="2" cellspacing="0">
<tbody>
<tr>
<td>0x00 to 0x1f</td>
<td>Keystroke</td>
<td>The corresponding key on the LPFK was hit. These
responses are only sent when the LPFK has been enabled using the Enable
command.</td>
</tr>
<tr>
<td>0x80</td>
<td>Retransmit</td>
<td>The LPFK sends this if there was an error on the last
Set
Indicators command and it wants the host machine to retransmit it.</td>
</tr>
<tr>
<td>0x81</td>
<td>Ok</td>
<td>The LPFK sends this if the last Set Indicators command
was
received successfully.</td>
</tr>
</tbody>
</table>
<br>
<p><span style="font-weight: bold;">Need
a template to define your
keys?</span><br>
<br>
<img style="border: 1px solid ; width: 100px; height: 116px; float: left;" alt="" src="./IBM LPFK on a Serial Port_files/LPFK_template_small.jpg" hspace="10" vspace="10">The LPFK
was designed to be used with templates
that would define the keys depending upon which application was in use.
If you want to make your own templates, save the image to the left,
print it out, and cut out the key holes. (The image shown here is
scaled down, but if you save the image you will get the full size
version that is properly sized for the LPFK.)<span style="font-weight: bold;"></span></p>
<p><br>
</p>
<p><br>
<span style="font-weight: bold;"></span></p>
<p><span style="font-weight: bold;">
Credits:</span><br>
<br>
Thanks to a very special source where I work who had an ancient CD that
had these command descriptions in it. I had been trying to make the
LPFK talk on a serial port on and off for a year and was not making
much progress. Recently I had stumbled on the Reset and Read
Configuration commands, but it was slow and painful ..</p>
<hr style="width: 100%; height: 2px;"><br>
<i>Created August 19th, 2008, Last updated August 20th,
2008<br>
(C)opyright Michael B. Brutman, mbbrutman at gmail.com</i><br>
<script async="" src="./IBM LPFK on a Serial Port_files/analytics.js"></script><script type="text/javascript" src="./IBM LPFK on a Serial Port_files/ga.js"></script>
</body></html>