CA1098213A - Operator controlled programmable keyboard apparatus - Google Patents

Operator controlled programmable keyboard apparatus

Info

Publication number
CA1098213A
CA1098213A CA298,925A CA298925A CA1098213A CA 1098213 A CA1098213 A CA 1098213A CA 298925 A CA298925 A CA 298925A CA 1098213 A CA1098213 A CA 1098213A
Authority
CA
Canada
Prior art keywords
key
keyboard
keys
redefined
functions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
CA298,925A
Other languages
French (fr)
Inventor
Eugene Kuhar
Donald L. Smith
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of CA1098213A publication Critical patent/CA1098213A/en
Expired legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M11/00Coding in connection with keyboards or like devices, i.e. coding of the position of operated keys
    • H03M11/20Dynamic coding, i.e. by key scanning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0238Programmable keyboards
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36006A key delivers a series of key codes

Abstract

OPERATOR CONTROLLED PROGRAMMABLE KEYBOARD APPARATUS
ABSTRACT
A cathode ray tube (CRT) and keyboard display terminal are shown wherein the keyboard/display terminal is operated in accordance with the program routines of a microcontroller which is dedicated to the control of the display keyboard.
The terminal is adapted for connection with the I/O channel of a host data processing system. The microcontroller includes a read only store (ROS) which includes instruction routines primarily dedicated to the transfer of data between the host processor and the microcontroller. The micro-controller further includes a random access store which is loadable by the customer during initial program load (IPL) operation to store customer selected program routines for controlling the CRT display and keyboard and for initializ-ing tables in the store which define the customer selected character and symbol set. The tables in store are utilized to provide data for determining the functions which are to be performed incident to the depression of each key on the keyboard and since these are customer loadable, the functions of the keyboard can be changed by reinitializing the system.
The tables are also utilized to provide data which directs the execution of the various graphic, local function and interrupt functions. These tables also provide the mechan-ism whereby an operator making use of the keyboard can manually change the functions of each and every key on the keyboard except one key which is dedicated to the func-tion of redefining the functions of other keys.

Description

E~ACKGROUND OF THE INVENTION
_ .. . .
This invention relates -to programmable keyboard mechanisms and, more particularly, to a programmable CRT display/keyboard terminal with program controlled means responding to operation of keys by an operator for changing the functions of other keys on the keyboard.

BC977001 2 :

l In recent years the requirements of keyboard display users have become 50 widely varied that there has been a continuous and ever-growing requirement for greater and greater flexibility in the products being marketed. Because of the ever increasing pressures from the marketplace/
manufacturers have been increasing the flexibility of their sy~tems by providing cus-tomer programmable display terminal systems in order to provide several different customers with totally different requirements with the same basic hardware mechanism.
It is the primary object of the present improvement to further enhance these programmable display terminal systems so as to give the customer a greater degree of flexibility in tailoring standard hardware to his specific require-ments.

~L~?~

-U.S. Patent No. 4,047,161, issued on September 6, 1977 by M.I. ~avis entitled "Tas]c Management Apparatus" and assigned to the assignee herein describes a preferred form of the host processor with which the present apparatus is particularly well adapted to operate.
U.S. Patent No. 4,038,642, issued July 26, 1977 by M.A.
Bouknecht, MoI~ Davis and L.P. Vergari entitled l'Input/
Output Interface Logic for Concurrent Operations'?~ and assigned to the assignee herein describes a preferred form of the I/O devices, channel and interface with which the present apparatus is particularly well adapted to operate.

~ 9 ~t~ 3L3 _UM~`IARY Ol; TilE: lNVENTION
2 A primary object of the presen-t invention is to provide
3 a keyboard operator with greater flexibility and a sub-
4 stantially unlimited ability -to manually reprogram the key functions or groups of key func-tions which axe performed 6 by the keyboard apparatus in response to -the depression 7 of a single lcey.
B A related object is to provide the operator with the g flexibility of changiny or reprogramming the functions for each and every key on the keyboard except one 11 dedicated "de~ine mode" key which is provided for 12 controlling the reprogramming function. This define mode 13 key which is used to redefine the functions performed by 14 the other keys in accordance with the operator's desires is also used to restore a redefined key or all redefined keys 16 to their original functions.
17 It is another object to provide an improved method 18 and means for redefining key functions under programmer 19 control via IPL reinitiali~ation of the system and under manual opera~or control via the keyboard.
21 These objects are achieved in a pre~erred form of the 22 invention by providing (1) an electronic keyboard which 23 produces a multi-bit output code in response to each 24 depression of a key, ~2) a microcontroller which is dedicated to the control of the keyboard and associated 26 video display, and (3) write/write store having modifiable 27 tables directing the key function definition and execution.
28 Instructions which are stored in both a read only store 29 (ROS) and in a read write store control the functions of the microcontroller. The read write store is loaded with a Docket BC9-77-001 -5-1 plurali-ty of tables ~or controlliny the display and keyboard 2 functions. One charac~er generator table provides -the 3 matrix bit data for each of the yraphic or character 4 images which can be produced on the video display.
A group of 4 tables provides the transla-tion mechanism for each key on -the keyboard. A first one of these tables 7 is a key attribute code table which defines the type of 8 key which has been depressed; tha-t is, whether it is a 9 graphic key or a local function key, an interrup~t key or a combination of graphic and interrupt, or local function 11 and interrupt. A second table provides the actual 12 graphic codes or local function codes for each of 13 the keys on -the keyboard. A third table provides the 14 interrupt codes for those keys on the keyboard which have an interrupt unction assigned to them. Accessing of the ' 16 second and third tables is achieved in part as a result of 17 the att-ribute code in the irst table. A fourth table in ~ ~
18 the group provides the storage area wherein a series of ~ ~;
19 functions defined by other keys may be chained together for execution incident to the depression of one redefined 21 key. Access to this latter al-ternate defined code table 22 is also obtained in part by the key attribute code assigned 23 to a particular depressed key the function of which has 24 been redefined.
The ROS ins-tructions are permanently embed~ed and 26 allow a facility for communication -to and from the host 27 processor via a standard interface channel, and also allow 28 a facility via a set of channel associated instructions 29 to load the require microcon-troller instructions for -the local assignable keyboard functions and the keyboard data Docket BC~-77-001 -6-1 tables all contained in the read/write store.
2 The ROS controller instructions provide the means for 3 loading the content and order of the character image 4 buffer, which is the display system character generator.
The user loadable character generator image bufer 6 provides the user with a programmable means of altering 7 not only -the specific code assignmen-t for any particular 8 graphic image character, but also the actual screen image g pattern representation which define the video monitor screen image. The entire character generator image buffer contents 11 are loaded from an I/O device via the host processor.
12 The local keyboard functional routines are comprised 13 of a collection of fundamental display terminal o~erat~ons 14 such as tab right, cursor left, new line, set -tone ON, etc.
These functions are labeled with a number which is assigned -16 in the proper function tables to any individual key code or, 17 conceivably, to all key codes emenating from the keyboard 18 unit; The collection of local keyboard functional rou-tines 19 is theoretically infinite, but, for practicablity, is restrained to a somewhat limited list which is containable 21 ~ithin the allowable read/write instruction storage address 22 size allocated for local function routines within the display 23 terminal attachmeilt.
24 The user tables consists of a series of similar tables each of Which is based upon the maximum number of keyboard 26 codes allowed; e.g., 256 keyboard codes, derived from 8 27 keyboard data lines. Thus in the preferred embodiment 28 each user table is limited to a 256 address len~-th, one 29 table address for each keyboard scan code.

Docket sc9-77-oo] ~7~

1 ~here is one basic user assignment table, the key 2 attribute table, that defines which keyboard attributes 3 have been assigned to each and every key code. A limited 4 list oE functional display terminal keyboard attributes is as follows:
6 1. graphic keys (00) consisting of normal alpha-7 numeric and special symbols displayable on the display 10, 8 2. local function keys (20) which define local 9 display oriented operator functions such as tab right and tab left, move cursor up, move cursor down, etc., 11 3. interrupt keys (30) which cause an interrupt code ~ ' 12 to be sent to the central processing unit 1 from the ~
13 display attachment, ~ -14 4. graphic and interrupt keys (70) which normally display a graphic character and subsequently cause an 16 interrupt code to be sent to the central processiny unit, 17 5. function and interrupt keys (60) which normally 18 cause a local display oriented operator function such as tab 19 right, up cursor, etc and cause an lnterrupt code to be sent to the central processing unit, 21 6. a define key (40) which allows the local opera-tor 22 using the keybooard to redefine the function of any key on the 23 keyboard and 24 7. redefined keys (80) which indicate that particular keys have been redefined by the local operator to an 26 alternate function or string of functions.
27 rrhe key function attribute code derived from the key 28 function table is normally used by the micro-29 controller proyram to index to one of two secondary tables, the first table containing either the graphic character or Docket BC9-77-001 _~_ 1 local function code and the second table containing 2 interruptirlg codes.
3 Other display terminal attributes can be assigned 4 as the need requires. The user defined key attribute code table data content is made up frorn the display 6 terminal keyboard attribute codes listed above for -the 7 entire 256 allowable key codes. This table directs the 8 controller ins-truction sequence to index to other user 9 assignable tables, as required, to obtain other user defined data, such as the character code for a graphic key, the 11 unction code for a local function key and the interrupt 12 code for an interrupt key.
13 The following description is an example of the "single 14 -thread" path for -tile major programming sequence steps required for entering and/or indexing into the various user defined 16 tables in response to the depression of a key having a scan 17 code of F9 (~[ex).
18 The microcontroller instruction proyram detects the 19 key depression and accepts the associated key code data.
~rhe key function attribute table is indexed to 21 address XF9. The contents of -that address is an 04 (}lex), 22 indicating a graphic character and interrupt attribute pre-23 assignment for the scan code of F9.
24 The graphic code/local function code table is indexed to YF9 (~lex). The contents of that address contain a code 26 of Cl (llex), which is the FBCDIC data for upper case "A".
27 The character code (Cl) is entered into the display refresh 28 buffer as graphic screen informa-tion.
29 The interrupt table is indexed to ~F9 (~iex). The contents oE that address con-tains a code of 03 (~ex), which Docket BC9 77-001 -9-1 is an interrupt code. The microcontroller subsequently 2 interr~pts the host processor with an interrupt code of 3 03 to indicate which key was actuated.
~ The primary improvement lies in the operator programmable keyboard feature which is a local keyboard 6 function that allows the keyboard operator to redefine 7 the attribute of any key, which had previously heen defined ~;
~ by appropriate assignments in the user tables allowing the 9 operator to select, from the full set ~library) of available and assigned key functions, any sequence of those same key 11 functions, to be assigned to any particular keyboard key 12 position.
13 This feature requires the introduction of a mode of 14 opera-tion to the display terminal system, called key definition mode. Xn this mode, the local keyboard operator 16 defines the sequence of local key functions tha-t is to be 17 assigned to any particular selected key. Once the sequence 18 of functions has been defined the operator exists the key 19 definition mode, and any subsequen-t depression of the selected (re-defined) key causes execution of the total 21 sequellce o~ local key func~ions -that were operator assigned 22 for that key in the order of operator re-assignment. ~ -23 Any key on a given keyboard layout may be reassigned, 24 excluding -the key definition mode key. Thus, one key on a given keyboard layout must be user selected to cause the 26 display terminal system to enter the lcey definition mode.
27 This selectio3l is accomplished by pre-assignment of that 28 user selected key position, in the user key attribute 29 table, to the local function called key definition mode. Ihat user selecte~ and assiyned key, once assigned, is reserved Docket BC9-77-001 -10~

1 and not reassignable by the operator, except through external modification oE the tables and a reload of the re~d/
write store instruction data. That same user selected key is used as the key to exit the key definiton mode.
The following sequence of steps redefines the function of a key:
Depress the key definition mode key to cause the controller to enter the key definition modeO
Depress the selected key to be redefined.
Depress keys whose functions are to be chained together for the redefined key in the se~uence of desired order of functional execution.
Depress the key definition key. This second key depression causes the controller to exit the key definition mode.
To return a redefined key to its original assigned function, the operator depresses the key definition mode key to enter the key definition mode, depresses the key that is to be returned to its original function, and depresses the key definition mode key to exit the key definition mode.
To return all redefined keys to their original key functions simultaneously, the operator depresses the key definition mode key to enter the key definition mode and again depresses the key definition mode key to exit the key definition mode.
In the preferred embodiment, the function of a key is redefined as described above by first depressing the define mode key. The key attribute code table is accessed to determine that the attribute code 40 is present and the system is conditioned to be in the defined mode.

a~

1 Wherl t}-e microcontroller routine detects the next 2 depressecl key, it ayain accesses the l;ey attribu-te code 3 table to determille the attribute code vf the key to be 4 redefilled. It searches -the alternate define table for the next available address in the table which is empty 6 and available for use. This next address is stored into 7 the graphic character/local function table at the position 8 assigned to the key which has been depressed for re 9 defini-tion. The graphic character/local function code of the key to be redefined is rnoved from the graphic 11 character/local function table into the second free position 12 which 11aS been found in the alternate define table. In 13 addition, the original key attribute code of the redefined 14 ~ey and its key code are also stored in the alternate define table.
16 As each subsequently depressed key other than the 17 define mode key is sensed by the microcontroller, its 18 key code is stored into the next available position in the 19 alternate de~ine table in the sequence in which the keys are de~ressed. When the define mode key is ayain depressed, 21 its key code is entered in-to the alternate define table 22 completing the data which has been stored for the redefined 23 key. When the redefined key is later depressed for execution 24 o~ the sequence of functions which have been reassigned to it, the key attribute code table is accessed at the position 26 which i5 assigne,d to the redefined key. The redefined 27 attribute code key of 80 is cdetected and rnaking use of the .
2B graphic character/local function table to gain access to 29 the index address into the alternate defined table each of the key codes assig~ed to the redefined key is accessed Docket ~C9-77--001 -12-1 in sec~uence and its function is executed. This process 2 continues until the define mode ke~y code is accessed and 3 detected in ~he alternate define table to determine the 4 end of the functions to be performed by -the redefined key.
It will be appreciated that a:Ll keys on the keyboard 6 may be redefined or rather be in their redefined conditions 7 concurrently. Obviously only one key may be redefined at 8 one instant in time.
9 Whcn a par-ticular redefined key is returned to its original function, the key attribute code and -the graphic 11 character/local function code are returned to their original 12 locations in their respective tables. In addition, -that 13 portion of the alternate define table in which data for 14 the redefined key has been stored is reinitialized and the entire table is compressed to eliminate spaces between 16 redefined key data sections.
17 Other objects and features will be apparent upon a 18 perusa] of the following detailed description of the 19 preferred embodiment of the invention as is illustra-ted in the accoMpanying drawings.

Docket BC9-77-001 ~13-1 ~RlEF Dl:,~C}~r''1'l0~ Ol DI~WINGS
2 FIG. 1 diagra~unatically illustrates a data processing 3 system incoryoratiny the present improvement.
4 FIG. 2 diagrammati.cally illustrates a preferred form of the control apparatus within which the present improvement 6 is incorporated.
7 FIG. 3 is a schematic diagram of a preferred data 8 flow of a microprocessor used to implement the present 9 improvement.
FIGS. 4A, 4B illustrate a preferred form of the -~
11 keyboard/display circuits used to implement the presen-t 12 lmprovemen-t.
13 FIG. 5 is a fragmentary view of the character generator 1~ of FIG. 4B.
FIG. 6 illustrates a field map for an exemplary 16 instruction set for the microprocessor of FIG. 3~ ~ ' 17 FIG. 7 is a map of the read/write store associated wlth 18 the microprocessor and illustrates tables used to implement 19 the present improvemen-t.
FIG. 8 is a map of the data address reyister ~I)AR) used 21 to access the read/write store.
22 FIG. 9 illustrates diagrammatically the entry of a 23 graphics character on the display incident to the depression 24 of a key on the keyboard.
FIG. 10 illustrates the table entries associated with 26 a redefined key; and 27 FIGS. 11 - 15 are flowcharts illustrating a preferrèd 28 program method and means for implementiny the present 29 improvement.

Docket BC9-77-001 -14-1 DESCRIPTION OE_TII P _ ERRED E_BODI~IENT
2 FIG. 1 is an overview block diagram of a preferred 3 system within which the present improvement is incorporated.
4 The central processing unit (CPU), or processor 1, executes instructions and controls activity on the primary 6 interface of the system, the input/output (I/O) Interface 2.
7 A plurality of input/ou-tput (I/O) devices 4-1 to 4-n 8 are coupled to the I/O interface bus 2 by ~ay of respective 9 device attachments 5-1 to 5-n. The device attachments 5-1 to
5-n, together with the CPU 1, control the transfer of data 11 between -the CPU 1 and the I/O devices, 4-1 to 4-n. It will 12 be assumed that the I/O device 4-n is a keyboard/display 13 terminal.
14 The CPU ] is coupled to a main storage 8 via a data bus 15 ~ 3 and control bus 12.
16 An operator console 6 is coupled to the ~CPU 1 by way of 17 an interface bus 7.
18 The interface bus 2 includes an I/O address bus 2-1, an 19 I/O data bus 2-2, and an I/O interface control ancl status bus 2-3 as shown in FIG. 2.
21 l'he display terminal attachment 5-n (r~'IG. 2) includes 22 channel interface electronics 13, CRT display and keyboard 23 electronics 14 and a microcontroller 15 with an associated~
24 read only store (ROS) 16 and a random access (read/write) store 17. The channel interEace electronics 13 is coupled 26 to the central processing unit 1 by way of the interface 27 bus 2. The ch~nnel interface electronics, the CRT display 28 and keyboard electronics 14 and the microcontroller 15 are 29 interconnected by means of an I/O data out bus 18, an I/O
data in bus 19 and an I/O address bus 20.

Docket ~C9-77-001 -I S-1 Tile instructions for all of the routines executed by 2 the microcontroller 15 are stored in the ROS 16 and the 3 random access store 17. Those instructions which control the 4 transfer of data between the attachment 5-n and the CPU 1 are stored in tlle ROS 16 because they do not change in the
6 preferred embodiment described herein. Those instructions
7 which are executed to con-trol the display 10 and the key~oard
8 11 of terminal 4-n are stored in the random access store 170
9 All functions which are performed in the attachment 5-n and the terminal 4-n are controlled by the microcontroller 15 in 11 accordance with instructions in the stores 16 and 17 with the 12 exception of the continuous scanning of a refresh buffer 30 13 ~FIG. 4A) and an associated character yenerator 31 ~FIG. 4B) 14 to continuously write data onto the screen oE the CRT
display 10.
16 The CRT display and keyboarcl electronics 14 is coupled to 17 the display 10 by way of a composite video line 21. ~he same 18 electronics 14 is coupled to the keyboard 11 by way of a data 19 bus 22 and a strobe line 23.
The microcontroller 15 is shown in greater detail in 21 FIG. 3. The microcontroller 15 is of conventional construction 22 including basic timing 47 and cycle controls 45 for executing 23 the required sequences of events, a ROS 16 and a read/write 24 store 17 for holding sequential instruction routines, an operation regis-ter 44 for decoding the instructions, and a 26 storage address register (SAR) 62 for addressing the ROS 16 27 and store 17. It also contalns an instruction address 28 register (IAR) 60 and an incrementing register 68 which 29 increments addresses by 1. It also contains an arithmetic and logic unit (ALU) 35, a data address register (DAR) 51 Docket BC9-77-001 -16-~3~3 1 and a general wo~king register stack 50. ,~lso contained is 2 a backup re~ister 65 and a link register 63 which provides 3 one level of instruction nesting.
4 The instructions contained in the ROS 16 and the instructions that are user loade~ into the store 17 will 6 be described briefly. The ROS 16 contains a fixed set of 7 sequential instructions that con-trol loadiny of user variable 8 instruc-tions into the store 17 from the CPU 1 via the 9 channel 250, the interface bus 2, electronics 13 and the microcontroller 15.
11 The loading of data under control of software from the ~ -12 host CPIJ 1 to the s-tore 11 is achieved in a conventional 13 manner. For example, assume one of the I/O devices, such 14 as device 4-1, is a magnetic disk which includes on it an initial program load (IPL) program and the data to be 16 loaded into store 17. The CPU 1 :initiates the IPL proyram 17 causillg the clevice~attachment 5-1 to initiate reading of the 18 IPL program from the device 4-1. I'he data is transferred 19 from the device 4-1 to main store 8 b~ way of the attachment ;
5-l, the inter~ace bus 2, and the CPU 1. A portion of the 21 data loaded into main store 8 includes the [~rogram routines 22 which are to be stored in random access store 17. These 23 programs are therefore transferred from main store 8 to -the 24 device attachment 5-n by way of the interface bus 2. In order to achieve this loading of the random access store 26 ]7, it is necessary to utili~e the microcontroller 15 and 27 ~OS 16. The instruction sets which are required for the -28 transfer of data between the central processing unit 1 and 29 the microcontroller 15 are permanently stored in the ROS 16.
Since this is not an essential part of the invention being Docket BC9-77-001 -17-2~ ;

]. claimed herein, and .since the loading of storage devices 2 during IPI. procedures is well known, it will not be 3 discussed in further detail herein. The IBM TEC~INICAL
4 DISCL,OS~RE B~LL~TIN, Vol. 19, No. 9 (February 1977) pages 3278-3280 describes such a procedure.
6 The microcontroller 15 also includes a pair of input 7 registers 36 and 37 coupled to the ALU 35 hy way of output 8 busses 39 and 40. The output of the registers 36 and 37 can 9 also be gated to the I/O data bus 18. The output 49 of the ALU 35 is coupled to the working register s-tack 50 and to ll the data address register stack 51. The outputs of the 12 registers 50 and 51 are coupled to inputs of the 13 registers 36 and 37 by way of outputs 52 and 53.
14 The I/O data input bus 19 forms additional inputs to the registers 36 and 37. A fur-ther input to the registers 16 36 and 37 is provided by the outputs 41 and 42 o~ an assembler 17 38. The assembler in turn i.s coupled to the output 43 of 18 the combination ROS and read/write stores 16, 17.
19 It will be noted that the ROS 16 and store 17 are treated as a common store with a common data input/output 21 and common addressing. Thus, a single data input to 22 the stores 16, 17 is provided by the registers 36 and 37 by 23 way of the I/O data out bus 18. The stores 16, 17 have a 24 single data output bus 43 which is coupled to the assembler 38 and to the operation register 44. Addressing for -the 26 storage 16, 17 is provided by the storage address register 27 (SAR) 62. During normal accessing of se~uential instructions 28 for execution, each address stored in the SAR 62 is applied 29 to the addressing circuits (not shown) of store 16, 17 and also to the incrementer circuit 68. The il~crementer 68 Docket BC9-77-001 -18-2~

1incremerlts the address received from the SAR 62 and places ~ :
2 it i.n the instruction address register (I~R) 60 from which 3 i.t is then ~ated back into the SAR 62 at an appropriate 4 time to access the next instruction.
Another input -to SAR 62 is.provided by an output 71 of 6 the DAR 51. This address is derived from DAR registers 7 0-2 (FIG. 8) and is utilized by the SAR to access data (as :~
8 opposed to instructions) from the store 16, 17. Another input ;~
9 to the SAR 62 is derived from the operation register 44 by way of its output 70 to form partial addresses during branch 11 operations.
12 In the event of a branch and link operation, the address 13 stored in the IAR 60 is transferred to a link register 63 and 14 from there to a backup register 65. The link register 63 provides a first level of subroutine nesting and the backup 16 register 65 provides a second level of subroutine nesting~ : ~
17 When control is returned to -the first level of nesting, the . :
18 linlc register 63 provides the input to the SAR 62 via its 19 output bus 64. When return is made to the second level of nesting, the address in the backup reyister 65 is 21 transferred to the link register 63 via its output bus 66 22 and from there it is -trans~erred into the SAR 62.
23 The register stack 50 provides -the local or working 24 register storage for the microcontroller. For ease of e~planation, ga-ting circuits have not been illustrated since 26 these details are old and well known in the art.
27 l`he display and ke~board electronics 14 of FIG. 4A, 28 4B will now be described in greater detail. When a key 11-1 29 to ll-n on the keyboard 11 is depressed, the corresponding unique 8 bit key code is applied to the bus 22 of F:[G. 4B

Docket BC9-77-001 -19-~ .. . .

~ ell the k~y is depresscd, a strobe pulse is also ~p~lied to 2 a keyboard strobe line 23 which sets a keyboard strobe la-tch 3 81 and also sets the latch 80 to store the key code from 4 bus 22. A sense gating line 82 is derived from the mi.cro-controller when it is searching for a key which has been 6 depressed. Simil.arly, a pulse on the sense line 83 w.ill 7 gate the output of the keyboard latch 80 to the DBI 19 ..
8 when the microcontroller is determining the identity of a 9 depressed key, after the microcontroller has sensed a keyboard strobe pulse at the output of -the strobe la-tch 81.
11 I'he writing of charactcrs on the screen of the CRT
12 clisplay 10 is under the control of the refresh buf:Eer 30 and 13 a character generator 31. The bit patterns to be applied 14 to the display 10 are stored in the character generator 31 (FIG. 5) whereas the identity of each character to be written 16 in a specified portion of the display is stored in a 17 correspondiny location in the refresh buffer 30. A storage 18 posi-tion or location is provided in -the refresh buffer 30 19 for each character position available on the screen of the display 10. The output of the character gellerator 31 is 21 coupled to the CRT video line 21 by way oF a polarity 22 hold latch register 85, a serializing shift register 86, 23 and alternatively gates 87 or 88. When 7 row bits of 24 information representing one line of one character are transferred from the character generator 31, they are 26 -transferred in parallel to the 7 bit register 8~. Each of 27 these bits is then serially shifted from the leftmost bit 28 to the rightmost bit (FIG. 5) from the shift register 86 into 29 the gate circuits 87 or 88 depending upon whether the output signal is to be dim or bright. Suitable blanking pulses Docket ~C9-77-001 -20-1 are applied to the gates ~7 or 88 via OR circuit 98.
ReEerence is directed to FIG. 5 which shows the storage of image bits in the character generator 31 and the addressing of the generator 31 to select each 8 bit row of bits.
The generation of characters on khe CRT display is well known, it being described in detail in many publications;

e.g. the IBM TECHNICAL DISCLOSURE BULLETIN, Vol. 19 No. 9 (February 1977) pages 3260-3265, and Vol. 17 No. 5 (October 1974~ pages 1273, 127~. Character generation will, there-fore, be described only briefly.
Timing for the CRT display and the circuits of FIGS.4A, 4B is provicled by an oscillator 105, a ring counter 106, a character counter 107, horizontal and vertical SYNC
controls 100 and 101, row and line counters 108 and 109, line decode 130, binary counter 131, AND gate 132 and timing circuit 133, which timing circuits are of conventional con-struction and well known.
In order to complete one frame of writing on the display 10, the entire refresh buffer :30 must be scanned once. The characters comprising the f:irst (topmost line) to be displayed are accessed in order from left to right ko address in sequence the corresponaing character data in generator 31 (FIG. 31) to read out the character bits in row 000 of each character. This procedure is repeated for each row 001-111 to complete the first line of characters. Then the second line o~ characters is formed and so on until all lines are formed.
Each of the character generator 31 locations is scanned in sequence to access the character image bits of each character which is to be written in sequence on the screen 32~
1 row by row ancl :Line by line. However, at any one instant 2 in time only one row of bits within a single character 3 matri~ will be generated. Thus, row counter signals on 4 line 91 are~ applied to the preload character generator gates 90 anci are concatonated with the derived character 6 address bits from the polarity hold register 89 to 7 form the full character generator address -to fetch eaeh row 8 of the character image bits any one instant in time ~see 9 ~IG. 5). ~s the ras-ter scans the display sereen row by row, the row counter is incremented by one for each row sean so 11 that the next row of image bits will be selected from the 12 character generator 31 for application to the composite 13 video line 21.
14 The polarity hold register 89 receives from buffer 30 each address for seleeting character bits from character 16 generator 31 and also includes a storage location for a protect 17 bit which causes -the display data to be dimmed when protected 18 formatted screen presentations are being written on the 19 display 10. Thus, -the protect bit is applied -to the gating cireuit 87 by way of a latch 92 and a delay circuit 93.
21 Conventional cursor controls are applied to the composite 22 video line 21 by way of a con-trol circuit 95 and a 23 delay circuit 96. Blanking and unblanking of the video display 24 is provided via a latch 97 and an output driver 98. The out-put of the driver 98 is applied to inputs of the gating circuits 26 87 and 88.
27 Conventional vertical and horizontal sync controls 28 are applied to the line 21 by way of a horizontal sync control 29 eircuit 100, a vertical sync control circuit 101, synchroniziny gates 102 and line 103. The vertical and horizontal Docket BC9-77-001 -22-1 synchro~ .ing sigllal con~rols as well as the other ~iming 2 con~rols of the clisplay and keyboard electronics is provided 3 by the ].6 Mllz~ oscillator 105, the output of which is 4 coup].ed to the ring counter lOG which is in turn coupled to the character counter 107. The character counter 107 is 6 coupled to the row counter 108 which is in turn coupled -to the 7 line counter 109. Horizontal sync control 100 is controlled 8 by the character counter 107 and the vertical sync controls 9 101 are controlled by the line counter 109. ~utomatic video lQ blanking during the retrace periods is provided via -the video 11 blanking circuit 110 which has an input from the outputs 12 of the horizontal sync control 100, the vertical sync control 13 101 and the row control 111. The output 112 of the video 14 blanking circuit 110 is applied to the driver 98. These controls are conventional and well known in -the art.
16 When graphic character data is to be entered into the 17 refresh buffer 30 for writing new information on the screen 18 of display 10 the data is entered via -the DBO bus 18 and the 19 data register 120, the output of which forms one input to the refresh buffer 30. The protect bit is entered into the 21 refresh buffer by way of the protect latch 121, the output of 22 which forms a data inyut ~.o the buffer 30. During loading of 23 the refresh buffer 30, the buffer acidressing is provided 24 via the ~ register 122 and the Y register 123. These addresses are also received over the data bus out 18 which forms an 26 input to -the registers 122 and 123. To load the registers 27 122 and 123 yating signals from the microcontroller via the 28 address bus 20 and gates 139, are applied to the lines 125 and 136.
29 The output of the X and Y registers are coupled to the refresh buffer 30 by way of gating circuits 127. Another input 128 of Docket E3C9-77 001 -23-1 the yate l27 is provided by the microcorltroller when it is 2 desired to load or read the refresh buffer 30.
3 The addressing of the refresh buffer 30 when it i.s being 4 cyclically scanned to write characters on the screen of the display 10 is provided by line decode 130, binary counter 6 circuits 131 and AND gates 132, completely independent 7 of the microcontroller 15. The momentary value of counter 8 131 is compared with the address values of registers 122, 123 in 9 compare cursor circuit 134.
Addressing of the regis-ters in FIGS. 4A, 4B and other 11 gating functions are provided by the outputs of the address 12 control yates 139. The address bus 20 from FIG. 3 and the ~ 13 control strobe line 138 and the I/O Reset line 137 from : 14 controls 45 of FIG. 3 provide the inputs to gates 138.
~ 15 Status of certain circuits of FIGS. 4A, 4B are derived .~ . . .
16 via gates 140 144 inclusive.

i 28 Docket BC9-77-001 -24-] ~`TG. 5 shows the addL-essillcJ schcme as well as the 2 display inlac3e bits for the character yenerator 31 of 3 FIG. ~B. I,ight bit character code addresses are provided 4 for accessing each of the character image bit matrices. Tl-e character imac3e matrix is arranged in 8 rows of 7 clata bits each.
6 Logic~l 1 bits in the image matrices are those which produce 7 the characters on the display 10. Thus, the image matrix 8 comprised of all æeros or the character code OO produces 9 no image on the display 10, whereas the image matrix for the character code Ol produces a numeral 1 on the display 11 when the image bits are combined with the unblanking pulses.
12 Provision is made for a maximum of 256 character images.
13 FIG. 6 is a map illustrating the fields which are 14 provided for the instructions in -the instruction set available to the microcontroller 15. The various operations listed 16 in FIG. 6 may be executed in response to the decode of the 17 OP fleld. Various arithmetic and logic functions illustrated 18 in FIG. 6 may be executed by the microcontroller 15 in 19 response to the decode of the ~LU field during certain of the instructions. Alternatively these A~.U fie]d bits are used as a 21 part of the branch address for certain Ot}ler types oi instructions.
22 I/O device addresses are derived from the L/O address field; and 23 duriny register operations the two source adclresses and the 24 destination address are derived from the respective fields shown.
26 FIG. 7 is a map of the read/wri-te store 17 of FI~S. 2 27 and 3. The store 17 includes three user loadable tables, each of 28 which have 256 locations, namely the key attribute table A, 29 the graphic code/locaL function code table ~, and the interrup-t code table C. An alternate define code table D

Docke~ J3C9-77-OOl -25--1 stores clata wlllch is required for rede~ining the 2 functions to be executed by keys on the keyboard 11.
3 The user loadable instruction routines for graphics, 4 functions, local keyboard functions and interrupt functions are stored in the low order locations of store 17. This 6 area also provides the working storage. In addition to the 7 graphics, local function and interrupt routines being 8 user loadable, the tables A, B and C are also made user 9 loadable to provide grea-ter flexibility to the keyboard display terminal equipment. ~ntries are made to the 11 alternate define code table D by the terminal operator when 12 manually changing the functions of selected keys.
13 A map of the data address register (DAR) stack 51 is shown 14 in FIG. 8. D~R registers 0, 1 and 2 are used to hold the address for accessing store 17 for data during any keyboard functional 16 activity routines executed by the microcontroller (lS).As will 17 be seen below, DAR registers 3, 4 and 5 are used to store next 18 available addresses for table D during the redefinition of key 19 functions and during the execution of redefined key functions.
-20 DAR reyisters 6 and 7 are used for tempol-ary storage of key Zl codes. D~R regis-ters 8 and 9 are used for tempora~y storage 22 of key attribute codes. DAR registers 10 and 11 are used 23 for temporary storage of graphics code/local function codes.
24 DAR registers 3-11 are preferably dedicated to the functions described.
26 DAR register 15 is dedicated to defining controller 15 27 "states" associated with the process of redeEining the function 2~ of a key, and the execution of redefined key functions and the 29 reskoration of redefined keys to their original functions.

~ocket BC9-77-001 -26-~lHE INS'l'RU(`'l'ION 1~1.01~ D ~AGI~AI`~S 01 I:'IG~ 1.6 2 The [low diagrallls of FlG. 1:l - 16 will llOW be described.
3 These flow charts show ger,erally the steps that are taken by 4 the program instruction routines to respond to -the keyboard 11 and to control the display. Several major functions 6 pertinent to the present improvement are illustrated in the 7 flow charts by the use of numerals I - VII for ease of tracing ~ of the functions. These seven functions are:
9 I Redefine mode key II Next key to be defined 11 III l)efine lcey functions 12 IV ~nd define mode 13 V Redefined key execution 14 VI Restore single redefined key VII Restore all redefined keys 16 sy way of example, the program steps which are 17 illustrated in the upper half of FIG~ 11 are general 18 instructions steps and relate to all of the seven functions 19 defined above. Therefore, I - VII are shown at the exi-t point of each of the program steps indicating tha-t all 21 seven functions follow this routine~
22 rL~. 11 illustrates the main line instructioII flow 23 diagram which is continuously being executed in a clo~ed 24 loop format. Selected events such as the detection of a key depression and the like are being 26 monitored. Thus startlng at the top of FIGo 11~ the 27 first block is the start of the program and the first 28 significant program step is -the reading and executing 29 of instruction routines such as sensing, testing and various service functions that are required in typical Docket BC9 77-001 -27-q~3Z~

1 keyboard display terminals. ~any of these functions are of-ten referred to as housekeeping routines. Upon an exit from such routines, the mainline program sends a pulse via line 82 to the keyboard strobe latch 81 in FIG~ 4A to determine whether or not an operator has depressed one of the keys, In the event that a key has been depressed, the strobe latch output is gated on to the DBI bus 19 and is stored into the register 0, bit 1 of the working register stack S0. But whether or not there is a data bit latched up in the latch 81, the program continues to the next step where it reads out the contents of register 0 of stack 50 and checks bit 1 thereof for a logical 1 condition. In the event that it detects no logical 1 condition, the program is returned to the start condition as shown.
However, if a logical 1 bit is detected in the bit 1 position of stack register 0, the program continues on to the next sequential step to send a sense pulse to the key-board register 80 via line 83 to gate the contents of the register 80 to the DBI bus 19. The contents of this regis-ter are routed via the DBI bus 19 into the A and B registers36, 37 and thence into the DAR registers 6 and 7 of the stack 51. Bit 1 of the working register 0 is reset.
We now have the key code of the depressed key of the keyboard 11 stored in the stack 51. The program forces a constant "X" into the DAR register 0 and transfers the key code from DAR registers 6 and 7 to DAR registers 1 and 2.
It then accesses the key attribute table A of store 17 using the address from DAR registers 0, 1 and 2O The key attribute code derived from table A is stored in 1 DAR registers 8 and 9O ThP program then forces a second constant "Y" into DAR register 0 and uses DAR registers 0, 1 and 2 to access the gxaphics code/local function code from table B in store 17. This code which is accessed from store 17 is transferred to the DAR registers 10 and 11.
The key attribute code in DAR registers 8 and 9 is then examined to determine whether or not it is the define mode key "40". The execution of functions identified above by I, IV, VI, and VII re~uire the detection of the define mode attribute code at this point in the routine. These func-tions will be described relative to the subroutine SUBR 1 of FIG. 12 below.
Assuming that functions defined by II, III or V are being executed at the moment, the test on the attribute key will indicate that it is a key other than the defined mode key and the program will advance to the next sequential step. Bit 1 of DAR register 15 is tested for a logical 1 condition to determine whether or not the apparatus is already in the define mode. If it is in the define mode, the program branches to subroutine 5UsR 3 in FIG. 14 and this will be described in detail below with respect to function II and III. In the event that bit 1 in the DAR
register 15 is a 0, the mainline routine continues on to the next sequential step. At this point the key attribute code in DAR registers 8 and 9 is again tested to determine whether or not the code is a redefined key code of ~1ao~. In the event that the attribute code is for a redefined key, the mainline routine branches to subroutine SUBR 4 of FIG.
15 which will be described in greater detail below with 3~

1 respect to function V. In the event that the attribute key is otller than "80", then the mainline routine continues on 3 to the next sequential step~
4 ~t this point, the mainline program has determined t,hat the ke~ which has been depressed has no-t had its function 6 redefined and therefore the program can execute the routine 7 for normal handling of the function assigned to that particu-8 lar key. The steps which are executed to achieve this normal 9 key handling function will be described in greater detail below with respect to an example shown in FIG. 9.
11 The mainline routine then continues on to the nex-t 12 sequential step in which bit 0 of the DAR register 15 is 13 tes-ted for a logical 1 condition. This test is required 14 as a result of a return from the subroutine SUBR 4 of FIG. 15.
This test determines whether or not the apparatus is in the 16 define e~ecute mode of operation. In the event it is in this 17 mode of operation, a branch is made to the subroutine SUBR 5 18 of FIG. 15. In the event that bit 0 of D~R register 15 is 19 a logical 0, a branch is made back to the start of the mainline instruction routine.
21 The subroutine SUBR 1 of FIG. 12 will now be described, 22 It will be recalled that the mainline program branched to 23 this subroutine when -the define mode key "40" was detected.
2~ The first step in SUBR 1 is to test bit 1 of D~R register 15 ~or a logical 0 condition. The objective of this -tes-t 26 is to determine whether or not this is the first time during 27 the mainline routine that the define mode key has been sensed 28 without taking consequent action~ If a logical 1 state is 29 detec-ted, -the subroutine branches to subroutine SU~R 2. In the event that a logical 0 condition is detected, the Docket BC9-77-001 -30 2~

1 subroutine Inoves to the ne~:l seq~erlticll ste~. In this 2 step a logical 1 bit i5 set into bit 1 of the DAR register 3 15 and the subroutine moves on to the ne~t sec~uential 4 step.
It will be notecl that at this point in the instruction 6 routines the mainline ins-truction routine has determined 7 that the define mode key has been depressed and subroutine 8 1 has determined that no subsequent action has been taken yet.
9 The next step to be performed is -therefore a search of the alternate define table B for a next available empty address.
11 The subro~tine starts reading a-t the beginning address WOO
12 of table D, reads out the contents. If the contents are 13 determined to be the define mode key code E3, then a bit 14 is set in one of the working registers of stack 50. The lS address in DAR 0, 1 and 2 which is used for accessing 16 table l~ is incrementecl by 1 and the contents of the next 17 table D location are accessed. If the contents of this 18 next 1oca-tion are (OF), then arlother logical bit is 19 entered into ano-ther position of the same working register as was used after detecting the define mode key code ~3.
21 This working reqister is then reac~ out and the 2 bit 22 positions are checked for logical ls. In -the event tha-t 23 logical 1 conditions are found in the preselected locations ~.
24 of the working reyisters, the first available address in table D has been four.d. This address is stored in DAR
26 registers 3, 4 and 5. In the event that the con-tents of 27 the second location in table D were any value o-ther than 28 OF, the logical 1 bit set in the working register for 29 the define mode detection as described above is removed from the register. This sequence of operations continues Docket sC9-77-001 -31-2~3 1 until 2 sequential locations oE table D are ~ound to contain 2 "E3" followed by OY are detected. The second oE the 3 two locations defines the next available table D location 4 which can be used for redefining the function of the next key to be cleE~ressed by the operator.
6 If during the search of -the alternate define table D
7 for a next available address the address limit of the 8 store 17 is exceeded, this condition is de-tected and the 9 operator is alerted. To achieve -this function, each time the address to the define table D is incremented, a test 11 is made to determine whether or not the address value 12 exceeds the ma~imum storage address value.
13 ~ssuming that the address value of the store 17 has 14 not been exceeded, the subroutine SUBR 1 wi]l save the next available address at DAR registers 3-5. The sub-16 routine then branches to the start of the mainline routine 17 awaiting the depression of the next key which is a key to 18 be redefined.
19 As described above, with respect to SUBR 1 of FIG. 12, a brar,ch is made to subroutine SUBR 2 of FIG. 13 in -the 21 event that the first time latch had been in its logical 1 22 state when the define mode key was detected by the mainline 23 routine. The first step in subroutine SUBR 2 is to tes-t 24 bit 2 of DAR reyister 15 for a logical 0 condi-tion. This determines whether or not the redefined key latch has already 26 been set, thereby indicating whether or not an attempt is 27 being made to terminate redefinition of a ]cey or to return 28 one or more keys to their original func-tion. In the event 29 that the redefine key latch is in the logical 1 state, a branch is made to a step wherein a test is macle to determine Docket BCg-77-001 -32-1 whether or rlot we are at~en~L~ing to ret~rn a single key to 2 its original function or whether we are terminating the 3 redefining of the function for that key. 'rhus, bit 3 of D~R
4 register 15 is tested for a logical 1 condition. If it is in the logical l`condition, the single key which has been depressed 6 is returned to its origillal condition. If the bit is a 7 logical 0, we store the define mode key code at the next 8 address in table D. This indicates the end of the re-9 definition of a key.
If when bit 2 of the DAR register 15 ~as tested, it was 11 in the loyical 0 state the program subroutine advances -to 12 the next sequential step which causes restoration of all of 13 the redefined keys on keyboard 11 to their original functions.
14 This function will be described in greater detail below. rrhe subroutine then advances to the next sequential steps which 16 are characteri~ed by resetting of bits 1 and 2 of DAR register 15 17 to a logical 0 state.
18 As described above, a branch is taken -to subroutine ' 19 SUBR 3 of FIG. 14 when a key other than the define mode key has been depressed and when we have determined that we are 21 in the define mode oE operation. 'rhe Eirst step in sub-22 routine SUBR 3 is to test bit 2 of DAR register 15 for a 23 logical 0 state to determine whether or no-t the key to be 24 redefined is the one -that has been depressed. In the event that this bit is a logical 1, then bit 3 of DAR register 15 26 is reset to 0, the key code of the depressed key is stored 27 at the next available address in the alternate define table D
28 and the next available address for accessing table D is 29 incremented by 1 and saved in DAR registers 3 - 5.

Docket BC9-77-001 -33-This aclcl3 CSS is checke d against the ma~Yi~.lum addl~ess 2 value for the store 17 to alert the operator in the 3 event that the address space has been exceeded. In the 4 event tha~ it has not been exceeded, a branch is made to the start step of the mainline routine.
6 If bit 2 of D~R register 15 was a logical 0 indicating 7 that the depressed key is the one to be redefined, the 8 subroutine S~BR 3 advances to the next sequential step. Bit 2 9 of DAR register 15 is set to a logical 1 state indicating -that the key to be redefined has been depressed and 11 detected. Next the single key latch is set to its one 12 state by storing a logical 1 condition at bit 3 of the 13 DA~ register 15. The subroutine moves to the nex-t 14 sequential step at which a test is made to determine whether or not the key attribute code "80" is in the 16 attribute code table at the location corresponding to 17 the key which has been depressed. If the redefined 18 attribute code is found to be 80, it: indicates that 19 an a-ttempt is being made to redefine a key which is already in the redefined mode. Since the procedures 21 for restoring that key to its original function were not 22 performed by the operator, the program automatically 23 performs this function of restoring the key to its 24 original function as described elsewhere.
A next sequential step is to save the original 26 key code, key attribute code and graphics code/location 27 function code at the next available addresses in the 28 alternate define table D. A return to the mainline 29 program is then made.
As described above with respect to the mainline Docket BC9-77-001 -34-;~ 3 1 proc~ram, a branc}l is made to subroutine SUBR 4 when we 2 are not in the define mode of operation and the key 3 attribute code "80" is detected. The first step in 4 subroutine susR ~ is to set bit 0 of the DAR register 15 to a logical 1 condition to identify the fact -that ~ we are in an execu~ion mocle Eor a redefined key. l'he 7 index address for the alternate define table D is currently 8 stored in DAR registers 3, 4 and 5. The contents of 9 these registers are read out and incremenLed by a value of +3 and then stored into DAR registers 0, 1 and 2. The 11 store 17 is then accessed with this incremented address 12 in DAR registers 0, 1 and 2 to fetch the next key code in 13 the alternate define table D. The next step uses the ~ ;
14 key code taken from the alternate define table and the origin high order bits of tables A and B and fetches the 16 attribute code and the graphic/local function code of the key 17 corresponding to the key code which has been accessed from the 18 alterna-te define table D. A test is then made in the next step to 19 determine whether or not the attrihute key is a redefined key code of "80". If the attribute code is 80, the program 21 moves to the next sequential step in which the character/]ocal 22 function -table is accessed at the location corresponding to this 23 redefined key to obtain an alternate define table D index in 24 order to locate the original function associated with this redefined lcey. This s-tep will be described in greater detail below.
26 In either event, whether the a-ttribute code is "30" or not, 27 a branch is then made to ~ of FIG. 11 where normal e~ecution of 28 the key function is performed and then bits 0 of DAR register 29 15 is tested for a logical 1 state as described above.
In the event that this bit is a logical 1, Docket BG9-77-001 -35-1 a branch is maclc? to subroutine ';UBE~ 5~
2 The function of subroutine SUBR 5 of ~;'TG. 16 3 in eonjunction with subrout,ine SU~3R a o~ l'lG. 15 is to 4 sequentially fetch all of the key codes from the alternate define table D to cause execution oE the 6 eorresponding origirlal functions until the list of 7 new key codes is exhausted by reason of detecting the 8 define mode key.
g The first step of subroutine SUBR 5 is to access the next available address of the alternate define 11 table from DAR registers 3, 4 and 5 and increment this 12 address by -~1. Using this incremented address, a 13 fetch of the next succeecling key code from the alternate 14 define table is made. The next step includes a test '~
for the deEine mode key code true eondition. If 16 the define mode key code is detected, the next sequential 17 step in subroutine SUBR 5 is executed -to reset bit 0 18 of DAR register 15 to a logical 0 state and braneh to -the '~
lg start posi,tion of the mainline program of ~IG. l:L. If ~, the key code is other than the define mode key code, then -~
21 a branch is made to SUBR ~. The key code is used to 22 access the codes ~rom tables A and B corresponcling 23 to the key code which was accessecl from -the alternate 24 define table. Assuming the attribute code is not that of a redefined key, the attribute code and the eorres-26 ponding character code/local function code are used -to 27 execute the corresponding key function after a return is 2~ made to point ~ in the mainline program of FIG. 11. In 29 this rnanner a sequential accessing of key codes and execution of their corresponding functions is continued Docket BCg-77 001 -36-1 until the de~ e mode key is detected indicatillg the 2 end of the redefined series of f~nctions~

4 ~:.
:
6 i, 7 :
9 ~.

14 :
16 ;.

1 9 ~
: :~

27 ~ ~.

Docket BC9-77-001 -37-EXECUTlON O~ IGINAL KEY l'UNCTION (FIG. 9) 2 A descriptiorl will now be made of the yenera]
3 sequence of microprocessor instruction steps reyuired to access the various tables in store 17 to extract the S recluired keyboard oriented data necessary to perform a 6 de5ired original (i.e. non~redefined) operator key entry 7 function. FIG. 9 illustrates, by way of example, one 8 s~ch functiorl.
g The key code from keyboard (11) is stored, after key entry detection, in DAR registers 6 and 7 (FIG. 8).
11 Next, a constant binary value "X" is moved into 12 DAR register 0, which value represents the high order 13 address bits which point to the origirl of Key Attribute 14 Table A (FIG. 7) of store 17.
Next, the key code stored in DAR reyisters 16 6 and 7 is moved into DAR registers 1 and 2 to l~orm the 17 remainder of the address to index into Table A.
18 Next, a read memory instruction is issued by the 19 instruction sequence, which instruction utili7.es the 2U contents of D~R 0, 1 and 2 as an address pointer into 21 store 17 to e~tract the contents of Table A at that 22 address location. The contents of Table A location XF9 23 is the key attribute code "70" which is used to specify 24 to the program the category of ]cey operation to be performed for the particular key depressed. The attribute code "70"
26 defines a graphic character and interruptiny key operation.
27 The key attribute code "70" causes the program to 28 branch to a routine, which, first, determines the 29 graphic character code for the depressed key and stores that character code into the refresh buEfer 30, and, Docket BC9-77-001 -3~-1 secondly, determirles the i.nterrupt code to send to the m 2 host CPU 1. More specifically, a constant binary 3 value "Y" is moved into DAR regi.ster l which va].ue 4 defines the origin oE '~able B. The key code stored in D~R rec3isters 1 and 2 to access Table A is 6 retained to access Tables B and C.
7 Next, a read memory instruction is issued by the 8 microprocessor instruction sequence and utili~es -the 9 eontents of D~R registers 0, 1 and 2 to extract the -contents of 1'able B at address loeation YF9.
11 The contents of "Cl" of ~able B location YF9 is the 12 graphic character code corresponding to the character 13 "A". ~`he character code C1 is moved from store 17 14 into the A and ~ registers 36 and 37 and then into the data register 120 for subsequent entry into the refresh 16 buffer 30.
17 The current contents of the X regis-ter 122 and Y
18 register 123 contain the address of the refresh buffer 19 30 where the next graphic character is to be stored.
~ccorc1ingly, subsequent microcontroller instructions cause 21 the ~rap}lic code Cl to be ente:red into the refresh 22 buffer 31 for subsequent video di.splay oE the character 23 "Al' via the character generator 31 and video output gates 2a 87 and 88. Microcontroller instructions increment the contents of the ~ and Y registers 122, 123 in 2~ preparation for the next graphic character key entry 27 operati.on.
28 Immediately following the entry of the c~raphic 29 charaeter code "Cl" into the refresh buffer 30, the Docket BC9-77-001 -39-1. instruction routine causes a cons~ant Z to be moved into 2 D~R register 0 which constant deines the origin of 3 'I`able C.
4 The key code "F9" has been retained in DAR registers 1 and 2 ~o access Table C.
6 ~ext, a read memory instruction is issued by the 7 microprocessor instruction sequence using the contents 8 of DAR registers 0, 1 and 2 as an address ~)ointer into 9 store 17 to extract the contents of Table C at address location '~F9. The contents of that Table C address 11 location is the interrupt code value 03 whi.ch is moved 12 into the A and B registers 36, 37 and then into the channel 13 interface~ electronics 13 via bus 18 for subsequent transfer 14 to host processor 1.
Finally, a microprocessor instruction s-tep causes the 16 keyboard strobe latch 81 to be cleared in order to become 17 available for the next key entry input. This completes the ;;
18 operational steps required for one original (non-redefined) 19 key entry execution.
In the event -that a key is depressed and its key 21 is determined to be a local func-tion "20" i.n Table A, then 22 the microcontro.ller program will vector to the routine 23 using an index address derived from the location in 24 Table B corresponding to the depressed key to execute that par-ticular functionO For example, if a "move cursor right one ~;
26 positi.on" is to be executed when a key is depressed, the .
27 microcontroller driving program will update the X register 28 122 and Y register 123 using lines 125 and 126 and bus 18; and ~ :
29 will subsequently cause the cursor to be indexed to the right one ~osi.tion, utilizing the cursor address comparator 134 Docket BC9-77-001 _40_ and cont rol. loc]ic 95, del~ly circuit 9G, alld line 21 to 2 the displ.ay 10.

11 ~
1 2 ~ r 14 :

].8 Docket BC9-77~001. -41-REDEFINING THE FUNCTION OF KÆY (FIG. 10) ._ .
The keyboard operator can redefine the function of any key on the keyboard 11 except the define mode key. This feature allows the local keyboard operator to select, from the full set or library of available original key functions in tables B and C located in store 17 for keyboard 11, any sequence of those original key functions to be reassigned to any particular key 11 1 to ll-n. This feature xequires the introduction of a mode of operation to the display terminal 4-n and control apparatus 5-n called define mode. In the define mode, the local keyboard operator defines the sequence of available interrupt functions, local key func-tions and/or graphic functions that are to be assigned to any selected key. Orlce the sequence of key functions has been assigned to a key by the operator, the operator exits the define mode of operation; and subsequently any depres-sion of the selected and redefined key causes the execution of the sequence of functions that were operator assigned for that key and in the order of the operator assignment sequence. All or several keys on keyboard 11 may be re-defined concurrently. Depression of the define mode key causes the display terminal system to enter the define mode.
Assignment of the user selected key position to the define mode is made in the key attribute table A, which table is loaded from centra] processing unit 1 into the store 17 during IPL. A key attribute of "40" is assigned for the define mode key in the Table A. The define mode key is reserved and not reassignable except by reinitializing the tables.

The following description illustrates the sequence of 2:~3 1 events causing the redefinition of a selected key, reference being directed to FIG. 10.
When the operator depresses the define mode key, the unique key code E3 is entered into keyboard latch 80 by way of bus 22 and the keyboard strobe latch 81 is set by a signal on line 23. The instruction sequence in store 17 reads the key code into the microcontroller 15 via data bus 19; and the key code is used by the instruction routine to access the key attribute table A at location XE3. The key attribute "40" at address XE3 indicates that the define mode key was depressed. The microcontroller 15 is caused to enter a define mode of operation. The second key that the operator depresses is the key selected to be redefined~ Its key code F9 is detected in the same malmer as that of the define mode key and causes an index into the key attribute table A at location XF9.
A search i5 also made in Table D :Eor the next available .,.
address (unused), WO9 for the present example.
The original key attribute 20 originally contained in XFg of Table A and the original graphic character code or local function code D2 contained in Tahle B at location YF9 along with the key code F9 itself are stored at the next available locations W09, W09~1 and W09+2 in the alternate define table D. A new attribute code "80" is inserted at address XF9 in Table A to signify a redefined key. In addition, the index address 09 into Table D is stored at the key code address XE'9 in Table B. Subsequent key depressions by the operator dictate the sequence of keyboard functions to be assigned to the redefined key.
30As each new key function i5 assigned to the redefined key, 1 its key code is stored in Table D. Thus key codes F3, s2 and 40 corresponding to characters IBM respectively are stored at positions W09-t3, W09~4 and W09+5 in Table D when their respective keys are depressed. The operator must depress the define mode key to end the define mode of operation. The key code E3 for the redefine key is added to Table D of FIG. 7 to indicate the end of the character redefinitlon string.
Additional keys to be redefined if so desired by the operator are changed using a similar sequence of key depressions and the new sequence for each key redefinition is added to table D. Subsequently, any depression of a redefined key causes the program to index into the attribute table A which indicates that the key has been redefined and Table B is subsequently indexed to extract the index address to Table D which then defines the key codes for locating the sequence of routines to execute the redefined key functions.
The index address from Table B into Table D must be incremented by +3 to skip over the original key parameters stored in Table D to access the key codes of the new functions. The original key parameters are stored to allow the operator to restore any particular redefined key or all redefined keys to their originally assigned function.

BC977001 4~

1. EX~ I'I'ION O~ E'.tN~::D I~EY l'UNC'l`lONS (E'I(;. 10) 2 A description will now be made of the general sequence 3 o microprocessor instruction steps required to access the 4 various storage tables of FIG~ 7 to extract the re~uired keyboard oriented data necessary to perform a redefined 6 key entry function. An example is illustra-ted in FIG~ 10 7 The key code F9 from keyboard ll is stored, after 8 key entry detection in registers 6, 7 of DAI~ 51, (FIGo 8)~
9 Next, a constant binary value ~ (determined by the program) is moved into DAR register 0. This value X
ll represents the high order address bits which a~e 12 used to point to the origin of Table A.
13 Next, the key code data binary value F9, currently 14 stored in DAR registers 6 and 7, is moved into ~AR
registers 1 and 2 to form the remainder of the binary address 16 to index into Tab]e A of read/write store 17.
17 Next, a read store instruction is issued by the 18 microprocessor ins-truction sequence, which instruction l9 utilizes the contents of DAR 0, l and 2 as an address pointer into store 17 to extrac-t the contents of Table A, 21 address locatiorl XE'9. The content of this location is the 22 key attribute code 80, which is used to specify, to the 23 sequential program, the category of key operation to be 24 performed for the particular ~ey which has been depressed.
The specific example of FIG. lO has an attribute code 26 of "80" which signifies a redefined key. The rede~ined key 27 has been previously redefined by the keyboard operator, i.e.
2 8 to produce three graphic characters I, B, M in that sequence, 29 in lieu of the original function.
Docket BC9-77-001 -45-F32~3 I 'I'he key attribu~c co~e of "80" causes the }~ro~ram 2 to brallch to a specific routine which accesses 3 the three gra~hic character codes and stores them into the 4 refresh buffer 30.
More specifically, a constant ~inary value Y is moved 6 into DAR register 0, which defines the origin of Table 7 The key code binary value F9 currently stored in 8 DAR 1 and 2 is retained from the previous instructions, 9 since that c1ata represents -the same corresponding index into Table B as it does into Table A.
11 Next, a read memory instruction is issued by the 12 microprocessor instruction sequence which utilizes the 13 binary value contents of DAR registers 0, 1 and 2 as an 14 address pointer into store 17 to extract the contents of Table B at address location YF9.
lG The content of loca-tion YF9 is blnary value "09"
17 wlich is an address value used to index into the 18 alternate refine table D. The binary value "09" is 19 incremented in value by a plus "3" binary value to "12"
within the microprocessor, utilizing se~;uentlal instruc-~ions 21 well known to accornplish that purpose. Tllis address is 22 used ~o fetch the first new key code F3 as indicated 23 in the e~ample oE FIG. 10.
24 More specifically, the incremented index value 09+3 is moved into D~R registers 1 and 2 and is also saved in DAR
26 registers 4 and 5 for the next redefined ]cey code index 27 address.
28 The instruction routine causes the constant W t:o be 29 moved into DAR register 0, which defines the oriyin of Docket BG')-77-001 -46-1 T~ble D, ar-d to be saved irl DAR rec~ister 3.
2 Next, a read memory instruction is issued by the 3 mi.croprocessor instruction sequence, wllicl~ instruction 4 utilizes the binary val.ue contents (W09+3) o DAR 0, 1 and 2 as an address pointer into store 17 to extract the contents 6 of Table D at location W09-~3. The content F3 of that 7 I`able D address i.s the key code corresponding to the 8 first grapllic character "I" for the redefined key sequence.
9 The key code "F3" is moved into DAR registers 1 and 2 to form the index address into Table A.
11 The constant "X" is moved into n~R register 0, to 12 represent the highest order address bits for Table A.
13 Next, a read memory ins-truction is issued by the 14 microprocess instruction sequence, which instruction .
utilizes the contents o-E DA.R regis-ters 0, 1 and 2 as an 16 address pointer into store 17 to extract the con-tents of 17 Table A at that address location. The extracted contents 18 of "00" are t.he key attribu-te code of a graphics character 19 or symbol.
Ne~t, the attri.bute code 00 causes the program to 21 branch to a specific routine for determining the graphic ., 22 character code corresponding to key code 1~3 and for 23 storing the character code into the refresh buffer 30.
24 More specifically, the constant binary value Y is moved into DA~ register 0.
26 The key code F3 currently stored in DAR regls-ters 1 27 and 2 is retained from the previous instructions since it 28 is used to index into Table B as well as into Table A.

Docket BC9-77-001 _47_ ~3~2~L3 1 Next, a read memory instruction is issued by -the microprocessor instruction sequence, which instruction utiliæes the contents of DAR registers 0, 1 and 2 as an address pointer into storage 17 to extract the contents of Table B a-t address YF3. The contents of location YF3 is the graphic character co~e "C2" for the character "I", which code is then moved via assembler 38 J A and B registers 36, 37 and bus 18 into Data Reg. 120 (FIG. 4A) for subsequent entry into the refresh buffer 30.
The current contents of the X and Y registers 122, 123 contain the binary address of the refresh buffer where the next graphic character code is to be stored, i.e. the cursor address. Accordingly, subsequent microcontroller instructions cause the graphic character code C2 to be entered into the refresh buffer 30 for subsequent video display of the character "I" via the character generator (31) and video output gates (87) and (~8).
Subsequent microcontroller instructions increment the contents of the X and Y registers 122, 123 in preparation ~or the next graphic character key entry operation.
Immediately following the current entry of the graphics character code "I" into the refresh buffer, the instruction routine accesses the next alternate de~ine table address W09+3 from DAR registers 3, 4, 5 and increments the address by ~1.
The new address value WO9t4 is moved into DAR registers 0, 1 and 2 to provide the address in Table D for fetching the "second" graphic character "B" indicated in the example of FIG. 10. The new address value is also stored in DAR
registers 3, 4, 5.

$~

1 'I'he entire p.rocess as described above for 2 processing the graphic character "I" is thell repeated 3 for the c~raphic characters "B" and "M".
4 When the key code "E3" is detected by the ~icro-controller routine, it signifies the end of the 6 redefined yraphic character string. It is detected by 7 comparing each key code extracted from Table D, against 8 the first code E3 of Table D as seen in FIG~ 10 which 9 code was loaded duriny initialization of Table D.

~,9 Docke~, BC9-77-001 -49--2~

EXECl)'l`lON OE A REDEFINED rUNCT:tON W T~IIN_ A ~EDEFINE,D KL,Y
2 E:XECUTION I~OUTINE
3 The followin~ is a description of the general sequence 4 of microprocessor instruction steps required to access the storage tables A to D to extract the keyboard oriented 6 data necessary to execute a redefined key function withln a 7 redefinccl key entry function. The example of I;IG. 10 will B be used as a guide.
9 The initial steps are identical to the initial steps in the previous example of the execu-tion of a redefined key 11 series oE functions, i.e. the three graphic characters I, 12 B, M.
13 It will be assumed that the key with the oriyinal 14 graphic character I function has also been redefined.
Wllen, during the previous description, the key code F3 for 16 this func-tion is accessed from the alternate define table D, 17 it is used to access its location XF3 in the key attribute 18 table A. In this instance, the key function has been redefined 19 and the attribute code 80 is accessed.
More specifical]y the redefined key code value of "F3"
21 is moved from table D into DAR registers 1 and 2 to form the 22 index address into table A. The constant "X" is moved into 23 DAR register 0.
24 Next, a read memory instruction is issued by the microprocessor instruction sequence, which instruction 26 utilizes the contents of DAR 0, 1 and 2 as an address pointer 27 into store 17 to extract the contents of table A at address 28 location XF3. The content of location XF3 is the key 29 attribute code 80 (not shown) indicating a redefined character attribute, within the redefined instruction Doc)~et ~3C9-77-001 -50-sequencc.
2 Next, the at-tribute code 80 causes the program to 3 branch to a routine which determines the proper function 4 ~or that redeEined key code within a redefined key sequence.
Next, the constant binary value Y is moved into DAR
6 register 0 to define the origin of table B.
7 'rhe key code F3 is re-tained in DAR registers 1 and 2 8 from the previous instructions.
9 Next, a read memory instruction is issued by the microprocessor instruction sequence, which instruction 11 utili~es the contents of DAR registers 0, 1 and 2 as an 12 address pointer into store 17 to extract the con-tents of 13 table B at location YF3. The contents of location ~F3 14 provide an index address ii (not shown) into the alternate define table D.
16 The index value ii is then moved into DAR registers 1 17 and 2.
18 Next, the instruction routine causes the constant W
19 to be moved into DAR register 0 to define the oriyin of table D .
21 Next, a read memory instruction is issued by the micro-22 processor instruction sequence, which instruction utilizes 23 -the contents Wii of D~R registers 0, 1 and 2 pointer into 2~ store 17 to e~tract the contents of ~able D a-t that location.
The content of location Wii is the originally defined key 26 attribute code, i.e. graphics attribute code 00.
27 The index value ii currently retained in DAR registers 2~ 1 and 2 is incremented by plus one to ii +1 and returned to 29 DAR registers 1 and 2.

Docket B~'9 - 7 7 -001 -51-2~3 '~`he ll~W ad~lress in ~ reyisters ()~ l an(l 2 is used 2 by microprocessor instruction sequence to index into 3 table D ~o extract the o:riginal graphic character code 4 C2 for the character I. The graphic character code C2 S is moved rom store 17 via A and B registers 36, 37 into 6 t,he data register 120 for subseq~ent entry into the refresh 7 buffer 30.
8 'I`he subsequent steps for the completion of graphic 9 characters "B" and "M" are similar, as described in the previous example, assuming that they have not been redefined.

14 ~, ;

'~' 23 ' ~:' ':

27 ':' 29 ~ :

Docket BC9-77--001 -52-32~3 1 RETURN OF REDEFINED KEY TO ITS ORIC~INAL FUNCTION (FIG. 10) This section describes the sequence of local operator keyboard steps required -to return any redeEined key to its originally assigned key function. First, the keyboar~
operator depresses the define mode key which causes the controller to enter the define mode. Next, the keyboard operator depresses the keyboard key that is desired to be returned to its original function. Lastly, the keyboard operator must depress the define mode key again which causes the microcontroller instruction sequence to exit the define mode, and in addition restore that redefined key to its original function.
In addition, the data in alternate define table D in FIG. 10 is compressed such that the data for the redefined key, that has been restored to its original Eunction, is deleted from table D and all remaining redefined key data is moved forward in table D to fill the gap left in table D by the deletion of the restored key data. This more efficiently uses storage in table D for accommodating future keys which the operator may desire to redeEine.
In a similar manner, the operator may elect to return all ~reviously redeEined keys to their original key functions.
First, the operator must depress the key deEined as the define mode key which causes the operator to enter the define mode in the same manner as described above. The operator must once again depress the define mode key to exit the define mode. Depressing the deine mode key twice in succession without any intervening key depressions causes the microcontroller instruction sequence to restore all previously redefined keys to their 3%~3 1 origillal ~unctions. In addition, the altel-nate 2 def.ine table D of FIG. 7 is cleared of all data entries 3 except E3 at location WOO to allow for fut~lre keys to be 4 reclefined by the operator.
In the description above, where the clata entries in Table D are compressed after the restore function, it will 7 be appreciated that the redefined key index poin-ter addresses 8 locatçd in table B are adjus-ted to reflect the changed data 9 locations in the compressed table ~.

11 ;, 1~3 ~0 :
2~

2.3 ~ :

Docket BC9-77-001 -59-1 It will be apparent to those skilled in the art 2 that various modifications may be made by those skilled 3 in the art without departing from the teachings of the 4 present invention. I-t is obvious that a pair of keys for starting and terminating the define mode of operation 6 can be used instead of one key. It is also apparent that 7 manually operable means other than the keys on the keyboard 8 can be provided for the operator to initiate and terminate 9 the define mode functions. It is also apparent that the operations can be accomplished completely or to a greater 11 extent by sui-table hardware with cycle timing controls 12 without departing from the spirit and intellt of the present 13 invention.
14 l~hile the invention has been particularly shown and described wi-th reference to a preferred embodiment 16 thereof~ it will be understood by those skilled in the art 17 that the above and other changes in form and details may be 18 made therein without departing from -the spirit and scope 19 of the invention.

2~

Docket BC9-77-001 -55-

Claims (11)

The embodiments of the invention in which an exclusive property or privilege is claimed are defined as follows:
1. In a system including a visual display, a keyboard having a plurality of manually operable keys, a store for holding program instructions and for holding in tables therein data which assigns original functions to each of the keys, and program-controlled processing apparatus for executing original key functions including the displaying of information on the display in accordance with data entered into the apparatus by the keys, the combination therewith of manually operable key redefinition means, means responsive to the actuation of the key redefinition means for changing the apparatus from an execution mode to a key redefinition mode, means responsive to the depression of each first depressed key while the apparatus is in the key redefinition mode for modifying the store tables to save the original function assignment of the first depressed key, means responsive to the depression of each additional key thereafter depressed while the apparatus is in the key redefinition mode for modifying the tables to assign the function of each said additional key to a sequential list of functions to be executed by said first depressed key in its redefined mode, and means responsive to the actuation of the key redefinition means for returning the apparatus to the execution mode.

Docket BC9-77-001 CLAIM 1
2. The combination claimed in Claim 1 further comprising means responsive to the depression of the first depressed key in its redefined mode while the apparatus is in the execution mode for executing the sequential list of functions assigned thereto.
3. The combination claimed in Claim 2 further comprising means responsive to the actuation of the key redefinition means and selected keys in predetermined sequences for modifying the tables to restore, to desired redefined keys, their original assigned functions.

Docket BC9-77-001 CLAIMS 2, 3
4. In apparatus having a plurality of manually operable input devices, each having an original assigned function, and control means normally effective for executing said original functions in accordance with signal data entered into the control means by each of the input devices, the combination comprising a manually operable define mode means, and means responsive to the manual actuation of the define mode means and selected ones of said input devices in a predetermined sequence for assigning to a predetermined one of said selected input devices a sequence of original functions corresponding to the remaining ones of said selected input devices.

Docket BC9-77-001 CLAIM 4
5. In a data processing apparatus having a keyboard with a plurality of manually operable function keys, each having an original assigned function, and control means normally effective for executing said original functions in accordance with data entered into the control means from the keyboard by each of the keys, the combination comprising a manually operable define mode means, and means responsive to the manual actuation in sequence of (1) the define mode means, (2) a selected one of said keys whose function is to be redefined, (3) a number of said keys whose original functions are to be performed in sequence each time the redefined key is subsequently depressed, and (4) the define mode means for conditioning said control means to assign to said redefined key the sequence of original functions corresponding to said number of keys.

Docket BC9-77-001 CLAIM 5
6. The combination claimed in Claim 5 for further comprising execution means included in the control means responsive to the actuation of each redefined function key for executing the sequence of functions assigned to it.
7. The combination claimed in Claim 5 wherein the define mode means comprises a dedicated one of said keys on the keyboard.
8. The combination claimed in Claim 6 further comprising means responsive to the manual actuation of the define mode means and selected keys in predetermined sequences for conditioning said control means to restore, to desired redefined keys, their original assigned functions.
9. The combination claimed in Claim 8 wherein the first-mentioned and second-mentioned means for conditioning said control means include a plurality of redefine mode status latches.

Docket BC9-77-001 CLAIMS 6, 7, 8, 0
10. In a data processing apparatus having a keyboard with a plurality of manually operable function keys, each having an original assigned function, and control means normally effective for executing said original functions in accordance with data entered into the control means from the keyboard by each of the keys, the combination comprising a manually operable define mode means, and means responsive to the manual actuation in sequence of (1) the define mode means, (2) a selected one of said keys whose function is to be redefined, (3) a number of said keys whose original functions are to be performed in sequence each time the redefined key is subsequently depressed, and (4) the define mode means for conditioning said control means for the sequential execution of the original functions of said number of keys in response to each subsequent depression of the redefined key.
Docket BC9-77-001 CLAIM 10
11. In a system including a keyboard with a plurality of manually operable function keys, each having an original assigned function, and program-controlled processing apparatus having a store for program instructions and data and having program controlled means normally effective for executing said original functions in accordance with data entered into the apparatus from the keyboard by the keys, the combination comprising a manually operable define mode means, and means including the program-controlled processing apparatus responsive to the manual actuation in sequence of (1) the define mode means, (2) a selected one of said keys whose function is to be redefined, (3) a number of said keys whose original functions are to be performed in sequence each time the redefined key is subsequently depressed, and (4) the define mode means to create a table in said store for assigning to said redefined key the sequence of original functions corresponding to said number of keys.

Docket BC9-77-001 CLAIM 11
CA298,925A 1977-04-13 1978-03-14 Operator controlled programmable keyboard apparatus Expired CA1098213A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US787,401 1977-04-13
US05/787,401 US4200913A (en) 1977-04-13 1977-04-13 Operator controlled programmable keyboard apparatus

Publications (1)

Publication Number Publication Date
CA1098213A true CA1098213A (en) 1981-03-24

Family

ID=25141351

Family Applications (1)

Application Number Title Priority Date Filing Date
CA298,925A Expired CA1098213A (en) 1977-04-13 1978-03-14 Operator controlled programmable keyboard apparatus

Country Status (10)

Country Link
US (1) US4200913A (en)
JP (1) JPS54517A (en)
AU (1) AU517682B2 (en)
CA (1) CA1098213A (en)
FR (1) FR2387476A1 (en)
GB (1) GB1595654A (en)
HK (1) HK71384A (en)
IT (1) IT1109826B (en)
MY (1) MY8400393A (en)
SG (1) SG57883G (en)

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2030741B (en) * 1978-10-02 1982-11-17 Ibm Data processing terminal with addressable characterising store
DE2966430D1 (en) * 1978-11-27 1983-12-29 Philips Corp Automatic energy dispersive x-ray fluorescence analysing apparatus
US4290063A (en) * 1979-08-03 1981-09-15 Harris Data Communications, Inc. Video display terminal having means for altering data words
JPS5624632A (en) * 1979-08-06 1981-03-09 Fujitsu Ltd Keyboard operating system
JPS56116168A (en) * 1980-02-20 1981-09-11 Tokyo Electric Co Ltd Electronic cash register
JPS56155445A (en) * 1980-04-30 1981-12-01 Sharp Corp Electronic computer
US4333097A (en) * 1980-09-12 1982-06-01 Bell Telephone Laboratories, Incorporated Visual display terminal without finger repositioning
US4575816A (en) * 1980-12-19 1986-03-11 International Business Machines Corporation Interactive transactions processor using sequence table pointers to access function table statements controlling execution of specific interactive functions
US4434472A (en) * 1980-12-29 1984-02-28 Falco Data Products General purpose data terminal system with display line refreshing and keyboard scanning using pulsewidth modulation
JPS57187732A (en) * 1981-05-14 1982-11-18 Toshiba Corp Shift control system for keyboard
US5675827A (en) * 1981-05-21 1997-10-07 Canon Kabushiki Kaisha Information processing system, a processor, and an information processing method for the performing of an arithmetic operation of numeric information
US4439837A (en) * 1981-06-16 1984-03-27 Ncr Corporation Non-volatile memory system for intelligent terminals
US4965825A (en) 1981-11-03 1990-10-23 The Personalized Mass Media Corporation Signal processing apparatus and methods
US7831204B1 (en) 1981-11-03 2010-11-09 Personalized Media Communications, Llc Signal processing apparatus and methods
USRE47642E1 (en) 1981-11-03 2019-10-08 Personalized Media Communications LLC Signal processing apparatus and methods
US4460974A (en) * 1981-11-27 1984-07-17 Hewlett-Packard Company Electronic computer with access to keyboard status information
US4456972A (en) * 1982-02-25 1984-06-26 Honeywell Information Systems Inc. Keyboard identification sequence
EP0093509A1 (en) * 1982-04-28 1983-11-09 FISONS plc A combination of a program carrying device and overlay, and a computational instrument
GB2121224A (en) * 1982-06-01 1983-12-14 Univ Edingburgh The University Function keyboard for a microprocessor system
US4800485A (en) * 1982-06-01 1989-01-24 American Telephone And Telegraph Company On-line documentation facility
JPS5955568A (en) * 1982-09-25 1984-03-30 Sharp Corp Electronic cash register
US4512271A (en) * 1982-10-20 1985-04-23 Usm Corporation Pattern selection system
JPS59123336A (en) * 1982-12-28 1984-07-17 インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン Series keyboard interface system
JPS59186019A (en) * 1983-04-07 1984-10-22 Fanuc Ltd Data input/output controlling device
JPS59200375A (en) * 1983-04-27 1984-11-13 Omron Tateisi Electronics Co Electronic cash register
US4555772A (en) * 1983-05-31 1985-11-26 International Business Machines Corp. Current cursor symbol demarkation
US4680729A (en) * 1983-06-17 1987-07-14 Tektronix, Inc. Method and apparatus for storing and updating user entered command strings for use with otherwise unassigned softkeys
JPH0657026B2 (en) * 1984-01-27 1994-07-27 キヤノン株式会社 Information processing method
JPS60181823A (en) * 1984-02-29 1985-09-17 Canon Inc Document processor
US4709329A (en) * 1984-06-25 1987-11-24 Data General Corporation Input/output device controller for a data processing system
US4853888A (en) * 1984-12-31 1989-08-01 The Boeing Company Programmable multifunction keyboard
US4733351A (en) * 1984-12-31 1988-03-22 Wang Laboratories, Inc. Terminal protocols
US4763252A (en) * 1985-03-21 1988-08-09 Rose David K Computer entry system for predetermined text data sequences
JPS618359U (en) * 1985-05-02 1986-01-18 三菱電機株式会社 character input device
JPS618364U (en) * 1985-05-02 1986-01-18 三菱電機株式会社 character input device
LU86152A1 (en) * 1985-11-07 1987-06-26 Int Gulf Venture Sa ELECTRONIC DATA PROCESSING SYSTEM
GB8619989D0 (en) * 1986-08-16 1986-09-24 Modray Ltd Controlling length of time
US5050213A (en) * 1986-10-14 1991-09-17 Electronic Publishing Resources, Inc. Database usage metering and protection system and method
US4977594A (en) * 1986-10-14 1990-12-11 Electronic Publishing Resources, Inc. Database usage metering and protection system and method
US4964075A (en) * 1987-05-08 1990-10-16 A. J. Weiner, Inc. Software and hardware independent auxiliary user programmable intelligent keyboard
JPS62201851U (en) * 1987-06-10 1987-12-23
DE8802507U1 (en) * 1988-02-26 1988-04-21 Preh, Elektrofeinmechanische Werke Jakob Preh Nachf. Gmbh & Co, 8740 Bad Neustadt, De
US5241646A (en) * 1988-03-30 1993-08-31 Kabushiki Kaisha Toshiba Systems for changing hardware parameters using sub-CPU for sensing specialized key inputs and main CPU for changes
DE69129543D1 (en) * 1990-11-09 1998-07-09 Ast Research Inc SECURED `` HOT '' KEY FUNCTION FOR MICROPROCESSOR-OPERATED COMPUTER SYSTEM
US5404321A (en) * 1993-05-21 1995-04-04 Mattox; Jeffrey Computer system and method for modifying and enhancing the built-in programs of a computer
US5892900A (en) * 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5943422A (en) * 1996-08-12 1999-08-24 Intertrust Technologies Corp. Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels
US7133845B1 (en) 1995-02-13 2006-11-07 Intertrust Technologies Corp. System and methods for secure transaction management and electronic rights protection
US6948070B1 (en) 1995-02-13 2005-09-20 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US7165174B1 (en) 1995-02-13 2007-01-16 Intertrust Technologies Corp. Trusted infrastructure support systems, methods and techniques for secure electronic commerce transaction and rights management
US6157721A (en) 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
US6658568B1 (en) 1995-02-13 2003-12-02 Intertrust Technologies Corporation Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management
US7124302B2 (en) 1995-02-13 2006-10-17 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US7133846B1 (en) 1995-02-13 2006-11-07 Intertrust Technologies Corp. Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management
ATE441897T1 (en) 1995-02-13 2009-09-15 Intertrust Tech Corp SYSTEMS AND METHODS FOR MANAGING SECURED TRANSACTIONS AND PROTECTING ELECTRONIC RIGHTS
US7143290B1 (en) 1995-02-13 2006-11-28 Intertrust Technologies Corporation Trusted and secure techniques, systems and methods for item delivery and execution
US7069451B1 (en) 1995-02-13 2006-06-27 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US7095854B1 (en) 1995-02-13 2006-08-22 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
JP3664322B2 (en) * 1995-04-07 2005-06-22 ソニー株式会社 Video processing device
US20010011253A1 (en) * 1998-08-04 2001-08-02 Christopher D. Coley Automated system for management of licensed software
US20060265337A1 (en) * 1996-02-26 2006-11-23 Graphon Corporation Automated system for management of licensed digital assets
US5920861A (en) * 1997-02-25 1999-07-06 Intertrust Technologies Corp. Techniques for defining using and manipulating rights management data structures
US7062500B1 (en) 1997-02-25 2006-06-13 Intertrust Technologies Corp. Techniques for defining, using and manipulating rights management data structures
US6018335A (en) * 1997-08-19 2000-01-25 Kdi Precision Products, Inc. Programmable keyboard and method therefor
US7092914B1 (en) * 1997-11-06 2006-08-15 Intertrust Technologies Corporation Methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information
US6112181A (en) * 1997-11-06 2000-08-29 Intertrust Technologies Corporation Systems and methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information
US7233948B1 (en) 1998-03-16 2007-06-19 Intertrust Technologies Corp. Methods and apparatus for persistent control and protection of content
US6004049A (en) * 1998-10-29 1999-12-21 Sun Microsystems, Inc. Method and apparatus for dynamic configuration of an input device
US7243236B1 (en) * 1999-07-29 2007-07-10 Intertrust Technologies Corp. Systems and methods for using cryptography to protect secure and insecure computing environments
US7430670B1 (en) 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
US6798359B1 (en) * 2000-10-17 2004-09-28 Swedish Keys Llc Control unit with variable visual indicator
US6691187B1 (en) * 2001-07-02 2004-02-10 Canon U.S.A., Inc. Printer-based interface with removable digital storage media
US6965511B2 (en) * 2001-10-10 2005-11-15 Hewlett-Packard Development Company, L.P. System and method for personalizing an electrical device
US20030214664A1 (en) * 2002-05-17 2003-11-20 John Moffatt Programmable printer function keys
US7065638B1 (en) * 2002-07-08 2006-06-20 Silicon Motion, Inc. Table-driven hardware control system
US20040066374A1 (en) * 2002-10-03 2004-04-08 International Business Machines Corporation Keyboard configurable to multiple mappings
US7301532B1 (en) 2004-02-09 2007-11-27 Jerod M Dobry Digital display keyboard
WO2005088334A2 (en) * 2004-03-11 2005-09-22 Preh Keytec Gmbh Dynamic management of a keyboard memory
US7124951B2 (en) * 2004-07-30 2006-10-24 Symbol Technologies, Inc. Programmable keypad for sized optimized device
JP2010517159A (en) * 2007-01-22 2010-05-20 キジュ キム Method for increasing button efficiency of electrical and electronic equipment
US8201213B2 (en) * 2009-04-22 2012-06-12 Microsoft Corporation Controlling access of application programs to an adaptive input device

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3355714A (en) * 1963-10-21 1967-11-28 Bunker Ramo On-line computing system for processing mathematical functions
US3419850A (en) * 1965-07-12 1968-12-31 Friden Inc Programmable computer utilizing nonaddressable registers
US3533078A (en) * 1967-12-04 1970-10-06 Burroughs Corp Keyboard entry control apparatus
US3668653A (en) * 1968-10-22 1972-06-06 Sundstrad Corp Control system
US3760171A (en) * 1971-01-12 1973-09-18 Wang Laboratories Programmable calculators having display means and multiple memories
US3859635A (en) * 1971-06-15 1975-01-07 Robert E Watson Programmable calculator
US3737868A (en) * 1972-03-30 1973-06-05 Addressograph Multigraph Apparatus for preparing a binary coded record
US3971925A (en) * 1972-12-26 1976-07-27 Hewlett-Packard Company Adaptable programmed calculator having provision for plug-in keyboard and memory modules
US4037092A (en) * 1973-11-26 1977-07-19 Hewlett-Packard Company Calculator having preprogrammed user-definable functions
JPS5144845A (en) * 1974-10-16 1976-04-16 Hitachi Ltd
JPS51105737A (en) * 1975-03-14 1976-09-18 Fujitsu Ltd Fuankushon kiitorokuhoshiki
JPS5216927A (en) * 1975-07-30 1977-02-08 Hitachi Ltd Input gear for calculator

Also Published As

Publication number Publication date
HK71384A (en) 1984-09-21
JPS576127B2 (en) 1982-02-03
FR2387476B1 (en) 1981-07-31
IT7821201A0 (en) 1978-03-15
IT1109826B (en) 1985-12-23
FR2387476A1 (en) 1978-11-10
US4200913A (en) 1980-04-29
GB1595654A (en) 1981-08-12
AU3498078A (en) 1979-10-18
JPS54517A (en) 1979-01-05
MY8400393A (en) 1984-12-31
AU517682B2 (en) 1981-08-20
SG57883G (en) 1984-08-03

Similar Documents

Publication Publication Date Title
CA1098213A (en) Operator controlled programmable keyboard apparatus
US4031517A (en) Emulation of target system interrupts through the use of counters
US4760386A (en) Automatic hiding and revealing of a pointer during keyboard activity
CA2050658C (en) Dual hardware channels and hardware context switching in a graphics rendering processor
US4779187A (en) Method and operating system for executing programs in a multi-mode microprocessor
US4675814A (en) Method of switching operating systems for a data processing system
US4488258A (en) Programmable controller with control program comments
US4727480A (en) Emulation of a data processing system
US5210873A (en) Real-time computer system with multitasking supervisor for building access control or the like
US5027273A (en) Method and operating system for executing programs in a multi-mode microprocessor
US5038281A (en) Acceleration of system interrupts between operating systems in guest-host relationship
US5255358A (en) Action bar processing on non-programmable workstations
US5792659A (en) Terminal emulator enhancer with local configurability
US4315314A (en) Priority vectored interrupt having means to supply branch address directly
EP0076903B1 (en) Emulation of data processing display terminals of variable screen size on the display of a text processor
US5109504A (en) Graphics program adaptor
US5734911A (en) Method of linking peripheral devices all of which use the same IRQ to a single interrupt procedure
US5367628A (en) Multi-window system and display method for controlling execution of an application for a window system and an application for a non-window system
US5442736A (en) Correlation of cursor position to shapes displayed on a video display screen
JPH0724010B2 (en) Display system and method for storing entry field symbol positions
US5682169A (en) Method and system for presentation of single and double digit selection fields in a non-programmable terminal
US5504920A (en) Video driver system for communicating device specific primitive commands to multiple video controller types
US3562713A (en) Method and apparatus for establishing a branch communication in a digital computer
Josephs An on-line machine language debugger for OS/360
US6134577A (en) Method and apparatus for enabling address lines to access the high memory area

Legal Events

Date Code Title Description
MKEX Expiry