═══ 1. Version Notice ═══ Fifth Edition, March 1993 The following paragraph does not apply to the United Kingdom or any country where such provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or implied warranties in certain transactions, thegrefore, this statement may not apply to you. This publication could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes will be incorporated in new editions of the publication. IBM may make improvements and/or changes in the product(s) and/or program(s) described in this publication at any time. References in this publication to IBM products, programs, or services do not inply that IBM intends to make these available in all countries in which IBM operates. Any reference to an IBM licensed program in this publication is not intended to state or imply that only IBM's licensed program may be used. Any functionally equivalent program may be used instead. ═══ 2. Credit ═══ Written by Kenneth A. Kahn, IBM Poughkeepsie NY ═══ 3. Introduction ═══ The OS/2 Entry Level 3270 Emulation Program, commonly know as ELEP2, is a CUT (Control Unit Terminal) 3270 terminal emulator which allows a user to connect a Workstation to a COAX cable attached to a 3174 or 3274 (or equivalent) control unit. The control unit will then view the Workstation as a 3278/3279 Display Station and allow the user to access a Host MVS or VM system. The terminal emulator runs in a protect mode session and uses documented OS/2 interfaces for screen, mouse and keyboard I/O. ═══ 4. Requirements ═══ ═══ 4.1. SoftWare ═══ o OS/2 ELEP2 runs in OS/2 protect mode and uses documented OS/2 API interfaces not available in DOS compatibility mode. While OS/2 1.2 or greater is recommended it should work with any OS/2 1.x or 2.x release. When run on a 32-bit V2.x release, ELEP2 will run in 16-bit mode. o IND$FILE The file transfer utilities, ELEP2RCV for DownLoad and ELEP2SND for UpLoad, require the IND$FILE program to be installed on your Host system. ═══ 4.2. HardWare ═══ o Any WorkStation capable of running OS/2. o If you are using a Family-1 Machine (e.g. PC/AT or XT/286) you will need a 3278/79 Emulation (Long card) or Advanced Emulation (Short card) adapter. The latter allows you to install up to 4 adapter cards at the same time, each attached to a separate control unit. o If you are using a Family-2 Machine (e.g. PS/2) you will need a 370 Connection Adapter card Version A (Long Card) or Version B (Short Card). The latter allows you to install up to 4 adapter cards at the same time, each attached to a separate control unit. ═══ 5. Installation ═══ o Create a new subdirectory off of your Root directory (e.g. C:\) and call it ELEP2. To do so, at an OS/2 command prompt enter: CD \ MD ELEP2 CD ELEP2 Note: You will need about 310K Bytes free for all the files. o Copy the file ELEP2F.ZIP to the ELEP2 directory and issue the following command: PKUNZIP ELEP2F The following files should now be on your ELEP2 directory. For clarity they are grouped by functional category. The files in this group make up the main emulator function. These are the only files that are actually 'required' to run ELEP2. ┌──────────────────┬─────────────────────────────────────────────┐ │ FILE NAME │ DESCRIPTION │ ├──────────────────┼─────────────────────────────────────────────┤ │ ELEP2.EXE │ OS/2 Entry Level 3270 Emulator Program Main │ │ │ Task. You can start up to 4 ELEP2 sessions │ │ │ at the same time, one for each possible │ │ │ adapter card. │ ├──────────────────┼─────────────────────────────────────────────┤ │ ELEP2DD.SYS │ HardWare Device Driver. Allows ELEP2 to │ │ │ interface with the 3278/79 Emulator or 3270 │ │ │ Connection Adapter card. │ ├──────────────────┼─────────────────────────────────────────────┤ │ ELEP2RCV.EXE │ Download Utility. Used to transfer files │ │ │ from a Host session to a a WorkStation with │ │ │ or without translation from EBCDIC to ASCII │ ├──────────────────┼─────────────────────────────────────────────┤ │ ELEP2SND.EXE │ Upload Utility. Used to transfer files │ │ │ from a WorkStation to a Host session with │ │ │ or without translation from ASCII to │ │ │ EBCDIC. │ ├──────────────────┼─────────────────────────────────────────────┤ │ ELEP2CMD.EXE │ KeyStroke Utility. Used to generate │ │ │ KeyStrokes to your Host VM or MVS session │ │ │ without the use of the KeyBoard. │ ├──────────────────┼─────────────────────────────────────────────┤ │ ELEP2KEY.EXE │ Keyboard Table Translator. Used to Compile │ │ │ Keyboard Defintion files into Binary Trans- │ │ │ lation files. │ ├──────────────────┼─────────────────────────────────────────────┤ │ ELEP2KBD.DLL │ KeyBoard Utilities. Set of special key- │ │ │ board functions assignable via ELEP2KEY. │ ├──────────────────┼─────────────────────────────────────────────┤ │ K850USET.BIN │ Default Binary Keyboard Translation Table: │ │ │ US Enhanced KeyBoard for Code Page 850 │ ├──────────────────┼─────────────────────────────────────────────┤ │ K850USET.DEF │ Keyboard Defintion file for K850USET.BIN. │ │ │ Assumes 24 Host PF Keys │ ├──────────────────┼─────────────────────────────────────────────┤ │ ELEPXLAT.BIN │ Default Code Page Translation Table: Code │ │ │ Page 850 │ ├──────────────────┼─────────────────────────────────────────────┤ │ ELEP.ICO │ Default ELEP2 ICON │ ├──────────────────┼─────────────────────────────────────────────┤ │ ELEP2.ICO │ ELEP2 ICON for Adapter Card 2 │ ├──────────────────┼─────────────────────────────────────────────┤ │ ELEP3.ICO │ ELEP2 ICON for Adapter Card 3 │ ├──────────────────┼─────────────────────────────────────────────┤ │ ELEP4.ICO │ ELEP2 ICON for Adapter Card 4 │ └──────────────────┴─────────────────────────────────────────────┘ Note: You can actually place these files in any subdirectory by using the OS/2 PATH and DPATH facilities. The following files allow you to create your own set of special keyboard functions assignable via the ELEP2KEY program. This is accomplished by creating your own Dynamic Link Library and adding it to the list in the file ELEP2DLL.$L$. ┌──────────────────┬─────────────────────────────────────────────┐ │ FILE NAME │ DESCRIPTION │ ├──────────────────┼─────────────────────────────────────────────┤ │ ELEP2KBD.C │ Sample DLL source code. This is the source │ │ │ for ELEP2KBD.DLL that contains the special │ │ │ keyboard functions that come with ELEP2. │ ├──────────────────┼─────────────────────────────────────────────┤ │ ELEP2KBD.DEF │ Linker Definition file for ELEP2KBD.C │ ├──────────────────┼─────────────────────────────────────────────┤ │ ELEP2KBD.H │ C header file containing parameter list │ │ │ passed to the DLL Function when │ ├──────────────────┼─────────────────────────────────────────────┤ │ ELEP2KBD.INC │ Masm header file containing parameter list │ │ │ passed to the DLL Function when invoked by │ │ │ ELEP2 │ └──────────────────┴─────────────────────────────────────────────┘ The following files allow you to create your own Code Page Translation Table (ELEP2XLAT.BIN). This table is used by ELEP2 to translate Character Generator Codes (see GA27-2837 : 3270 Information Display System Character Set Reference) to displayable ASCII values. ┌──────────────────┬─────────────────────────────────────────────┐ │ FILE NAME │ DESCRIPTION │ ├──────────────────┼─────────────────────────────────────────────┤ │ ELEPX437.ASM │ Sample MASM code to generate a Code Page │ │ │ Translation Table for Code Page 437. │ ├──────────────────┼─────────────────────────────────────────────┤ │ ELEPCDPG.CMD │ OS/2 Batch file used to Assemble and Link │ │ │ ELEPX437.ASM into the binary table │ │ │ ELEP2X437.BIN │ ├──────────────────┼─────────────────────────────────────────────┤ │ ELEP2X437.INC │ Include file for ELEPX437.ASM containing │ │ │ the actual translation table for Code Page │ │ │ 437 │ ├──────────────────┼─────────────────────────────────────────────┤ │ ELEP2X850.INC │ Alternate Include file for ELEPX437.ASM │ │ │ containing the actual translation table for │ │ │ Code Page 850 │ ├──────────────────┼─────────────────────────────────────────────┤ │ ELEP2X860.INC │ Alternate Include file for ELEPX437.ASM │ │ │ containing the actual translation table for │ │ │ Code Page 860 │ ├──────────────────┼─────────────────────────────────────────────┤ │ ELEP2X863.INC │ Alternate Include file for ELEPX437.ASM │ │ │ containing the actual translation │ ├──────────────────┼─────────────────────────────────────────────┤ │ ELEP2X865.INC │ Alternate Include file for ELEPX437.ASM │ │ │ containing the actual translation table for │ │ │ Code Page 865 │ └──────────────────┴─────────────────────────────────────────────┘ The following files are alternate KeyBoard Definition files used as input to ELEP2KEY for various non-US WorkStation Keyboards. ┌──────────────────┬─────────────────────────────────────────────┐ │ FILE NAME │ DESCRIPTION │ ├──────────────────┼─────────────────────────────────────────────┤ │ K437FRET.DEF │ Keyboard Definition file for French Key- │ │ │ board using Code Page 437. Assumes 24 Host │ │ │ PF Keys │ ├──────────────────┼─────────────────────────────────────────────┤ │ K850GRET.DEF │ Keyboard Definition file for German Key- │ │ │ board using Code Page 850. Assumes 24 Host │ │ │ PF Keys │ ├──────────────────┼─────────────────────────────────────────────┤ │ K850SPET.DEF │ Keyboard Definition file for Spanish Key- │ │ │ board using Code Page 850. Assumes 24 Host │ │ │ PF Keys │ ├──────────────────┼─────────────────────────────────────────────┤ │ K850UKET.DEF │ Keyboard Definition file for UK Keyboard │ │ │ using Code Page 850. Assumes 24 Host PF │ │ │ Keys │ ├──────────────────┼─────────────────────────────────────────────┤ │ K850USEA.DEF │ Keyboard Definition file for US Keyboard │ │ │ using Code Page 850. Assumes 12 Host PF │ │ │ Keys │ └──────────────────┴─────────────────────────────────────────────┘ o Install the Device Driver, ELEP2DD.SYS, by adding the following line to your CONFIG.SYS file: DEVICE=[path\]ELEP2DD.SYS [[path\]KBDTranslationFile] KBDTranslationFile = Binary keyboard translation file. The default name is K850USET.BIN. Any file created by ELEP2KEY can be used. If you don't specify a KBDTranslation file, ELEP2DD will look for K850USET.BIN on the ROOT directory of the BOOT drive. If it doesn't find it, it will try to create one for future use. o While not necessary, it is recommended that you add the ELEP2 directory to both your PATH and DPATH statements in CONFIG.SYS. o There is a file on the ELEP2 Install Disk named XFERELEP.EXC. This is a VM REXX EXEC that is used by both ELEP2RCV and ELEP2SND. While you can do file transfers without this EXEC (for details on this see the RAW option under Host/PC File Transfer install this, after loging onto your host VM system for the first time using ELEP2, insert the ELEP2 Install disk in Drive A and issue the following from and OS/2 Command prompt: ELEP2SND A:\XFERELEP.EXC XFERELEP EXEC A (BIN RAW After this you can issue file transfer without the RAW option. Note: Instead of a Hard Disk directory, ELEP2 can be installed on a floppy disk. This allows you to create an OS/2 "BOOT" disk. The only files you really need for such a disk are ELEP2.EXE and ELEP2DD.SYS, and perhaps a Code page Translation Table (ELEPXLAT.BIN) and a KeyBoard Binary Table (K850USET.BIN). ═══ 6. Starting ELEP2 ═══ The syntax of the ELEP2 command is ELEP2 [1║2║3║4] The optional number parameter refers to a specific adapter card. You can install up to 4 adapter cards on a single machine. Each adapter card can support one Host session. Therefore you can have up to 4 host sessions with 4 adapter cards installed. The number parameter specifies which adapter card to use to establish the host session. Note: See Multiple CUT Sessions install on your control unit to allow access to multiple Host sessions per adapter card when configured for DFT mode. ELEP2 can emulate any of the following 3278/79 Host terminals: o Model-2 (24 rows / 80 columns) o Model-3 (32 rows / 80 columns) o Model-4 (43 rows / 80 columns) o Model-5 (27 rows / 132 columns) The default Host Type is a Model-2. To specify a different model, use the ELEP2KEY "SET TermID" statement (see ELEP2KEY If you specify a Host Type that is larger that your current video mode can support, you can use special scroll keys to shift the host display. For example, if you specify a Model-4 Host Type but you are running ELEP2 in 25 line mode, e.g. MODE CO80,25, you can use the Scroll_Down and Scroll_Up keys to shift the display. Similarly, if you specify a Model-5, you can use the Shift_Left and Shift_Right scroll keys. If ELEP2 cannot start, it will return one of the following error codes: Code Description 5 IRQ Failure. ELEP2DD could not obtain the needed hardware interrupt. 8 Adapter in use. There is already an ELEP2 session active on the specified Adapter Card. ═══ 7. ELEP2 Main Menu ═══ The following options are available from the ELEP2 Main menu. To get to the Main Menu from Emulator mode, the default hotkey is Alt-F7. This can be changed via the ELEP2KEY program. o (F1) Help Screen Displays the default Keyboard mapping for various Host functions o (F2) Host Session This will reestablish the Host session from the main menu. o (F3) ELEP2 User Options Miscellaneous Options used to modify your Host environment. - Host Alarm OFF/ON If the Host session issues an alarm (e.g. incoming messages), this option will determine if ELEP2 will accept the alarm (in which case the PC beeps) or ignore it (in which case nothing happens). - Host Screen Updated OFF/ON You can have ELEP2 sound an alarm if the host session is updated but ELEP2 is not the active OS/2 session. This will allow you to keep track of host activity (e.g. incoming messages or mail) when you are busy working in other OS/2 sessions. - Display ELEP2 Menu This will let you decide if you want the ELEP2 main menu to be presented when the emulator is first started from the DOS command prompt. If this option is set off the current host session will be displayed immediately after ELEP2 starts, similar to pressing F2 from the main menu. - OIA Clock If this option is ON, a 24-hour digital clock will be displayed on the Status line (e.g. the OIA). - Row/Col If this option is ON, the current Row and Column of the Host cursor position will be displayed on the Status/OIA line. o (F4) Mouse Options Allows you to assign a Host Function Key to Mouse Button #2. This is similar to the special M2 Function key used with ELEP2KEY. You can also access this menu by clicking on the OIA Line with Mouse Button #1. o (F5) OS/2 Command Prompt Starts a secondary OS/2 Command Prompt. This is useful if you plan on installing ELEP2 on an OS/2 BOOT Disk. o (F6) Host Colors Use this option to change the colors associated with various Host attributes. o (F7) Host POR Use this option to issue a Power On Reset to the Host session. This will reset and reinitialize the Adapter card. o (F9) Exit Use this option to Exit ELEP2 and remove it from memory. ═══ 8. Host/PC File Transfer ═══ ELEP2 uses the Host File Transfer Program (HFTP) to transfer files between the workstation and a VM or MVS host session. On a VM system the HFTP is named IND$FILE MODULE. On MVS, IND$FILE is a member of a LOAD Module usually found in SYS1.CMDLIB, but its location may vary on your particular system. When transferring a file using the HFTP, the user can specify that the transfer be carried out using ASCII protocol. This results in the data being translated from EBCDIC to ASCII for a download (i.e. from the Host to the PC) and from ASCII to EBCDIC for a file upload (i.e. from the PC to the Host). The HFTP uses the IBM Corporate Standard ASCII/EBCDIC translation tables. As an alternative, the user can also specify that the file transfer be carried out using BINARY Protocol. This results in the file being transfered without any translation. ═══ 8.1. ELEP2RCV ═══ The ELEP2RCV command is a DownLoad function that allows a file to be transfered from a MVS or VM Host session to the WorkStation. [DPath1]ELEP2RCV [DPath2]PCfilename [Card:]HOSTfilename [(options ] ELEP2RCV Syntax ┌────────────────────────────────────────────────────────────────┐ │ ELEP2RCV Parameters │ ├───────────────┬────────────────────────────────────────────────┤ │ PARAMETER │ DESCRIPTION │ ├───────────────┼────────────────────────────────────────────────┤ │ │ The drive and path where ELEP2RCV.EXE resides. │ │ DPath1 │ Specify this only if the file is not on the │ │ │ current directory or available via PATH. │ ├───────────────┼────────────────────────────────────────────────┤ │ │ The drive and path where the file being │ │ DPath2 │ transfered from the Host is to reside. If not │ │ │ specified, the file will be placed on the │ │ │ current directory. │ ├───────────────┼────────────────────────────────────────────────┤ │ PCfilename │ The name of the workstation file that is to │ │ │ receive the transfered file. │ ├───────────────┼────────────────────────────────────────────────┤ │ │ The number of the Adapter Card that is to │ │ │ receive the File Transfer request. ELEP2 can │ │ │ support up to 4 adapter cards so this value │ │ Card │ can be 1, 2, 3, or 4. By default the request │ │ │ will go to Adapter Card #1. │ │ │ │ │ │ NOTE: You can also specify A, B, C, and D │ │ │ for the adapter cards. │ ├───────────────┼────────────────────────────────────────────────┤ │ │ For a VM File Transfer the HOSTfile name is │ │ │ specified as follows: │ │ │ │ │ │ FileName FileType [FileMode] │ │ │ │ │ HOSTfilename │ If the FileMode is not specified, it defaults │ │ │ to *. │ │ │ │ │ │ For an MVS file transfer the HOSTfilename is │ │ │ specified as follows: │ │ │ │ │ │ [']DataSetName[(member)]['][/password] │ └───────────────┴────────────────────────────────────────────────┘ ┌────────────────────────────────────────────────────────────────┐ │ Table 2. ELEP2RCV Options │ ├─────────────┬──────────────────────────────────────────────────┤ │ OPTION │ DESCRIPTION │ ├─────────────┼──────────────────────────────────────────────────┤ │ │ Specifies that ELEP2RCV will supress all output │ │ │ including error messages. If ELEP2RCV is │ │ Q[uiet] │ invoked by another program, check the return │ │ │ code for the status of the file transfer (see │ │ │ "Table: ELEP2RCV Error Codes." │ ├─────────────┼──────────────────────────────────────────────────┤ │ │ Causes the Host File Transfer Program, IND$FILE, │ │ │ to translate the host file from EBCDIC to ASCII │ │ ASC[ii] │ so that the file is readable on the workstation. │ │ │ This is the default unless the VM File Type ends │ │ │ with XXXBIN. File Transfers from an MVS host │ │ │ always default to ASCII. │ ├─────────────┼──────────────────────────────────────────────────┤ │ │ Causes the Host File Transfer Program, IND$FILE, │ │ BIN[ary] │ to transfer the Host file without translating │ │ │ from EBCDIC to ASCII. This is the default when │ │ │ the VM File Type ends with XXXBIN. │ ├─────────────┼──────────────────────────────────────────────────┤ │ │ Causes the Host File Transfer Program, IND$FILE, │ │ │ to insert carriage return and line feed charac- │ │ CR[lf] │ ters as the last two characters of each line │ │ │ before transfering it. This is the default for │ │ │ ASCII transfers. │ ├─────────────┼──────────────────────────────────────────────────┤ │ │ Prevents the Host File Transfer Program, │ │ │ IND$FILE, from inserting carriage return and │ │ NOCR[lf] │ line feed characters as the last two characters │ │ │ of each line before transfering it. This is the │ │ │ default for BINARY transfers. │ ├─────────────┼──────────────────────────────────────────────────┤ │ │ By default, if the target PC File already │ │ │ exists, ELEP2RCV will overwite it with the new │ │ EX[clusive] │ copy. This option allows you to protect │ │ │ existing files by specifying that the down- │ │ │ load will fail if the file alrea │ ├─────────────┼──────────────────────────────────────────────────┤ │ │ Allows you to attach the information from the │ │ APP[end] │ transfer to the end of an existing workstation │ │ │ file. By default, the workstation file will be │ │ │ replaced. │ ├─────────────┼──────────────────────────────────────────────────┤ │ │ Specifies the period of time that ELEP2RCV waits │ │ │ for the Host File Transfer Program to respond │ │ │ before the file transfer request is cancelled. │ │ │ The value nn specifies the number of 5 second │ │ T(nn) │ increments that ELEP2RCV will wait. By default, │ │ │ n=00 which indicates that ELEP2RCV will wait │ │ │ indefinitely for the host to respond. In the │ │ │ latter case, you can use Ctrl-Break to abort the │ │ │ file transfer. │ ├─────────────┼──────────────────────────────────────────────────┤ │ │ By default, ELEP2RCV will use the XFERELEP EXEC │ │ │ on VM systems. This option tells ELEP2RCV to │ │ │ issue a call directly to IND$FILE (or equiv- │ │ RAW │ alent) on the VM system. You can use this │ │ │ option when you XFERELEP is not installed or if │ │ │ you do not need the 'fancy' enhancements avail- │ │ │ able with XFERELEP; e.g. Maintaining the Time │ │ │ and Date stamps. │ ├─────────────┼──────────────────────────────────────────────────┤ │ │ By default, when downloading from a VM system, │ │ │ the Time and Date stamps of the VM file will be │ │ NEW │ preserved. This options tells ELEP2RCV to │ │ │ instead give the new PC file the current date │ │ │ and time. │ └─────────────┴──────────────────────────────────────────────────┘ ┌────────────────────────────────────────────────────────────────┐ │ Table 3. ELEP2RCV Error Codes.. Error Codes returned after │ │ Invoking ELEP2RCV │ ├───────┬────────────────────────────────────────────────────────┤ │ CODE │ DESCRIPTION │ ├───────┼────────────────────────────────────────────────────────┤ │ 00 │ File Transfer Completed │ ├───────┼────────────────────────────────────────────────────────┤ │ 01 │ ELEP2DD.SYS is not loaded. │ ├───────┼────────────────────────────────────────────────────────┤ │ 02 │ Timeout value must be numeric │ ├───────┼────────────────────────────────────────────────────────┤ │ 03 │ No PC File Name specified │ ├───────┼────────────────────────────────────────────────────────┤ │ 04 │ No Host File Name specified │ ├───────┼────────────────────────────────────────────────────────┤ │ 05 │ Invalid Host File Name │ ├───────┼────────────────────────────────────────────────────────┤ │ 06 │ PC File could not be Opened │ ├───────┼────────────────────────────────────────────────────────┤ │ 07 │ Invalid Option : xxxxx │ ├───────┼────────────────────────────────────────────────────────┤ │ 08 │ ELEP2 is not Active on Card #1 │ ├───────┼────────────────────────────────────────────────────────┤ │ 09 │ ELEP2 is not Active on Card #2 │ ├───────┼────────────────────────────────────────────────────────┤ │ 10 │ ELEP2 is not Active on Card #3 │ ├───────┼────────────────────────────────────────────────────────┤ │ 11 │ ELEP2 is not Active on Card #4 │ ├───────┼────────────────────────────────────────────────────────┤ │ 12 │ Timeout During Host Communication : Transfer Aborted │ ├───────┼────────────────────────────────────────────────────────┤ │ 13 │ File Transfer halted by User Interrupt │ ├───────┼────────────────────────────────────────────────────────┤ │ 14 │ TRANS## - (Host Error Message) │ ├───────┼────────────────────────────────────────────────────────┤ │ 15 │ Transmit Error : Transfer Aborted │ ├───────┼────────────────────────────────────────────────────────┤ │ 16 │ Unknown Error : Transfer Aborted │ ├───────┼────────────────────────────────────────────────────────┤ │ 18 │ No Space is left on the Device │ ├───────┼────────────────────────────────────────────────────────┤ │ 19 │ Delay value must be Numeric │ ├───────┼────────────────────────────────────────────────────────┤ │ 27 │ Host Input Field not available : Transfer Aborted │ ├───────┼────────────────────────────────────────────────────────┤ │ 28 │ Host Input Field not Large Enough : Transfer Aborted │ ├───────┼────────────────────────────────────────────────────────┤ │ 29 │ No Host File foind matching fn ft fm specified │ └───────┴────────────────────────────────────────────────────────┘ ═══ 8.2. ELEP2SND ═══ The ELEP2SND command is a UPLOAD function that allows a file to be transfered from a WorkStation to a VM or MVS Host session. [DPath1]ELEP2SND [DPath2]PCfilename [Card:]HOSTfilename [(options] ELEP2SND Syntax ┌────────────────────────────────────────────────────────────────┐ │ Table 4. ELEP2SND Parameters │ ├───────────────┬────────────────────────────────────────────────┤ │ PARAMETER │ DESCRIPTION │ ├───────────────┼────────────────────────────────────────────────┤ │ │ The drive and path where ELEP2SND.EXE resides. │ │ DPath1 │ Specify this only if the file is not on the │ │ │ current directory or available via PATH. │ ├───────────────┼────────────────────────────────────────────────┤ │ │ The drive and path where the file being │ │ DPath2 │ transfered to the Host resides. If not speci- │ │ │ fied, the file must be on the current direc- │ │ │ tory. │ ├───────────────┼────────────────────────────────────────────────┤ │ PCfilename │ The name of the workstation file to be sebt to │ │ │ the Host. │ ├───────────────┼────────────────────────────────────────────────┤ │ │ The number of the Adapter Card that is to │ │ │ receive the File Transfer request. ELEP2 can │ │ │ support up to 4 adapter cards so this value │ │ Card │ can be 1, 2, 3, or 4. By default the request │ │ │ will go to Adapter Card #1. │ │ │ │ │ │ NOTE: You can also specify A, B, C, and D │ │ │ for the adapter cards. │ ├───────────────┼────────────────────────────────────────────────┤ │ │ For a VM File Transfer the HOSTfile name is │ │ │ specified as follows: │ │ │ │ │ │ FileName FileType [FileMode] │ │ │ │ │ HOSTfilename │ If the FileMode is not specified, it defaults │ │ │ to A1. │ │ │ │ │ │ For an MVS file transfer the HOSTfilename is │ │ │ specified as follows: │ │ │ │ │ │ [']DataSetName[(member)]['][/password] │ └───────────────┴────────────────────────────────────────────────┘ ┌────────────────────────────────────────────────────────────────┐ │ Table 5. ELEP2SND Options - VM and MVS │ ├───────────────┬────────────────────────────────────────────────┤ │ OPTION │ DESCRIPTION │ ├───────────────┼────────────────────────────────────────────────┤ │ │ Specifies that ELEP2SND will supress all │ │ │ output including error messages. If ELEP2SND │ │ Q[uiet] │ is invoked by another program, check the │ │ │ return code for the status of the file │ │ │ transfer (see "Table: ELEP2SND Error Codes." │ ├───────────────┼────────────────────────────────────────────────┤ │ │ Causes the Host File Transfer Program, │ │ │ IND$FILE, to translate the WorkStation file │ │ │ from ASCII to EBCDIC so that the file is read- │ │ ASC[ii] │ able on the Host. This is the default unless │ │ │ the VM File Type ends with XXXBIN (e.g. ELEP2 │ │ │ EXEBIN) or the PC File Extension is one of the │ │ │ following: EXE OBJ DLL LIB COM FLS SYS ZIP BIN │ │ │ RAM │ ├───────────────┼────────────────────────────────────────────────┤ │ │ Causes the Host File Transfer Program, │ │ │ IND$FILE, to transfer the WorkStation without │ │ BIN[ary] │ translating from ASCII to EBCDIC. This is the │ │ │ default when the VM File Type ends with BIN or │ │ │ the PC File Extension is one of the following: │ │ │ EXE OBJ DLL LIB COM FLS SYS ZIP BIN RAM │ ├───────────────┼────────────────────────────────────────────────┤ │ │ Causes the Host File Transfer Program, │ │ │ IND$FILE, to delete carriage return and line │ │ CR[lf] │ feed characters from the last two characters │ │ │ of each line before storing it. This is the │ │ │ default for ASCII transfers. │ ├───────────────┼────────────────────────────────────────────────┤ │ │ Prevents the Host File Transfer Program, │ │ │ IND$FILE, from deleting carriage return and │ │ NOCR[lf] │ line feed characters from the last two charac- │ │ │ ters of each line before storing it. This is │ │ │ the default for BINARY transfers. │ ├───────────────┼────────────────────────────────────────────────┤ │ │ Allows you to attach the information from the │ │ APP[end] │ transfer to the end of an existing Host file. │ │ │ By default, the Host file will be replaced. │ ├───────────────┼────────────────────────────────────────────────┤ │ │ Specifies the period of time that ELEP2SND │ │ │ waits for the Host File Transfer Program to │ │ │ respond before the file transfer request is │ │ │ cancelled. The value nn specifies the number │ │ T(nn) │ of 5 second increments that ELEP2SND will │ │ │ wait. By default, N=00 which indicates that │ │ │ ELEP2SND will wait indefinitely for the host │ │ │ to respond. In the latter case, you can use │ │ │ Ctrl-Break to abort the file transfer. │ ├───────────────┼────────────────────────────────────────────────┤ │ │ Specifies the Logical Record Length of the │ │ LRECL nn │ Host data set whenre NN is the number of char- │ │ │ acters in each record. │ ├───────────────┼────────────────────────────────────────────────┤ │ │ Sprcifies the record foramt and character- │ │ │ istics of the host file. RECFM is followed by │ │ │ one of the following values: │ │ │ │ │ │ F Specifies that the data set contains │ │ │ Fixed-length recrds. │ │ RECFM F/V │ │ │ │ V Specifies that the data set contains │ │ │ Variable-length recrds. │ │ │ │ │ │ For new files the default is F, unless the │ │ │ CRLF option is specified, in which case V is │ │ │ the default. │ ├───────────────┼────────────────────────────────────────────────┤ │ │ By default, ELEP2SND will use the XFERELEP │ │ │ EXEC on VM systems. This option tells │ │ │ ELEP2SND to issue a call directly to IND$FILE │ │ RAW │ (or equivalent) on the VM system. You can use │ │ │ this option when XFERELEP is not installed or │ │ │ if you do not need the 'fancy' enhancements │ │ │ available with XFERELEP; e.g. Maintaining the │ │ │ Time and Date stamps. │ ├───────────────┼────────────────────────────────────────────────┤ │ │ By default, when uploading to a VM system, the │ │ │ Time and Date stamps of the PC file will be │ │ NEW │ preserved. This options tells ELEP2SND to │ │ │ instead give the new VM file the current date │ │ │ and time. │ └───────────────┴────────────────────────────────────────────────┘ ┌────────────────────────────────────────────────────────────────┐ │ Table 6. ELEP2SND Options - MVS only │ ├─────────────────┬──────────────────────────────────────────────┤ │ OPTION │ DESCRIPTION │ ├─────────────────┼──────────────────────────────────────────────┤ │ │ Specifies the amount of space allocated for │ │ │ a new data set, where Q is the quantity of │ │ SPACE (Q[,I]) │ space allocated initially for a data set and │ │ │ I is the increment of space added to the │ │ │ data set each time the previously allocated │ │ │ space is filled. │ ├─────────────────┼──────────────────────────────────────────────┤ │ │ Specifies the record format and character- │ │ RECFM(U) │ istics of the Host file. RECFM U specifies │ │ │ that the data set contains variable-length │ │ │ records. │ ├─────────────────┼──────────────────────────────────────────────┤ │ │ Specifies the average block length of the │ │ AVBLOCK(nn) │ records that will be written to the data │ │ │ set, where NN is the desired average block │ │ │ length in bytes. │ ├─────────────────┼──────────────────────────────────────────────┤ │ BLKSIZE(nn) │ Specifies the BlockSize. │ ├─────────────────┼──────────────────────────────────────────────┤ │ TRACKS │ Specifies that the unit of space is to be a │ │ │ TRACK │ ├─────────────────┼──────────────────────────────────────────────┤ │ CYLINDERS │ Specifies that the unit of space is to be a │ │ │ Cylinder │ └─────────────────┴──────────────────────────────────────────────┘ ┌────────────────────────────────────────────────────────────────┐ │ Table 7. ELEP2SND Error Codes.. Error Codes returned after │ │ Invoking ELEP2SND │ ├───────┬────────────────────────────────────────────────────────┤ │ CODE │ DESCRIPTION │ ├───────┼────────────────────────────────────────────────────────┤ │ 00 │ File Transfer Completed │ ├───────┼────────────────────────────────────────────────────────┤ │ 01 │ ELEP2DD.SYS is not loaded. │ ├───────┼────────────────────────────────────────────────────────┤ │ 02 │ /T (imeout) value must be numeric │ ├───────┼────────────────────────────────────────────────────────┤ │ 03 │ No PC File Name specified │ ├───────┼────────────────────────────────────────────────────────┤ │ 04 │ No Host File Name specified │ ├───────┼────────────────────────────────────────────────────────┤ │ 05 │ Invalid Host File Name │ ├───────┼────────────────────────────────────────────────────────┤ │ 06 │ PC File could not be Opened │ ├───────┼────────────────────────────────────────────────────────┤ │ 07 │ Invalid Option : xxxxx │ ├───────┼────────────────────────────────────────────────────────┤ │ 08 │ ELEP2 is not Active on Card #1 │ ├───────┼────────────────────────────────────────────────────────┤ │ 09 │ ELEP2 is not Active on Card #2 │ ├───────┼────────────────────────────────────────────────────────┤ │ 10 │ ELEP2 is not Active on Card #3 │ ├───────┼────────────────────────────────────────────────────────┤ │ 11 │ ELEP2 is not Active on Card #4 │ ├───────┼────────────────────────────────────────────────────────┤ │ 12 │ Timeout During Host Communication : Transfer Aborted │ ├───────┼────────────────────────────────────────────────────────┤ │ 13 │ File Transfer halted by User Interrupt │ ├───────┼────────────────────────────────────────────────────────┤ │ 14 │ TRANS## - (Host Error Message) │ ├───────┼────────────────────────────────────────────────────────┤ │ 15 │ Transmit Error : Transfer Aborted │ ├───────┼────────────────────────────────────────────────────────┤ │ 16 │ Unknown Error : Transfer Aborted │ ├───────┼────────────────────────────────────────────────────────┤ │ 17 │ PC File Does not Exist │ ├───────┼────────────────────────────────────────────────────────┤ │ 18 │ Invalid VM Option: xxxxx │ ├───────┼────────────────────────────────────────────────────────┤ │ 19 │ BlkSize value must be numeric │ ├───────┼────────────────────────────────────────────────────────┤ │ 20 │ LRECL value must be numeric │ ├───────┼────────────────────────────────────────────────────────┤ │ 21 │ AVBlock value must be numeric │ ├───────┼────────────────────────────────────────────────────────┤ │ 22 │ AVBlock, Tracks and Cylinders are Mutually Exclusive │ ├───────┼────────────────────────────────────────────────────────┤ │ 23 │ AVBlock, Tracks and Cylinders Require the SPACE Option │ ├───────┼────────────────────────────────────────────────────────┤ │ 24 │ Invalid Value(s) given for SPACE=(Quantity,Increment) │ ├───────┼────────────────────────────────────────────────────────┤ │ │ Host File Transter Option error. Your Host Control │ │ 25 │ Unit deos not have the Host File Transfer specified. │ │ │ This will cause UpLoads to fail. │ ├───────┼────────────────────────────────────────────────────────┤ │ 26 │ Delay value must be Numeric │ ├───────┼────────────────────────────────────────────────────────┤ │ 27 │ Host Input Field not available : Transfer Aborted │ ├───────┼────────────────────────────────────────────────────────┤ │ 28 │ Host Input Field not Large Enough : Transfer Aborted │ ├───────┼────────────────────────────────────────────────────────┤ │ 29 │ RECFM value must be F or V │ └───────┴────────────────────────────────────────────────────────┘ ═══ 9. ELEP2CMD ═══ The ELEP2CMD command is a utility that can send key strokes to a Host session as if entered directly by a user on the keyboard. The syntax of the ELEP2CMD command is: ELEP2CMD CommandString CommandString is a sequence of one or more of the following keys: Key Function ASCII Character A single ASCII character is one that is generated with the use of one or more PC keys. Any character with an ASCII value from 1 to 255 is valid. Please note that the term ASCII character as used by ELEP2KEY refers to the character generated in response to a certain sequence of PC keys, NOT to the physical PC keys on the keyboard. [Host Function] Anything between '[ .. ]'s will be taken as a Host Function key and sent to the host untranslated. The following is a list of valid Host Function Keys: o PF1 - PF24 o PA1 o PA2 o CLEAR o RESET o ENTER {Host Function} Anything between '{ .. }'s will be taken as a PC Function key and translated according to the currently loaded ELEP2KEY generated table. For a list of valid keys see PC Function Key Combinations You can also specify ASCII keys with their associated PCshift modifiers if you need to distinguish them from unmodified single ASCII chracters (see DEFINE There are additionally some special keys defined by ELEP2 that you can use: Key Function {1|2|3|4} If multiple adapter cards are installed, these special keys specify which card will be used. The default is to send the key to adapter card 1. Please note that you can switch between cards within the same Command String. {NE} By default an '[ENTER]' will be sent at the end of the command string, unless you specify any [Host Function]. To override this default, you can use the {NE} command. No ENTER key will be sent unless you explicitly code '[ENTER]'. {D###} By default ELEP2CMD will send keys to the host as fast it can. In certain circumstances, this might lead to ELEP2CMD sending keys faster than the host can accept them, resulting in lost key strokes. To resolve this, you can use the {D} command. This forces a delay between keys, effectively slowing down the rate at which the keys are sent to the host. The value following the D is the delay factor, specified in MilliSeconds. The CommandString starts at the first non-blank character past the ELEP2CMD command. The total length of the CommandString, including any square brackets, is 255 characters. Please note that blanks are valid ASCII characters are do as act separators. ═══ 10. ELEP2KEY ═══ The ELEP2KEY program is a utility that allows you to customize the keyboard translate tables used by ELEP2 and all of it's utilities. o Allow for differences in National Language Support (NLS) o Allow for individual preferences in the mapping of PC keys to Host keys o Allow users to create key macros, which are multiple Host keys associated with a single PC key. This can be especially useful in NLS when trying to define accented Host keys that require two (or more) Host key presses. The syntax of the ELEP2KEY command is ELEP2KEY [DEFfile [BINfile]] DEFfile is a text file that contains one or more statements that define the association between a PC key and one or more Host keys. The default DEFfile name is ELEP2KBD.DEF. BINfile is a binary file created by ELEP2KEY after it has finished processing the DEFfile. By default, the file name is the same as the DEFfile with an extension of BIN. Once the BINfile is created, it can be used as the KBDTranslationFile on the DEVICE= statement in CONFIG.SYS (see Installation There are three statements you can use in the DEFfile text file: o DECLARE Used to associate a symbolic name with a 3278/79 scan code o DEFINE Used to associate a PC key with one or more Host keys o SET Used to set various User Options In addition, blank lines and any line with a '*' in column 1 are considered comment lines and are effectively ignored by ELEP2KEY. ═══ 10.1. DECLARE ═══ The DECLARE statement is used to associate a symbolic name with a 3278/79 scan code. The syntax of the DECLARE statement is: DECLARE symbol = scan_code Where symbol A 1-10 character symbol that can be used in place of an actual 3278/79 scan code in a DEFINE statement. The symbol is case sensitive; i.e. Attn and ATTN are different symbols. scan_code Is a 3278/79 scan code as shown in 3278/79 Scan Codes can be specified either in decimal or hexadecimal prefixed by a '0x'. ═══ 10.2. DEFINE ═══ The DEFINE statement is used to map one or more 3278/79 scan codes to a single PC key. The syntax of the DEFINE statement is: DEFINE [PCshift-]PCkey = [HOSTshift-]HOSTkey[+modifier] .... PCkey PCkey can be any of the following: Character A single ASCII character is one that is generated with the use of one or more PC keys. Any character with an ASCII value from 1 to 255 is valid. Please note that the term ASCII character as used by ELEP2KEY refers to the character generated in response to a certain sequence of PC keys, NOT to the physical PC keys on the keyboard. If a more than one PC key sequence generates the same ASCII character, you can use the PCshift keys to distinguish between them. Example: * Assign the '+' generated by * the PAD+ key DEFINE + = return * Assign the '+' generated by * the shitf-= key (US Keyboard) DEFINE S-+ = S-= Valid PCshift keys are: S (Shift) SL (Shift-Left) SR (Shift-Right) C (Ctrl) CL (Ctrl-Left) CR (Ctrl-Right) A (Alt) AL (Alt-Left) AR (Alt-Right) AGR (Alt-Gr) Note: PCshift keys are necessary ONLY when trying to distinguish between two instances of the same generated ASCII value. There are some ASCII characters that can not be used directly as PC Keys. Instead, special symbols have been defined by ELEP2KEY. These symbols include: o Blank o Minus o Equal These symbols are considered single ASCII characters by ELEP2KEY. ASCII This is the same as specifying an ASCII Character but allows you to specify it by it's ASCII value. This is good for when, for various reasons, you cannot directly enter a certain ASCII character using a text editor. Example: DEFINE ASCII13 = reset+noqueue This defines the Ctrl-s key to the host RESET key The Foramat is: ASCIIhh where hh is the 2-digit HEX number representing theASCII value generated SCAN This is used to specify Extended ASCII values generated by keys that produce no printable ASCII character. For example, Alt-a through Alt-z all generate extended ASCII values. Example: DEFINE SCAN25 = k e n k a h n This defines the Alt-k key to a key macro that generates the string 'kenkahn'. SCANhh where hh is the 2-digit HEX number representing theExtended ASCII value generated Function The various PC function keys can be used along with associated PCshift modifiers. See PC Function Key Combinations PCshift + PCkeys. Special The following keys are specially defined by ELEP2: ┌─────────────────┬────────────┬─────────────────────────────────┐ │ KEY NAME │ DEFAULT │ DESCRIPTION │ ├─────────────────┼────────────┼─────────────────────────────────┤ │ │ │ You can use this to assign one │ │ M2 │ Menu │ or more host keys to Mouse │ │ │ │ Button #2. │ ├─────────────────┼────────────┼─────────────────────────────────┤ │ │ │ You can use this to assing one │ │ R-Ctrl │ Enter │ or more host keys to the Right │ │ │ │ Ctrl key. │ └─────────────────┴────────────┴─────────────────────────────────┘ HOSTkey The HOSTkey represents a key on a 'real' 3278/79 keyboard. There are three ways to designate a HOSTkey: Scan Code You can use a key's scan code ( see 3278/79 Scan Codes be either decimal numbers or hexadecimal numbers prefixed by '0x'. Symbols You can use symbolic names which have been associated with scan codes via the DECLARE statement. Local There are a few special symbols that are reserved by ELEP2. Symbol Function EndOfLine This will position the host cursor past the last non-blank character of the current input field. If the cursor is already so positioned, then it will be placed past the last non-blank character of the next input field. Menu This will activate the ELEP2 Main Menu. ScrollLeft If the number of Host columns is larger than the active mode, this will allow you to shift the Host display to the Left ScrollRight If the number of Host columns is larger than the active mode, this will allow you to shift the Host display to the Right ScrollDown If the number of Host Rows is larger than the active mode, this will allow you to shift the Host display Down ScrollUp If the number of Host Rows is larger than the active mode, this will allow you to shift the Host display Up HOSTkeys, with the exception of the special ELEP2 Local functions, can be modified with a HOSTshift state. These will, in effect, "press" the associated shift key on the Host to alter the meaning of HOSTkey. Valid HOSTshift keys include: A (Alt) S (Shift) Modifier These are special functions that somehow modify the meaning of the associated key. The valid modifiers are: Modifier Function NOQUEUE This will cause the type-ahead buffer to be flushed before the key is sent to the host. The sequence [HOSTshift-]HOSTkey[+modifier] can be repeated multiple times, each sequence separated by at least on blank. If more than one such sequence is specified, then the PCkey is said to be a Key Macro. The only restriction to macros is that the total length of the DEFINE statement cannot exceed 255 characters. ═══ 10.3. SET ═══ The SET statment is used to define various User Options. Valid Options are: ┌─────────────┬─────────┬────────────────────────────────────────┐ │ OPTION NAME │ DEFAULT │ DESCRIPTION │ ├─────────────┼─────────┼────────────────────────────────────────┤ │ KEYDELAY │ 0 │ Millisecond Delay added between SCAN │ │ │ │ Codes sent to the Host Control Unit │ ├─────────────┼─────────┼────────────────────────────────────────┤ │ TermID1. │ 2 │ Terminal ID for Card 1 │ ├─────────────┼─────────┼────────────────────────────────────────┤ │ TermID2. │ 2 │ Terminal ID for Card 2 │ ├─────────────┼─────────┼────────────────────────────────────────┤ │ TermID3. │ 2 │ Terminal ID for Card 3 │ ├─────────────┼─────────┼────────────────────────────────────────┤ │ TermID4. │ 2 │ Terminal ID for Card 4 │ └─────────────┴─────────┴────────────────────────────────────────┘ The values for Terminal ID determine the size of your Host Session. They represent the equivalent 3278/79 Model Number. ┌─────────────┬───────────────┬──────┬─────────┐ │ TERMINAL ID │ 3278/79 MODEL │ ROWS │ COLUMNS │ ├─────────────┼───────────────┼──────┼─────────┤ │ 2 │ Model-2 │ 24 │ 80 │ ├─────────────┼───────────────┼──────┼─────────┤ │ 3 │ Model-3 │ 32 │ 80 │ ├─────────────┼───────────────┼──────┼─────────┤ │ 4 │ Model-4 │ 43 │ 80 │ ├─────────────┼───────────────┼──────┼─────────┤ │ 5 │ Model-5 │ 27 │ 132 │ └─────────────┴───────────────┴──────┴─────────┘ ═══ 11. National Language Support ═══ ELEP2 handles NLS in two ways. With the ELEP2KEY program you can create a keyboard translation table for any National Language Keyboard. The use of key macros can be used to support host accent keys that require multiple host key presses. The keyboard translation table is loaded into the ELEP2DD device driver (see Installation ELEP2 programs (i.e. ELEP2CMD), as well as to any user program using the IOCTL interfaces to the device driver. In addition, ELEP2 uses special translate files to support different code pages. When ELEP2 is first started, it looks for a file called ELEPXLAT.BIN which, by default, supports code page 850. The following files are also included with the ELEP2 Package in support of other code pages: o ELEPX437.BIN o ELEPX850.BIN o ELEPX860.BIN o ELEPX863.BIN o ELEPX863.BIN Determine which code page will be active when ELEP2 is started (usually specified by the CODEPAGE= statement in CONFG.SYS). Copy the appropriate file from the above list into a file called ELEPXAT.BIN and make sure it is available (e.g. via DPATH) when you start ELEP2. Additionally, you can create your Code Page translation tables. Some sample code is provided as an example of how to do this. ═══ 12. 3278/79 Scan Codes ═══ The following is a chart that shows the scan codes associated with a 3278/79 keyboard. All values are in hex. Scan codes for 3278/79 keyboard ┌──┬──┐ ┌───┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐ ┌──┬──┐ ┌──┬──┬──┐ │50│51│ │3D │21│22│23│24│25│26│27│28│29│20│30│11│31│ │5F│5E│ │40│41│42│ ├──┼──┤ ├───┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤ ├──┼──┤ ├──┼──┼──┤ │52│53│ │36 │70│76│64│71│73│78│74│68│6E│6F│1B│15│35│ │0C│0D│ │43│44│45│ ├──┼──┤ ├───┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤ ├──┼──┤ ├──┼──┼──┤ │54│55│ │4C │60│72│63│65│66│67│69│6A│6B│7E│12│0F│ │ │0E│13│ │46│47│48│ ├──┼──┤ ├───┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤08│ ├──┼──┤ ├──┼──┼──┤ │56│57│ │4D │09│79│77│62│75│61│6D│6C│33│32│14│4E│ │ │16│1A│ │49│4A│4B│ └──┴──┘ ├───┴──┴─┬┴──┴──┴──┴──┴──┴──┴──┴──┼──┼──┴──┤ └──┴──┘ └──┴──┴──┘ │ 34 │ 10 │4F│ 18 │ └────────┴────────────────────────┴──┴─────┘ ═══ 13. PC Function Key Combinations ═══ ┌──────────────┬───┬───┬───┬───┐ │ FUNCTION KEY │ U │ S │ C │ A │ ├──────────────┼───┼───┼───┼───┤ │ F1 │ * │ * │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ F2 │ * │ * │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ F3 │ * │ * │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ F4 │ * │ * │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ F5 │ * │ * │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ F6 │ * │ * │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ F7 │ * │ * │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ F8 │ * │ * │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ F9 │ * │ * │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ F10 │ * │ * │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ F11 │ * │ * │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ F12 │ * │ * │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ PadEnter │ * │ │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ Enter │ * │ * │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ PadHome │ * │ * │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ Home │ * │ │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ PadEnd │ * │ * │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ End │ * │ │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ PadIns │ * │ * │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ Insert │ * │ │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ PadDel │ * │ * │ * │ │ ├──────────────┼───┼───┼───┼───┤ │ Delete │ * │ │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ PadPgUp │ * │ * │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ PageUp │ * │ │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ PadPgDn │ * │ * │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ PageDown │ * │ * │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ PadRight │ * │ * │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ Right │ * │ │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ PadLeft │ * │ * │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ Left │ * │ │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ PadUp │ * │ * │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ Up │ * │ │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ PadDown │ * │ * │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ Down │ * │ │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ Tab │ * │ * │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ BackSpace │ * │ * │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ Pad5 │ * │ * │ * │ * │ ├──────────────┼───┼───┼───┼───┤ │ Esc │ * │ * │ │ │ └──────────────┴───┴───┴───┴───┘ * This Shift key is valid in combination with this Function key U Unshifted S Shift C Control A Alt ═══ 14. ELEP2 API ═══ ELEP2 supports a number of general IOCTL calls via the OS/2 DosDevIOCTL API. Common aspects of all IOCTL calls include: o ELEP2DD must be opened with a device name of "\DEV\CP78DCA$". o All have a category code of 0x80 o Error codes will be passed back in the AL register. o If the IOCTL returns values they will be returned in the IOCTLParm list. Common Return Codes: AL Description 0 Request was processed OK. 1 Category Code was not 0x80 2 Function code was not recognized 3 Adapter card number wasn't 1, 2, 3 or 4. 4 Adapter card isn't active or installed ═══ 14.1. IOCTL 02 - Buffer Address ═══ ┌─────────────┐ INput: │ Card Number │ └─────────────┘ Byte ┌────────┬─────────┐ OUTput: │ Offset │ Segment │ └────────┴─────────┘ Word Word Returns the SEGMENT:OFFSET of the specified Adapter card buffer. The first 80 bytes are the Operator Information Area (OIA). Note: The data in the adapter buffer is neither ASCII or EBCDIC. Rather, it is a special Character Generator Code used by the Control Unit. These Generator Codes are defined in "GA27-2837 : 3270 Information Display System Character Set Reference". ═══ 14.2. IOCTL 03 - Send Raw Scan Code ═══ ┌─────────────┬───────┬───────────┐ INput: │ Card Number │ Flags │ Scan Code │ └─────────────┴───────┴───────────┘ Byte Byte Byte OUTput: None Sends a raw 3278/78 scan code to the control unit. Flags can have the following values: Flag Meaning 0x10 Place the controler in ALT state before sending the scan code. 0x08 Place the controller in Shift state before sending the scan code. Possible error codes: AL Error Description 7 Scan Code Queue is full ═══ 14.3. IOCTL 04 - Power On Reset ═══ ┌─────────────┐ INput: │ Card Number │ └─────────────┘ Byte OUTput: None Issue a Power On Reset (POR) request to the Host session. ═══ 14.4. IOCTL 10 - Send Translated Key ═══ ┌─────────────┬───────┬────────────┐ INput: │ Card Number │ Shift │ ASCII Code │ └─────────────┴───────┴────────────┘ Byte Byte Byte OUTput: None Sends a key to the control unit after it is translated by the current ELEP2KEY created Keyboard Translation Table. ASCII This is the ASCII value of the key to be processed. If the original key was an Extended ASCII (ASCII = 0) or an Enhanced Key (ASCII = 0xE0) then use the resulting Scan Code value instead. Shift This is the shift modifier used to produce the ASCII value. Valid values are: o (00) UnSHifted o (02) Shift o (02) Left-Shift o (04) Right-Shift o (06) Ctrl o (06) Ctrl-Left o (08) Ctrl-Right o (10) Alt o (10) Alt-Left o (12) Alt-Right o (12) Alt-Gr o (14) Extended-Left o (16) Entended-Right o (18) Enhanced-Left o (20) Enhanced-Right ═══ 14.5. IOCTL 11 - Get TID ═══ ┌─────────────┐ INput: │ Card Number │ └─────────────┘ Byte ┌─────────────┐ OUTput: │ Terminal ID │ └─────────────┘ Word Terminal ID = kkkkttt0 Returns the Terminal ID of the registered session. kkkk Keyboard type 0xE 3278/79 Typewriter Keyboard 0x5 3278/79 APL Keyboard ttt Terminal Type 0x2 Model-2 (25 lines X 80 columns) 0x3 Model-3 (33 lines X 80 columns) 0x7 Model-4 (44 lines X 80 columns ) 0x6 Model-5 (27 lines X 132 columns) Please note that these values include the OIA area. ═══ 14.6. IOCTL 12 - Set TID ═══ ┌─────────────┬─────────────┐ INput: │ Card Number │ Terminal ID │ └─────────────┴─────────────┘ Byte Byte OUTput: None Terminal ID = kkkkttt0 Sets the Terminal ID of the registered client. See IOCTL 11 - Get TID ═══ 14.7. IOCTL 13 - ELEP2 Information ═══ INput: None ┌─────────┬─────────────────────┐ OUTput: │ Version │ Active / Registered │ └─────────┴─────────────────────┘ Word Byte Returns Adapter card independed information. Version This is the hex representation of the ELEP2 Version number (e.g. 0x120a is ELEP2 V1.20A). Active This is a bit mask representing Active Adapter cards. xxxx0000 ││││ │││└ Card 4 Active ││└─ Card 3 Active │└── Card 2 Active └─── Card 1 Active Registered This is a bit mask representing Registered Adapter cards. xxxx0000 ││││ │││└ Card 4 Registered ││└─ Card 3 Registered │└── Card 2 Registered └─── Card 1 Registered Note: This IOCTL function does NOT require the Card Number. ═══ 14.8. IOCTL 14 - Move Host Cursor ═══ ┌─────────────┬───────┬────────────┐ INput: │ Card Number │ Count │ Left/Right │ └─────────────┴───────┴────────────┘ Byte Word Word OUTput: None Moves the current Host cursor a specified number of positions Left or Right. Count The number of positions to move Left or Right. Left To move the cursor to the Left, set this word to 0x16. Right To move the cursor to the Right, set this word to 0x1A. ═══ 14.9. IOCTL 15 - Host Cursor Position ═══ ┌─────────────┐ INput: │ Card Number │ └─────────────┘ Byte ┌────────────────┐ OUTput: │ Cursor Address │ └────────────────┘ Word Returns the current Host cursor address. To get the current cursor position, divide the Cursor Address by the number of Host Columns (e.g. 80 for a model-2/3/4). The quotient is the Row position and the remainder the column. ═══ 15. Multiple CUT Sessions ═══ There are some special features you can install on your control units that will allow multiple CUT sessions to be accessed via ELEP2. o Multiple addresses GENed in the NCP o These multiple addresses assigned to a single 3274/3174 port during customisation o For a 3274, RPQ 8X0002, known as Dual Logic is required. This allows a CUT mode terminal such as a 3178 (or ELEP2) to access the mutliple sessions defined for that port. Switching between sessions is achieved by pressing the 3270 "alt-INS" keystroke. This RPQ allows access to only two sessions. More can be defined on the port, but only the first 2 are accessible. o For a 3174, this ability has been formalised, and is called MLT, for "Multiple Logical Terminal". By default, ELEP2. defines the Ctrl-S key as the Host Alt-Insert key.