-- Em3270UserInputDefs: 3270 Emulation User Input Handler
-- Revised for Star 3.0adrTI by Lui: 30-Jun-83 14:07:39
-- Owner: Kernaghan
-- Overview:
-- This module will handle all user inputs to the emulator coming from the Star world, that is, from the Notifier. These inputs come from either keystrokes or mouse actions.
-- It is responsible for determining what action has taken place (keystrokes or mouse) and then executing the function of that action, for example, processing AID keys, reseting the cursor at the mouse position, inputing characters fron the virtual keyboards, inhibiting the keyboard,etc.
DIRECTORY
Em3270PrivDefs,
NtDefs USING [Fun, Funrepeat, Special3270Key],
SchemaDefs USING [Lschema, Pvprocessbut],
StandardDefs USING [Ch, Cv, String];
Em3270UserInputDefs: DEFINITIONS =
BEGIN OPEN Em3270PrivDefs, StandardDefs;
--===================
-- Public Types
--===================
KeyProc: TYPE = PROCEDURE [
lschema: SchemaDefs.Lschema, key: NtDefs.Special3270Key ← special3270Alpha];
KeyProcessor: TYPE = ARRAY NtDefs.Special3270Key OF KeyProc;
AIDType: TYPE = {ReadModify, ShortRead, TstReqRead};
AIDVal: TYPE = {
clear, cursorSel, enter, noAID, PA1, PA2, PF1, PF2, PF3, PF4, PF5, PF6, PF7,
PF8, PF9, PF10, PF11, PF12, sysReq, testReq};
--===================
-- Constants
--===================
AIDCodes: ARRAY AIDVal OF CHARACTER = [ -- see Attention ID Configurations figure, IBM COM. Des.
clear: 155C, -- 6D Hex
cursorSel: 176C, -- 7E Hex
enter: 175C, -- 7D Hex
noAID: 140C, -- 60 Hex
PA1: 154C, -- 6C Hex
PA2: 156C, -- 6E Hex
PF1: 361C, -- F1 Hex
PF2: 362C, -- F2 Hex
PF3: 363C, -- F3 Hex
PF4: 364C, -- F4 Hex
PF5: 365C, -- F5 Hex
PF6: 366C, -- F6 Hex
PF7: 367C, -- F7 Hex
PF8: 370C, -- F8 Hex
PF9: 371C, -- F9 Hex
PF10: 172C, -- 7A Hex
PF11: 173C, -- 7B Hex
PF12: 174C, -- 7C Hex
sysReq: 360C, -- F0 Hex
testReq: 360C]; -- F0 Hex
--===================
-- Public Procedures
--===================
DoProcessBut: SchemaDefs.Pvprocessbut; --Handle legal button selections
Reset: KeyProc;
-- Clear the status area of all symbols, rebuilds the online ones, and sets Emulator global status to system available.
ProcessInputChar: PROCEDURE [lschema: SchemaDefs.Lschema, string: String];
-- Process a normal alphanumeric character from the main keyboard array
Process3270Keyes: PROCEDURE [
lschema: SchemaDefs.Lschema, key: NtDefs.Special3270Key];
-- Process a 3270-unique character fron the virtual keyboard
ProcessFuntion: PROCEDURE [lschema: SchemaDefs.Lschema, fun: NtDefs.Fun];
-- Process Star function keyes
ProcessFunRepeat: PROCEDURE [
lschema: SchemaDefs.Lschema, cvFunrepeat: Cv, funrepeat: NtDefs.Funrepeat];
-- Process Function keyes which can repeat
Create: PROCEDURE [lschema: SchemaDefs.Lschema];
-- About to start a new 3270 session. Do whatever initialization necessary.
Destroy: PROCEDURE [lschema: SchemaDefs.Lschema];
-- The current is about to end. Cleanup yourself.
ResetAIDStatus: PROCEDURE [lschema: SchemaDefs.Lschema];
-- Reset the AID because a WCC byte whose reset bit was on was recieved.
DoReadMod: PROCEDURE [
lschema: SchemaDefs.Lschema, buffer: LptBufferData, lptPutBuf: LptBufOfChar,
aidCode: Ch, accessMode: AccessMode ← keyMode];
--===================
-- Modules
--===================
Em3270UserInputPack: PRIVATE PROGRAM;
END. -- of Em3270UserInputDefs
LOG
March 7, 1982 - Kernaghan - Created Em3270UserInput
30-Jun-83 14:07:44 - Lui -- support for Read Modified.