* This program scans a file which describes a keyboard. The output
* of the program is a series of 'C' declarations which describe a
* mapping between (scancode, shiftstate, altstate) and 3270 functions,
* The format of the input file is as follows:
* keynumber [ scancode [ unshifted [ shifted [ alted [ shiftalted ] ] ] ] ]
* keynumber is in decimal, and starts in column 1.
* scancode is hexadecimal.
* unshifted, etc. - these are either a single ascii character,
* or the name of a function or an AID-generating key.
* all fields are separated by a single space.
dohits(); /* Set up "Hits" */
printf("struct hits hits[] = {\n");
for (Ph
= Hits
; Ph
< Hits
+(sizeof Hits
/sizeof Hits
[0]); Ph
++) {
if ((ph
->hit
[0].type
== undefined
)
&& (ph
->hit
[1].type
== undefined
)
&& (ph
->hit
[2].type
== undefined
)
&& (ph
->hit
[3].type
== undefined
)) {
printf("\t{ 0, {\t{ illegal },\t{ illegal }");
printf(",\t{ illegal },\t{ illegal } } },\n");
printf("\t{ %d, {\t/* 0x%02x */\n\t", ph
->keynumber
, scancode
);
for (i
= 0; i
< 4; i
++) {
switch (ph
->hit
[i
].type
) {
printf("character, 0x%02x", ph
->hit
[i
].code
);
printf("function, %s", Ph
->name
[i
]);
printf("aid, %s", Ph
->name
[i
]);