Browse Prior Art Database

Compaction Algorithm for Keyboard Emulation

IP.com Disclosure Number: IPCOM000044126D
Original Publication Date: 1984-Nov-01
Included in the Prior Art Database: 2005-Feb-05
Document File: 4 page(s) / 74K

Publishing Venue

IBM

Related People

Beilinson, RM: AUTHOR [+2]

Abstract

Data compaction based on key button position rather than keyboards results in a significant reduction in storage requirements and permits a large number of keyboards to be managed from resident memory. More specifically, key button position compaction permits 95 keyboard tables normally stored in program disk space to be reduced to one memory-resident table of about 1/3 the size. For each keyboard, there exists a translate table or file made up of EBCDIC or ASCII values for each key position. Reference hereinafter will be to EBCDIC values for purposes of conciseness. In addition, keyboard and keyboard number can be taken as synonymous. While many keyboards are similar, although all are uniquely numbered or labeled, a few are unique in both layout and key value.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 38% of the total text.

Page 1 of 4

Compaction Algorithm for Keyboard Emulation

Data compaction based on key button position rather than keyboards results in a significant reduction in storage requirements and permits a large number of keyboards to be managed from resident memory. More specifically, key button position compaction permits 95 keyboard tables normally stored in program disk space to be reduced to one memory-resident table of about 1/3 the size. For each keyboard, there exists a translate table or file made up of EBCDIC or ASCII values for each key position. Reference hereinafter will be to EBCDIC values for purposes of conciseness. In addition, keyboard and keyboard number can be taken as synonymous. While many keyboards are similar, although all are uniquely numbered or labeled, a few are unique in both layout and key value. By building an array of EBCDIC character values, key position and keyboards can be correlated, as illustrated in Table 1 below.

(Image Omitted)

Based on the above array, Table 2 can be constructed and illustrates the keyboards having common EBCDIC values for each key position. From Table 2, lists of keyboard numbers among all key positions can be readily obtained. Duplicate lists can be removed for a reduction in ultimate storage requirements. The resulting list can then be shared.

In addition, the lists of keyboards that have only one keyboard number for a particular EBCDIC value can be removed from the list prior to removing any duplicates. These will be handled separately. Also removed are the largest list of keyboard numbers for each key position for separate handling. Table 3 illustrates a table of lists before EBCDIC value removal for one keyboard number.

(Image Omitted)

From the above, line #'s 2, 4 and 7 are to be removed since the keyboard list contains only one keyboard number, and lines #'s 5 and 8 are to be removed since they contain the largest lists for their key position. Table 4 below is Table 3 following line removal.

(Image Omitted)

Duplicates from among the list of keyboard numbers are removed. In this case, key position 2, EBCDIC value C5 is removed. The lists are now rearranged such that the largest set is first and the smallest set is last, as illustrated in Table 5.

(Image Omitted)

A comparison is now made between the first set and every other set to determine the extent of possible combination and pairing. The sets that have the highest value of intersection divided by cardinality are paired and combined. The intersection is the number of keyboard numbers that are common to both lists, while cardinality is the number of keyboard numbers in the smaller list. The division of intersection by cardinality gives a measure of the "closeness" of the

1

Page 2 of 4

two sets. Since the lists are ordered from largest to smallest sets, a decision is made to combine the largest value from division and take the first paired set of any ties that occur. As sets of lists are combined, the sets are redefined and new constrain...