═══ 1. Why you should register this product ═══ Why you should register this product This program is released as shareware. This means that you have the software for a trial period, and after a reasonable evaluation time, you register the product by paying a fee to the author, if you find the program of use. Some limitations on how you can use this program exists (see the section Important license information for more about this). By registering this product you support the further development of this program. You will get the following benefits if you register: o You will get the most recent versions of Os2You and M2Zmodem. o You will get rid of the introduction screen with the delay, when logging on to the host. o You will get a Presentation Manager terminal program specially written to work with Os2You, with both asynchronous devices and named pipes. Automatic dial, logon to host, file transfer and some other goodies. o You will get a utility making it possible for Os2You to use baudrates as high as 38400, 57600 or 115200 bauds, using the standard communication device drivers included with OS/2. o You will be sleeping good tonight, without any bad conscience haunting you... ═══ 2. Introduction ═══ Introduction Os2You is a communication software allowing remote operation of any OS/2 full screen text session or DOS full screen text session, over an asynchronous line (by cable or modem), a pipe or a remote pipe (over a LAN). The program can be used with many different terminals and allows high speed file transfers between host and remote. The program may be used in two different ways. You can run the program as it is stand alone, but it is also possible to call the program from your own program, allowing your own programs to offer remote operation. Some different ideas on how to use Os2You: o Installed on your office PC, it is possible to run the PC and access the files from your home using a PC, LapTop or even a simple terminal. o Installed in a BBS, it is possible to run most character based programs on-line in the BBS (like on-line games), or run maintenance programs. o Installed in a LAN, it is possible to run programs on different machines on the network. This makes it possible for DOS requesters to run OS/2 character applications without installing OS/2 on them. o Installed in a LAN, it is possible to access asynchronous ports for outgoing traffic both from OS/2 and DOS requesters, using included programs, or any character based OS/2 communication package. o Installed on your customers systems, it makes it easy for you to service these by running their system on-line. o You could turn your OS/2 machine into a multi-user system, except that you might miss some security control, normally available on multi-user systems. The program can directly replace the program MaxPipe (from Peter Fitzsimmons), and will be compatible with more programs than MaxPipe. The program is only tested with OS/2 1.3 and OS/2 2.0, but should work OK with OS/2 1.2. It does NOT work with OS/2 1.0. If you have got the distribution files packed in a ZIP-file, you should unpack them first. Files included in this package: OS2YOU.EXE The remote software SETUP.EXE Setup program for Os2You, invoked by Os2You SETBAUD.EXE Program used by Os2You. (only to registered users). LANTERM.EXE Terminal program using DOS on a LAN or modem. LANTERM2.EXE Terminal program using OS/2 on a LAN or modem. WINTERM.EXE Terminal program using Windows 3.0 on a LAN or modem. LANBRIDG.EXE LAN Bridge, to access OS/2 Requesters remote over LAN LANREL.EXE Program to temporarily suspend Os2You to free port TERM2.EXE Terminal program using OS/2 PM on a LAN or modem (only to registered users) TERM2_V.EXE Submodule for TERM2. Required with TERM2 (only to registered users) DOS_SRV.EXE Program to access DOS compatibility boxes in OS/2 2.0. KBFILTER.COM Resident program for the DOS-box, to use function keys remote ????????.PRM Terminal description files for different terminals MODEM.SET Modem definitions SZ.CMD Command file to initiate Zmodem file transfer from host to remote using M2Zmodem (not included). RZ.CMD Command file to initiate Zmodem file transfer from remote to host using M2Zmodem (not included). OS2YOU.INF This documentation ORDER.DOC Printable Order/Invoice form If you don't think this is the most current version of Os2You, you could send a formatted diskette and four International Post reply coupons (Coupon-RВponse International, Union Postale Universelle) to my address mentioned last in this documentation. ═══ 3. Stand alone installation ═══ Stand alone installation You should copy all distributed files should be copied to a subdirectory on your hard disk. Before running Os2You, you must make that subdirectory the current directory (Working Directory). Assuming you have copied the files to subdirectory called C:\Remote this is done by the command: CD \Remote To configure the program in stand alone mode, you run the program OS2YOU from an OS/2 Command Prompt, without any parameters. Os2You will load a configuration utility running with Presentation Manager. Note, that you should always start Os2You in a full screen session. The CONFIG.SYS file should be altered to include the following lines: IOPL=YES (if you plan to use baudrates higher than 19200 bauds or DOS support) DEVICE=C:\OS2\COM01.SYS (if you have an AT class machine and use serial line) DEVICE=C:\OS2\COM02.SYS (if you have an MCA class machine and use serial line) DEVICE=C:\OS2\COM.SYS (if you have OS/2 2.0 and use serial line) AUTOFAIL=YES To avoid pop-up error messages To start the program with an existing configuration file, you start the program by typing Os2You -c at the OS/2 Command Prompt (you replace with the configuration filename you want to use, like Os2You.CFG). For more command line start options see separate section below or enter Os2You -? at the prompt. The program will now put the modem into auto answer mode (if your modem is supported by the program), and wait for an incoming call, and answer it. When the connection is established, the caller will be asked for an ID and password and validate them with your configuration file. If you have specified a callback number for the caller, the connection will be closed, and the Os2You program will call the phone number in the userlist entry (note that you should only include the phone number in the user list entry and not the Hayes command prefix ATD, but if you want, it is possible to include any dialling command in the entry). The caller will be asked for the password once again, and will then be spawned to an OS/2 full screen text session. ═══ 4. What is a named pipe? ═══ What is a named pipe? The Named pipe specification is a powerful high level communication interface, for communication between two programs. Program using named pipes can communicate with one another locally, or they can have their requests redirected across a network. The transport media is not significant for the programs using the named pipe specification. A program working locally on an OS/2 machine should work equally well across a LAN or a dial up link, as long as the transport media supports named pipes. IBM Lan Server, Microsoft Lan Manager and Novell Netware are different LANs supporting named pipes. In addition to being independent of the transport media, the named pipe specification is working across different hardware and operating system platforms. ═══ 5. Using Os2You with pipes or remote pipes with a LAN ═══ Using Os2You with pipes or remote pipes with a LAN It is possible to use Os2You in a Local Area Network (LAN) environment, by using Named Pipes. Os2You should run on any network compatible with the Named Pipe interface, like Microsoft Lan Manager, IBM Lan Server and Novell Netware. By installing Os2You in a LAN, you can access an OS/2 machine remote from a workstation connected to the LAN. You will use the program LanTerm or WinTerm if you want to access the remote machine from a DOS workstation, LanTerm2 or Terminal/2 if you will access the remote machine from an OS/2 workstation. LanTerm (for DOS) can be installed as a Terminate and Stay Resident (TSR) program, allowing you to switch between the remote OS/2 session and the local DOS session. LanTerm(2) will terminate when you logout from the remote session, or if you press Ctrl-Break. If you terminate the programs during a remote session, the remote session will be closed, and Os2You will wait for another logon. The LanTerm (for DOS) program, requires that ANSI.SYS is loaded in your CONFIG.SYS file (on the DOS machine). If you want to use Os2You in a LAN on a machine supporting Named Pipe Server applications, you should configure Os2You for stand alone mode, but select a named pipe as your communications device instead, like \Pipe\Os2You as communications device. Assuming you have installed Os2You on a machine called MyComputer, you access Os2You from a remote workstation on the LAN by starting the LanTerm(2) program like this: LanTerm \\MyComputer\Pipe\Os2You If you want to use Os2You in LAN on a machine that only supports Named Pipe Requester applications, you will have to install a program called LanBridg on any other OS/2 machine on the network supporting Named Pipe Server applications. You install LanBridg on the Named Pipe Server machine, like this: LanBridg \Pipe\Os2You \Pipe\LanTerm On the OS/2 machine you want to run remote, you install Os2You for stand alone mode, by select a named pipe as your communications device instead. Assuming you have installed LanBridg on a machine called MyServer, you should install Os2You to use the pipe name \\MyServer\Pipe\Os2You as your communications device. To access the machine from a remote machine on the LAN, you start the LanTerm(2) program like this: LanTerm \\MyServer\Pipe\LanTerm It is possible to start multiple sessions with Os2You using the same Pipe name. Each running copy of Os2You will be ready to receive a connect request from a remote user, and the user will be connected to the first free instance of Os2You. Note, that early versions of IBM LAN Server did not work properly with remote named pipes, especially not from DOS Requesters. This software is tested with OS/2 Lan Server 1.2 CSD 4093, and worked on this configuration both from OS/2 requesters and DOS requesters. But when tested with CSD 4063 the program did not work with DOS Requesters, but was OK with OS/2 Requesters. This is a chart of how Os2You and LanTerm is configured to work together: ╔═══════════════════════╗ ╔══════════════════════════════╗ ║ OS/2 Async. Host ║ ║ DOS Remote (terminal) ║ ╟───────────────────────╫─modems──╫──────────────────────────────╢ ║ Os2You <- ...║ │ ║ LanTerm ║ ╚═══════════════════════╝ │ ╚══════════════════════════════╝ │ ╔══════════════════════════════╗ │ ║ OS/2 Remote (terminal) ║ └────╫──────────────────────────────╢ ║ LanTerm2 ║ ╚══════════════════════════════╝ ╔═══════════════════════╗ ╔═══════════════════════════════╗ ║ LAN Server (host) ║ ║ DOS Requester (terminal) ║ ╟───────────────────────╫─LAN──╫───────────────────────────────╢ ║ Os2You <- \Pipe\Os2You║ │ ║ LanTerm \\Srvname\Pipe\Os2You ║ ╚═══════════════════════╝ │ ╚═══════════════════════════════╝ │ ╔═══════════════════════════════╗ │ ║ OS/2 Requester (terminal) ║ └───╫───────────────────────────────╢ ║ LanTerm2 \\Srvname\Pipe\Os2You║ ╚═══════════════════════════════╝ ╔══════════════════════════════════╗ ║ OS/2 Requester (host) ║ ╟──────────────────────────────────╢ ║ Os2You <- \\Srvname\Pipe\Os2You ║ ╚══════════════╤═══════════════════╝ │ │ ╔══════════════╧════════════╗ ╔════════════════════════════════╗ ║ LAN Server (bridge) ║ ║ DOS Requester (terminal) ║ ╟───────────────────────────╫─LAN─╫────────────────────────────────╢ ║ LanBridg ║ │ ║ LanTerm \\Srvname\Pipe\Lanterm ║ ║ \Pipe\Os2You \Pipe\LanTerm║ │ ╚════════════════════════════════╝ ╚═══════════════════════════╝ │ ╔════════════════════════════════╗ │ ║ OS/2 Requester (terminal) ║ └──╫────────────────────────────────╢ ║ LanTerm2 \\Srvname\Pipe\LanTerm║ ╚════════════════════════════════╝ ═══ 6. Using the configuration utility ═══ Using the configuration utility If you start Os2You without any parameters, or run the program Setup the configuration utility will be loaded. This is a Presentation Manager program with pull down menus. Each section under this header, describes a corresponding pull down menu. By clicking on the plus sign on the left of this item in the main menu, you will get help on the different steps in the setup utility. ═══ 6.1. Device configuration ═══ Device configuration This choice gives you a dialog panel to configure the communications device you want to use. Parameters in this panel are: Device This parameter specifies which communication device Os2You should use. You may select an asynchronous device or a named pipe. Remote named pipes (between different computers in a network) have the syntax \\ComputerName\Pipe\AnyName By clicking on the down array to the right, you will get some pre-defined devices commonly used. Modem This parameter specifies what modem you have connected to the device. The currently selected modem is displayed in this field. By clicking on the down array to the right, you will get a list with the modem configurations available. You should select the first entry Pipe connection, if you are communicating via a named pipe. If you are communicating via a cable connection (null modem) or a manual modem, you should select Cable connection in the list, and alter the definition to suit your needs. To alter the modem configurations, you should select Modem from the action bar. Databits This parameter specifies how many databits Os2You should use for the communication device. Usually you should select 8 or 7. This option is only significant if you use an asynchronous device. Stopbits This parameter specifies how many stopbits Os2You should use. Usually you should select 1 stop bit. This option is only valid if you use an asynchronous device. Parity This parameter specifies which parity to use. Usually you should for 8 data bits) or EVEN (for 7 data bits). This option is only valid for asynchronous devices. FIFO buffer This option specifies if Os2You should use the enhanced buffering capabilities (if available) in some asynchronous devices. This option should be set to enabled except for some rare situations. ═══ 6.2. Special settings ═══ Special settings This choice give you a dialog panel to configure some settings on how Os2You should work. Parameters in this panel are: Inactivity timeout This parameter specifies for how long a user can be inactive (not using the keyboard) before he is automaticly logged off. Screen update delay This parameter specified how often the remote display will be updated. Between each screen update, Os2You waits for some time, before it updates the screen again. This delay is typically set to 100 ms, but could be lowered to enhance the response time, or higher to minimize the overhead caused by Os2You. Cursor update delay When accessing sessions via the task switcher, the cursor position updates must be done in a special way, that cause screen flicker on the Os2You host machine. This parameter specifies how often the cursor position will be updated on the remote screen. If set to 0 (zero) cursor position updates will be disabled. This parameter does not affect cursor updates for sessions started by Os2You. Execution priority This parameter specifies which priority the screen update procedure should have. The higher the priority the more power the program has to fulfill its task. But if the priority is set too high, other programs don't get any power to execute at all (including the one you will execute remote). This parameter is usually set to NORMAL/4, and should be altered only if you experience severe performance problems. Detect carrier loss This parameter specifies if loss of carrier should cause an automatic logoff. When two modems are connected, there is a signal present called carrier, to show this. If the carrier suddenly disappears, this means the connection was lost. To prevent anyone else to connect to the computer, it is possible to logoff the user if this case happens. This option is only valid for asynchronous devices. Lock configuration file This option tells if Os2You should lock the configuration/login file, to prevent a logged on user, to read or alter the configuration or other users passwords. If set, it is im possible to read or alter the configuration/login file while a user is logged on. Printer port This parameter specifies which device Os2You should redirect to the remote printer. Printer redirection This parameter specifies how printer redirection will work. If you select Local no redirection will take place, and printer output will go to the host printer. If you select Remote printer output will be redirected to the remote printer. If you select Both printer output will be redirected to the remote printer, but also sent to the local (host) printer. Port request pipe This option specified which pipe name to use for port requests. It is possible to request Os2You to temporarily release the asynchronous port, while the program is waiting for an incoming call, to allow other communication tasks to use the port. These requests are sent via this pipe. If you leave this entry empty the function will be disabled. Named pipes have the syntax \Pipe\Request Show file at login This parameter specifies which file to display as information before a user logs in. This could be a logo or a help text for example. The file may contain any character, including control characters and escape sequences. If you leave this entry empty, or the file does not exists, no file will be displayed. Log file This parameter specifies which file to log messages in. In the log file Os2You stores information about the logon progress. If you leave this entry empty, no logging will take place. ═══ 6.3. Modem configuration ═══ Modem configuration This choice will give you a list with modem definitions. The two first entries are reserved for special purpose. The first entry Pipe connection, should be used if you are communicating via a named pipe. If you are communicating via a cable connection (null modem) or a manual modem the Cable connection definition should be used, and be altered to suit your needs. The only valid entries in this configuration panel are the Baudrates and handshaking parameters. These entries specify which baudrates you want to use over the cable, and what kind of handshaking to use. Se below for more specific information about the next panel. If you are communicating via an automatic modem, like a Hayes compatible modem, you should select one of the listed modems, best matching your modem. You can add, change, copy or delete modem definitions. If you select add, change or copy, you will get the modem configuration panel. The modem configuration panel has the following parameters: Description A description of the modem type. Initializing string This parameter is sent to the modem each time Os2You initializes the modem. This command should put the modem into auto answer mode. Modem control characters may be used. Dial command prefix This parameter is sent by Os2You to dial a phone number. The dial command is composed by a lot of different parameters. This parameter is sent first, to initialize the dial command. The phone number is sent between the dial prefix and suffix. Modem control characters may be used. Dial command suffix This parameter is sent by Os2You to dial a phone number. The dial command is composed by a lot of different parameters. This parameter is sent last, to finish the dial command. The phone number is sent between the dial prefix and suffix. Modem control characters may be used. Turn off auto answer This parameter is sent by Os2You to turn off auto answer. Modem control characters may be used. Hang up command This parameter is sent by Os2You to hang up the line and close the connection. Modem control characters may be used. Shutdown string This parameter is sent by Os2You before Os2You is exiting. Modem control characters may be used. Connect string 1-6 These strings are expected from the modem when the modem has successfull established a connection with another modem. Os2You inspects the result strings from the modem, and selects the correct baudrate. Os2You tries to match the result strings from the modem with the connect strings beginning with connect string 1 and ending with string 6. Therefore, if the result strings are beginning equally, you should specify the longer first. A string like CONNECT 1200 should be specified before the connect string CONNECT. Os2You always initializes the modem with the speed corresponding to connect string 1. Baudrate 1-6 These values specifies which baudrates the corresponding connect strings represent. The baudrate 1 is always used by Os2You to initialize the modem. CTS/RTS handshaking This parameter specifies if hardware handshaking using CTS/RTS should be used. Sometimes the computer can send away characters faster than your modem manage to handle. In this case the modem uses handshaking signals to tell Os2You to hold for some time. If you have a modem with higher rate between computer and modem, than between the two connected modems, you may select this option. This parameter is only significant if you use an asynchronous device. Xon/Xoff handshaking This parameter specifies if software handshaking using Xon/Xoff should be used. Sometimes the computer can send away characters faster than your modem manage to handle. In this case the modem uses handshaking signals to tell Os2You to hold for some time. If you have a modem with higher rate between computer and modem, than between the two connected modems, you may select this option. This parameter is only significant if you use an asynchronous device. ═══ 6.4. User table ═══ User table This choice will give you a list with user profiles. You can add, change, copy or delete user definitions. If you select add, change or copy, you will get the user profile panel. Note that no entries in the user profile should ever contain the character ";" (semicolon) The user profile panel has the following parameters: User name This entry specifies the name of the user. This entry is case insensitive, mikael and MIKAEL are treated equally by Os2You. User password This entry specifies the password for the user. This field may be left blank, in which case the user entry isn't protected by password. In this case any password is accepted and the password is written to the log file. This field is case sensitive, secret and SECRET are treated differently. Callback number This entry specifies the phone number for callback. If you specify a callback number, Os2You will close the connection after a successful logon, and call the specified number and establish the connection once again. This enhance the safety in the system much, and is also a way to get the phone bills on the other account. If you don't want callback operation, you just leave this field empty. Callback operation is not possible on pipe or cable connections. Shell command This entry specifies which program to execute when the user has logged on to the system. This may be any executable program which is compatible with Os2You. Note that you should include the file extension. This entry is typically set to CMD.EXE to get an OS/2 command shell. Os2You can pass symbolic parameters. Startup session This entry specifies what session to activate initially when the user has logged in. This entry must exactly match (case sensitive) an entry in the task list. This can be both an OS/2 Full Screen session or a DOS Full Screen session. It is allowed to specify a startup session, even if the user hasn't access to the task switching normally. In this case, the user won't be able to alter task. If this entry is left blank the spawned session will be initially displayed. Allow taskswitching This entry specifies if the user is allowed to switch between different tasks, and access other tasks than the one specified in the login table. If the user is not allowed to task switch some other functions in Os2You are unavailable to the user of security reasons (like the Ctrl-Break operation). Terminal definition This entry specifies which terminal definition to use for the user. The user should use a terminal matching this definition. If this field is left empty, Os2You will use a built in ANSI terminal protocol. You may click at the arrow down on the right, to get a list of available terminal definitions. ═══ 6.5. Terminal definitions ═══ Terminal definitions This choice will give you a list with terminal definitions. You can add, change, copy or delete terminal definitions. If you select add, change or copy, you will get the terminal definition panel. Terminal file Name of the terminal definition. It should have the suffix PRM, and including the suffix, not be longer than 12 characters. Initializing This parameter is sent by Os2You to initialize the terminal. Normally no initializing is required, in which case this field should be left empty. This entry expects an array of hexadecimal digits. Set cursor command This parameter is sent by Os2You to position the cursor. The cursor position command is composed by several different parameters. This parameter is sent first. This entry expects an array of hexadecimal digits. Set cursor col ofs This parameter specifies the offset for the column value. This parameter expects a decimal constant. The first column is zero. Set cursor col first This parameter specifies if the column or row value should be sent first. Set cursor separator This parameter is sent between the row and column values. This entry expects an array of hexadecimal digits. Set cursor row ofs This parameter specifies the offset for the row value. This parameter expects a decimal constant. The first row is zero. Set cursor binary This parameter specifies if the column and row values should be sent as binary values or as ASCII strings. Set cursor terminator This parameter is sent by Os2You to position the cursor. The cursor position command is composed by several different parameters. This parameter is sent last. This entry expects an array of hexadecimal digits. Set cursor pad length This parameter specifies how long each column and row value should be if the Zero pad (see below) parameter is set. This parameter expects a decimal constant. Set cursor zero pad This parameter specifies if the column and row values should be justified with leading zeros to fit the pad length. This parameter is not valid if you have selected binary column and row values. Scroll up initializing This parameter is sent by Os2You to scroll the screen up. The scroll command is composed by two different parameters. This parameter is sent first, before any scrolling, to initialize the scrolling sequence. This entry expects an array of hexadecimal digits. Scroll screen up each row This parameter is sent one time for each row to scroll. This entry expects an array of hexadecimal digits. Clear screen This parameter is sent by Os2You to clear the screen and position the cursor in home position. This entry expects an array of hexadecimal digits. Clear line This parameter is sent by Os2You to clear the remaining of the current row. This entry expects an array of hexadecimal digits. TAB length This parameter specifies with what interval tabulator stops are placed. A tab character is expanded to spaces by the terminal. If you want to disable the use of tab character to replace multiple spaces you should set this value to zero. Often terminals does not advance to the tab stop with spaces but instead only advances the cursor. In this case you must set this parameter to zero. This parameter expects a decimal constant. ANSI Colors This parameter specifies if ANSI color sequences should be used. This should only be set to YES, if the terminal is compatible with ANSI/BBS colors. If this parameter is not set, colors will be ignored. Strip control chars This parameter specifies that Os2You should ignore any control characters visible on the screen and send spaces instead. Strip high chars This parameter specifies that Os2You should ignore any characters with a higher ASCII value than 126 (decimal), except for some characters (like box-drawing) which are translated to look alike characters. ═══ 6.6. Exit setup ═══ Exit setup This choice gives you a sub-menu that lets you choice between: Save and exit The configuration is saved in the file OS2YOU.CFG, and Os2You is started (if the setup program was invoked by Os2You). Discard and exit Any changes in the configuration will be discarded, and Os2You is started (if the setup program was invoked by Os2You). Note, that changes in the modem or terminal definitions have been saved anyhow. Resume The program will continue with the setup. ═══ 7. Terminal emulation ═══ Terminal emulation To access the remote Os2You machine over an asynchronous line (cable or modem), you will need a terminal emulation program (or a terminal), with one of the terminal emulation modes supported by Os2You. It doesn't matter which operating system your terminal emulator is running. If you use OS/2 or DOS you may use the LanTerm2 (for OS/2) or LanTerm (for DOS) programs for both terminal emulation over a network using named pipes, or as an asynchronous terminal program. It will remap the keys to their corresponding Esc-sequences, and is also compatible with the Os2You binary mode (when running over a Pipe), which sometimes are faster than the terminal emulation mode, when used on fast connections. If you don't want to use LanTerm(2), you may use any other terminal program supporting one of the terminal emulation modes supported by Os2You. Currently the following terminals are supported by Os2You (ANSI is default if none selected). Terminal Description file ANSI/VT100/VT102 ANSI.PRM (not same as default) Hazeltine 1500 HAZEL.PRM (not tested) IBM 3101 IBM3101.PRM Tandberg TDV 2116 TANDBERG.PRM Televideo 910-955/ADM 5/Wyse 50 TELEVID.PRM VT52/Heath/Zenith/ADDS VP VT52.PRM Note that the description files only alter the screen output, and does not care about different keystroke combinations used by different terminals, except the ANSI escape keysequences. Also note that some terminals will work better if you run Os2You in a screen with only 24 lines (MODE CO80,24) instead of the more common 25 lines. The following terminal programs are tested and seems to work with Os2You (except when otherwise indicated): OS/Program Os2You terminal definition to use / comments DOS LanTerm Use built in ANSI (ANSI.SYS should be loaded) DOS Telix 3.15 Use built in ANSI (disable status line in Telix) DOS Procomm+ 1.0 Use external ANSI, use only 24 lines in Os2You, screen color backgrounds won't be correct DOS Procomm+ 2.0 Use external ANSI, use only 24 lines in Os2You (if you use the standard 25 line mode in Procomm+) OS2 LanTerm2 Use built in ANSI OS2 LogiComm 2.20S Use built in ANSI OS2 M2Zmodem 2.11 Use built in ANSI OS2 HyperAccess 5/2 Use external ANSI, use only 24 lines in Os2You OS2 TE/2 1.10A Use built in ANSI OS2 CKOKER 4E(070) Use external ANSI, use only 24 lines in Os2You PM PMTerm Use built in ANSI PM Term2 Use built in ANSI PM PMComm 1.07 Won't work with Os2You. Very strange scrolling handling. PM XKOKER 5A(119) Use external ANSI, use only 24 lines in Os2You If your terminal is not supported with a terminal description file, you may define your own terminal, by starting the setup utility and select Terminal in the configuration menu. The program automatically detects how many columns and lines the OS/2 session contains, but you have to configure your terminal program for a screen size with at least the same amount of columns/lines (it doesn't matter if the terminal program uses more columns/lines than the OS/2 session). It is possible to alter the screen size with the MODE-command, while connected to Os2You, as long as the screen will fit on the remote screen. To "emulate" different keystrokes, Esc sequences are used. The following Esc sequences are valid (note that upper/lower case letters are significant): Ch. Result Ch. Result Ch. Result Ch. Res Ch. Result (?????) === ====== === ====== === ====== === === === ===================== A Alt-A N Alt-N Esc Escape 1 F1 ! Shift/Ctrl/Alt-F1 B Alt-B O Alt-O t BackTab 2 F2 @ Shift/Ctrl/Alt-F2 C Alt-C P Alt-P 3 F3 # Shift/Ctrl/Alt-F3 D Alt-D Q Alt-Q w Arr up 4 F4 $ Shift/Ctrl/Alt-F4 E Alt-E R Alt-R < Arr left 5 F5 % Shift/Ctrl/Alt-F5 F Alt-F S Alt-S > Arr right 6 F6 ^ Shift/Ctrl/Alt-F6 G Alt-G T Alt-T z Arr down 7 F7 & Shift/Ctrl/Alt-F7 H Alt-H U Alt-U 8 F8 * Shift/Ctrl/Alt-F8 I Alt-I V Alt-V c Ctrl-Break 9 F9 ( Shift/Ctrl/Alt-F9 J Alt-J W Alt-W 0 F10 ) Shift/Ctrl/Alt-F10 K Alt-K X Alt-X - F11 _ Shift/Ctrl/Alt-F11 L Alt-L Y Alt-Y = F12 + Shift/Ctrl/Alt-F12 M Alt-M Z Alt-Z s Set F-key to Shift i Insert h Home u PageUp l Set F-key to Ctrl d Delete e End n PageDown a Set F-key to Alt ===================================================================== Tab Task list b Toggle binary mode Break Force Os2You to exit p Toggle physical screen Space Force Os2You to update screen ? Status information y Service functions The above screen is showed if you press Esc without any character following within approx. one second. You may select any keystroke from the menu, and the menu exits, and Os2You sends the selected keystroke to your application. If Esc is pressed and directly followed by another character, the selected keystroke is sent directly to your application, without showing the help screen. ANSI escape sequences for cursor movements are mapped to their corresponding arrow key. All characters, except Esc, are translated directly to the corresponding keystroke. ASCII 01H is translated to Ctrl-A, ASCII 02H to Ctrl-B and so on. To emulate Shift, Ctrl and Alt function keys, you have to first select which mode you want by pressing Esc-s, Esc-l resp. Esc-a first followed by the appropriate function key Esc-code. In the upper right corner of the help menu the current state of the function keys is written. The above table means that you should press Esc first and then a character. Esc-i means that you should press Esc first and then followed by i. Note that you have to press Esc twice, if you want to emulate a Esc keystroke. ═══ 8. LanTerm(2) terminal emulators ═══ LanTerm(2) terminal emulators If you use OS/2 or DOS you may use the LanTerm2 (for OS/2) or LanTerm (for DOS) programs for both terminal emulation over a network using named pipes, or as an asynchronous terminal program. It will remap the keys to their corresponding Esc-sequences, and is also compatible with the Os2You binary mode (when running over a Pipe), which sometimes are faster than the terminal emulation mode, when used on fast connections. If you want to run LanTerm2 or LanTerm on a asynchronous connection, you should start LanTerm2 with the following syntax: LanTerm2 LanTerm Example: LanTerm COM1 19200 LPT1 MY_SCRIPT.TXT TSR The device name must begin with COM (like COM1). All other parameters are optional, but must be specified in the above order if specified at all. If no baudrate is specified the program uses the default baudrate. The PRN-device parameter specifies which device redirected printer output should be sent to (see Printer redirection). When used for asynchronous communication, the programs always sets the COM-device to 8 databits, 1 stopbits and no parity. The LanTerm program for DOS, requires that ANSI.SYS is loaded in your CONFIG.SYS file. The DOS-mode program will only work with COM1 and COM2 serial ports. The programs are terminated by pressing Ctrl-Break. LanTerm (for DOS), may be installed as a Terminate and Stay Resident (TSR) program, allowing you to switch between the remote OS/2 machine and the local DOS machine. If you use LanTerm(2), you don't have to use the Esc sequences, as LanTerm(2) will map the keystrokes to the correct Esc sequences directly. If you specially want to use any of the Esc sequences above, you will have to press RightShift-Esc followed by the keycode. Scripting: LanTerm, LanTerm2 and Terminal/2 are capable of simple scripting (type of batch file processing for communications). Script files are simple text files you create with a text editor. The following commands are available: RESPOND "xxxxx" "yyyyy" DELAYED RESPOND "xxxxx" "yyyyy" "zzz" QUIT "xxxxx" INITIAL "xxxxx" EXIT RESPOND Each time the string "xxxxx" is received "yyyyy" is sent as response DELAYED RESPOND Each time the string "xxxxx" is received "yyyyy" is sent after "zzz" seconds delay (zzz is a decimal value) QUIT When "xxxxx" is received the script file is terminated. INITIAL When scripting begins the "xxxxx" string is sent. The ^ character is treated as an . Following is an example script file: INITIAL "ATDT 123456^" RESPOND "Press Enter to continue" "^" RESPOND "User name" "Mikael Wahlgren^" RESPOND "Password" "secret^" QUIT "Loading" EXIT ═══ 9. Printer redirection ═══ Printer redirection Printer output may be redirected from one device to a remote printer. Note that all output to the selected device is redirected, even output from other sessions to this device. You can select to direct printer output either to the local printer, remote printer or both. To redirect the printer output from one device to a remote printer, you should install a printer driver for the remote printer on the selected device. Example: o You have a IBM Proprinter 4201 connected to LPT1 on the remote computer running LanTerm, LanTerm2 or Terminal/2. o Install the IBM Proprinter 4201 printer driver for LPT2 on the host computer. o Install Os2You to redirect LPT2 to remote computer. o All output to LPT2 on the host will now be redirected to the remote printer. Other printer devices, like LPT1, will be unaffected. Printer redirection requires that the terminal program on the remote computer is capable of handling this feature. To use this feature, you will have to use LanTerm, LanTerm2 or Terminal/2. If you use a terminal program that can't handle this feature, and have installed Os2You to redirect printer output to remote printer, all printing will be put on hold. ═══ 10. File transfer ═══ File transfer By entering the Os2You Service Functions menu by pressing Esc-y, you can send and receive files to/from the Os2You host. Os2You will ask you for filenames to send or directory to place received files in. You may select multiple files by using standard wild cards. Os2You will use standard Ymodem-Batch protocol for these types of file transfers. If you have Terminal/2, LanTerm2 or WinTerm, the file transfer protocol will automaticly be invoked. If you use any other terminal program, you will be requested to start the file transfer procedure. If you have M2Zmodem version 2.09 or later (another program from the same source), you may use it to up/download between the host and remote. File transfers using M2Zmodem is faster, by using standard Zmodem protocol, and is invoked from the command line. This solution also allows auto Zmodem uploads. I suggest that you copy the M2Zmodem.EXE and M2Zmodem.MSG files into the same directory you used for Os2You. Then you should include this directory in your PATH and DPATH. It is now possible to receive files from host to remote (download) by just typing Sz at the command prompt (any wildcards allowed). If you run LanTerm2 or LanTerm as terminal program at the remote (or any other terminal program with Zmodem autodownload), the file transfer will be automatically started at the terminal side too, if not, you have to request download in your terminal program. If you use LanTerm (for DOS), you should get DSZ file transfer program (shareware from Omen Technology). If you use LanTerm2 (for OS/2), you should get M2Zmodem file transfer program (shareware from the same place you got Os2You). Both programs should be installed in the same directory as LanTerm(2), or in a directory specified in your path. To send files from remote to host (upload) just type Rz at the command prompt. When you request upload in your terminal program, you should enter which files to send. If you have called your receive batch file Rz.Cmd you don't even have to start the batch file before starting your send procedure, because the Rz command is executed automatically by the Zmodem initializing procedure, if you are at the command line when you start the send procedure (auto Zmodem download). If you don't know how to get M2Zmodem, you could send a formatted diskette and four International Post reply coupons (Coupon-RВponse International, Union Postale Universelle) to my address mentioned last in this documentation. ═══ 11. Task list ═══ Task list By pressing Esc-tab (first and then 1bH, 09H) you will get a list of programs currently running. It might look like this: ╔══════════════════════════════════╗ ║ -> 1 Return to original session ║ ║ 2 Switch to ║ ║ 3 OS/2 window ║ ║ 4 Group - Communication ║ ║ 5 M2ZMODEM.EXE ║ ║ 6 Os2You.EXE ║ ║ 7 TS.EXE ║ ║ 8 Group - Main ║ ║ 9 PM Diary ║ ╚══════════════════════════════════╝ The task list displays all running programs. If the list is too long for the screen, you may scroll up and down with the PgUp and PgDn keys. You enter the digit displayed before the program you want to switch to, or move the arrow with the cursor keys. If you want to return to the original session (the one you started from) you should select 1. You can only switch to programs running in an OS/2 Full Screen text session or DOS Full Screen text session (if you run Os2You with OS/2 2.0 or later). If you try to switch to another session, you will get an error message. Note that the session you select is switched to the foreground at the host machine, and will interrupt any user running another session at the machine from the keyboard. It will also interrupt any other user running the same host through Os2You running other session than their original session. The session you selected should not be switched to the background, while you are connected to it, as the user will be returned to the task-list if the task is switched to background. ═══ 12. DOS-compatibility box ═══ DOS-compatibility box If you run OS/2 2.0 (or compatible) It is possible to switch to a Full Screen DOS compatibility box in OS/2 2.0. Note that any user running at the physical screen will be interrupted when the DOS-box is entered. Otherwise you can access the DOS-box just like you access the other OS/2 sessions. For the DOS-box access to work, you must take some extra care to configure your system. First, the DOS_SRV.EXE program must be located in the directory you installed Os2You in (or in a pathed directory). If this is not the case you will get a message like "DOS Keyboard emulation not available!". Then you must load the resident program KBFILTER.COM in the DOS-box you want to access remotely, in order to get the function keys to work (other characters will work without this program). You can either load the program from the remote, when you have switched to the DOS-session, or you can load the program KBFILTER.COM in your AUTOEXEC.BAT file. The program will require very little memory (less than 1 Kb) and interfere very little with your usual work (the Esc-key can seem a little slow). If you can see the DOS-box screen output, but not send any keystrokes at all, this probably means that DOS_SRV.EXE isn't loaded properly. If you can send alphanumerical characters, but no function keys, that probably means that KBFILTER.COM isn't loaded properly. Note that KBFILTER.COM could be loaded several times. This is not recommended. ═══ 13. Sharing ports with other communication programs ═══ Sharing ports with other communication programs If you have set up Os2You in HOST mode to answer incoming calls, it is possible to temporarily suspend Os2You, to let other communication programs access the port. To do this you have to enter a pipe name in the configuration parameter Port request pipe (like "\PIPE\RELEASE"). To do this you run the program LanRel with one of the following syntaxes: LanRel \Pipe\Release LanRel \\Srvname\Pipe\Release if the port request pipe was called \Pipe\Release. It is possible to use both local and remote pipes, so you can suspend Os2You on your local or LAN Os2You Host. The pipe name may also be a pipe bridged by the LanBridg software. When Os2You gets a port request, it releases the communication port and halts for one (1) minute, leaving the port available. By using LanRel you will have 1 minute to start any other communication program accessing the port, and Os2You will remain suspended until the port is available again. Os2You automatically detects when the port is available again, and will resume its operation again. The port is re-initialized when operation is resumed. It is also possible to access the port directly with LanTerm or LanTerm2 by starting these programs with the Port request pipe name as a parameter to the LanTerm(2) program, instead of the communication device name ═══ 14. Multi user configuration ═══ Multi user configuration By using Os2You you may actually use OS/2 in a multi user like manner. Note that Os2You lacks any sort of security control for file managing, which a "normal" multi user operating system includes. ═══ 15. Compatibility with other programs ═══ Compatibility with other programs The following programs are tested and seems to work with Os2You (to be run via Os2You remote). Note that some tests were rather brief and compatibility is not guaranteed (if not otherwise noted, programs are OS/2 versions): CMD.EXE 1.30 (IBM OS/2 1.30) and all full screen programs included with OS/2 4OS2.EXE 0.95 (problems with forced termination) Brief 3.0 (some ALT-key combinations will react very slowly) JPI TopSpeed environment and VID MS C 6.00, PWB and other compiler components (CVP program output fails) IBM Lan Server 1.3 (NET-program) M2Zmodem TE/2 Logicomm Ckoker (Kermit) Os2You (and included programs like LanTerm and LanTerm2) MsgEd 2.06 Binkley term 2.30 Maximus 2.00 Ommm 1.40 ConfMail 2.0/3.31 Mountain FileSafe streamer software PKZip 1.02 (and included programs) Zoo 1.51 LHarc 1.13 DDump 0.01 hex editor Hack 1.03 NetHack 3.0 Column (tetris like game) Tetris2 Cave (adventure game) COMMAND.COM (DOS) WordPerfect 5.0 (DOS) Turbo Pascal 5.0 The following programs are tested and do not work with Os2You: Lotus 1-2-3 3.0 (keyboard input works but no screen output) Note: The above programs are trademarks of their respective company. ═══ 16. Command line options ═══ Command line options If you want to start the program from the OS/2 Command prompt without the phone answering capabilities, or want to call the program from your own application, the program is started with some parameters. The program may use a hot file handle (already opened). It is the callers responsibility to set the communication port as wanted, and Os2You will use the current settings when called. When the program exits, it restores the communication port to its previous state. If a program was successfully spawned the program will exit with Exit-code set to zero. If the program failed by any reason, the Exit-code will be set to a non zero value. The parameters may be entered at the command line or/and set in the environment variable OS2YOU. If both the environment variable and a command line is entered, the environment variable will be parsed first and the command line after that, making command line parameters override any settings in the environment variable. The environment variable is set by the SET OS2YOU=xxx xxxx xxxx xxx command. The following parameters are available (note that they should be lower case). Switch Description -c Use the configuration file . This option is only valid if you use HOST mode or callback processing. -d Do not detect carrier loss. Normally the program monitors the carrier and close the remote session if carrier is lost. By adding this parameter you override this behavior. -e Execute program for the remote session (typically CMD.EXE). This parameter is the last one read by Os2You. All following parameters are sent to the called program. Default is CMD.EXE. -f Delay between screen updates with milliseconds. Default is 100 mSecs (0.1 seconds). -g Go to session directly. -i Exit if keyboard inactive in seconds. If set to zero no inactivity time-out is used. Note that only the keyboard activity is monitored, and that the inactivity counter is active even if the screen alters. Default is zero (no inactivity counter). -l Use device for communication. If is replaced by a percent sign and a decimal value (for example %5), the program will use the device handle (5 in the example) for communication. The program may also use pipes handles for communication. This parameter has no default value, and if the parameter is omitted, the program will start up in HOST mode. -n Use parameters for user in the configuration file, including callback processing to . This parameter is only valid if you do not start the program in HOST mode. If you want to include spaces in the you should replace the space by an underscore "_", or surround the parameter with double quotes. Default is to not use any entries in the configuration file. -p Use physical screen area for remote. If this parameter is specified the program will use the physical screen area for remote, and not the screen area owned by the session. If this parameter is specified you can't use the -s parameter. Default is to use the session screen area. -prn Redirect printer output for to the remote printer. This parameter works in combination with the -redir option. -prty Screen update priority 0-39. This parameter sets the priority for the remote screen update thread. Zero is the lowest priority and 39 the highest. Priority 0-9 executes with IDLE priority, 10-19 has REGULAR priority, 20-29 HIGH priority and 30-39 TIME CRITICAL priority. If priority is set to 14 the screen update thread has the exact same priority as the executed program. Default is 14 giving the update thread exactly the same priority as the executing program. Setting the priority to a higher value (15) may result in smother operation. -redir Specifies how printer redirection should work. If is 1, printer output will go to local (host) printer. If is 2 printer output will be redirected to the remote printer. If is 3 printer output will be redirected to the remote printer, but also sent to the local (host) printer. -s Disable the built in task switcher and physical screen. If you don't want the remote user to be able to switch between running tasks, you should disable this feature. If this parameter is specified you can't use the -p parameter. Default is to enable the task switcher. -t Use terminal definition file . The file extension .PRM is added if no extension is included. This parameter has no default value, instead the program has a built in table for ANSI terminal emulation. Examples: Os2You -l COM1 -f 1000 -i 300 -e CMD.EXE /K DIR This command will tell Os2You to use COM1 and update the screen each 1000 millisecond. If no remote keystroke is received within 300 seconds the program will be forced to exit. CMD.EXE is loaded for remote operation with the parameters /K DIR (which will tell CMD.EXE to display a directory list). Os2You -l %4 -f 100 -i 0 -d -e CMD.EXE This command will tell Os2You to use device handle 4 (decimal value) and update the screen each 100 millisecond. If carrier i lost the program will be terminated. but no inactivity timer is set. Os2You -l %4 -f 100 -i 0 -d -n Mikael_Wahlgren This command is similar to the previous example, except that the program will spawn the program and use the parameters indicated by the username Mikael Wahlgren in the configuration file. By using the -n option it is possible to spawn different session depending on username. To be compatible with MaxPipe (TM of Peter Fitzsimmons) an alternate calling syntax is automatically invoked, if the first parameter does not begin with a minus sign "-". In this case, the syntax will be like: Os2You ... Tells which communication device to use. It is possible to pass a hot device handle by replace the device name with a number corresponding to a the device handle decimal coded (like %4). The device name may be replaced by a pipe name, but special care should be taken, when using this possibility. The best choice when using pipes is to use the stand alone interface. Tells which program to load for remote operation. (Typically CMD.EXE). ... The remaining parameters are optional and are passed as parameters to ... . All other values are set to their default when using this syntax. To select which communication parameters to use, you should use the MODE program, included with the operating system. See more in the documentation for the operating system to see how to configure your communication line. All communication parameters set with MODE, will be used with Os2You. Example: MODE COM1:2400,N,8,1,OCTS=ON,DTR=ON,RTS=HS,BUFFER=ON This command will tell Os2You to use baud rate 2400, no parity, 8 data bits, 1 stop bit, hardware handshaking CTS/RTS and use the extended hardware buffering capabilities. If you want to install Os2You with Maximus (TM) BBS, these lines may be of help: UsrRemote Xtern_Run OS2YOU.EXE_-l_%%%P_-f_1000_-i_300_-t_ANSI Sysop "/OS-2" Update delay 1 second, inactivity time-out 300 seconds, terminal ANSI, spawn a CMD.EXE session. UsrRemote Xtern_Run OS2YOU.EXE_-l_%%%P_-e_MyProg.EXE Sysop "/OS-2" Use Os2You defaults, spawn program MyProg.EXE ═══ 17. Use within a BBS ═══ Use within a BBS This program can be used to access the command prompt from your BBS, for maintenance, or to run programs as doors within the BBS. The following is some examples of how to install Os2You in a BBS (Maximus 2.00) Start a command prompt from Maximus with the following syntax: UsrRemote Xtern_Run Os2You.EXE_-l_%%%P_-f_1000_-s_-t_ANSI_-e_CMD.EXE Normal "Shell" Start an OS/2-program called "MyProg" from Maximus with the following syntax: UsrRemote Xtern_Run Os2You.EXE_-l_%%%P_-f_1000_-s_-t_ANSI_-e_CMD.EXE_/C_MyProg Normal "MyProg" Start a DOS-program called "MyDOS" from Maximus with the following syntax: UsrRemote Xtern_Run Os2You.EXE_-l_%%%P_-f_1000_-s_-t_ANSI_-g_"DOS.BAT"_-e_CMD.EXE_/C_DOS Normal "MyDOS" You should have a batch file called DOS.BAT like this: @echo off MYDOS ═══ 18. Commonly asked questions and problems ═══ Commonly asked questions and problems What terminal program should I use to communicate with Os2You and which terminal emulation mode? For the best possible emulation, you should use the included LanTerm (for DOS) or LanTerm2 (for OS/2). If you want to use your favorite terminal program you should select ANSI-BBS emulation if it is available and the built in or ANSI.PRM terminal mode in Os2You. When started in HOST-mode configured for a cable connection, Os2You loops around, asking for and eventually logon parameters, even if no user are calling. If you have installed Os2You for cable, Os2You relies entirely on the DCD (Data Carrier Detect) signal on the RS232-interface to reflect the real carrier state. DCD is a signal that tells the computer that the modem is connected to another modem. You have to verify that the signal on the RS232 interface is connected to the signal at the modems interface, and that the modem is configured to reflect the real carrier state. When logging on to Os2You HOST mode, I first get a lot of garbage characters, before I get the Press Enter message. This is normal, if you use a cable connection and you have configured Os2You for multiple baud rates. Os2You tries to find the correct baud rate for you. The screen doesn't scroll correctly. Scrolling has proved to be the hardest part to implement. This has to do with the fact that the Os2You program has no way to find out how many lines your terminal program on the remote has. The built in ANSI driver in Os2You sends a command to move the cursor down 999 lines and sends a LF. If the built in ANSI terminal doesn't work, you should modify ANSI.PRM (or the terminal definition file that is appropriate for your terminal), and alter the scroll sequences. Background colors are not displayed correctly at the remote screen, using ANSI colors. When Os2You sends a ClrEol (Clear to end of line) sequence, it assumes that the line is cleared with the attribute currently in use. This is how it works in the ANSI driver for OS/2. Some terminal emulators though, fill the cleared line with the standard attribute in opposite to the currently used attribute. When running some programs, I don't get any output from it. Os2You is not compatible with programs running in Presentation Manager. Some programs running in OS/2 full screen text sessions require the physical screen buffer. Those programs won't be 100% compatible with Os2You, but you might be able to run the program if you use the task switcher and switch to the offending program, as programs selected by the task switcher will run in the foreground and have the physical screen adressable. When running some programs, I get output from the program, but the keyboard doesn't seem to work. The programs keyboard handling is not compatible with Os2You. Please report the problem, and if possible, send a copy of the offending program. ═══ 19. Hardware information ═══ Hardware information This section contains some useful technical hardware information, like modem cabling and hardware selection. If you click at the plus sign on the left of this header in the main menu, you will get a list of available items. ═══ 19.1. Hardware requirements ═══ Hardware requirements Os2You should run on any system that can run OS/2 Presentation Manager and OS/2 Full Screen text applications. o Os2You assumes that you use a display card with 2 bytes/character attribute format, compatible with the CGA/EGA/VGA standards. o Os2You have modest memory requirements, and should run fine with almost any system that can run OS/2. o Os2You is compatible with any asynchronous port, compatible with the OS/2 specification. FIFO buffering can be used, and is recommended. o Os2You can use any Hayes compatible modem, and it should be possible to configure Os2You for almost any automatic modem. MNP5 or V.42" data compression is very valuable when using Os2You. o Os2You emulates an enhanced keyboard. ═══ 19.2. Creating a null-modem ═══ Creating a null-modem If you use Os2You to access an OS/2 session from a computer or terminal using a cable, this is how such a cable (null-modem) should be configured, to work with Os2You. 25 Dsub 25 Dsub TxD 2 ──────────── 3 RxD RxD 3 ──────────── 2 TxD RTS 4 ──────────── 5 CTS CTS 5 ──────────── 4 RTS GND 7 ──────────── 7 GND DTR 20 ─────────┬── 6 DSR └── 8 DCD DSR 6 ──┬───────── 20 DTR DCD 8 ──┘ 9 Dsub 9 Dsub TxD 3 ──────────── 2 RxD RxD 2 ──────────── 3 TxD RTS 7 ──────────── 8 CTS CTS 8 ──────────── 7 RTS GND 5 ──────────── 5 GND DTR 4 ─────────┬── 6 DSR └── 1 DCD DSR 6 ──┬───────── 4 DTR DCD 1 ──┘ 9 Dsub 25 Dsub TxD 3 ──────────── 3 RxD RxD 2 ──────────── 2 TxD RTS 7 ──────────── 5 CTS CTS 8 ──────────── 4 RTS GND 5 ──────────── 7 GND DTR 4 ─────────┬── 6 DSR └── 8 DCD DSR 6 ──┬───────── 20 DTR DCD 1 ──┘ ═══ 19.3. Creating a modem cable ═══ Creating a modem cable If you use Os2You with an asynchronous modem, this is how the cable between your computer and modem should look like to work with Os2You. 25 Dsub Modem TxD 2 ──────────── 2 RxD 3 ──────────── 3 RTS 4 ──────────── 4 CTS 5 ──────────── 5 DSR 6 ──────────── 6 GND 7 ──────────── 7 DCD 8 ──────────── 8 DTR 20 ──────────── 20 9 Dsub Modem TxD 3 ──────────── 2 RxD 2 ──────────── 3 RTS 7 ──────────── 4 CTS 8 ──────────── 5 DSR 5 ──────────── 6 GND 5 ──────────── 7 DCD 1 ──────────── 8 DTR 4 ──────────── 20 ═══ 20. Programming information ═══ Programming information This section contains some useful technical programming information. If you click at the plus sign on the left of this header in the main menu, you will get a list of available items. ═══ 20.1. Communication with pipes ═══ Communication with pipes Os2You creates a named pipe with unlimited pipe instances possible. The pipe is a full duplex message pipe with no write behind allowed. Os2You tries to allocate a 16 Kbyte output buffer and 1 Kbyte input buffer, but will work with any buffer size actually supplied by the API. If the pipe is broken by Os2You, this will mean that Os2You has ended the conversation with the terminal program. If the pipe is broken by the terminal program during a conversation, Os2You will treat this as a carrier loss, and try to end the running program, and the current remote session. Reading the pipe A terminal program wishing to communicate with Os2You via pipes should preferable open the pipe in blocking mode and in message read mode. Note that when coding for a single tasking environment (like DOS), it might be necessary to use non blocking mode, as you have to serve writing, even if you don't get anything reading the pipe. It is possible to put the Os2You program in "Anti blocking mode", which means that Os2You will send "empty" messages (=Flag set to 0) to prevent blocking when reading the pipe. This is done by sending first Esc and then zero (1Bh, 00h). A message will have the following structure: RECORD Flag : CHAR; (* One byte character *) CurRow : CARDINAL; (* Two byte unsigned integer *) CurCol : CARDINAL; (* Two byte unsigned integer *) Length : CARDINAL; (* Two byte unsigned integer *) Reserved : ARRAY [1..30000] OF CHAR; (* 30000 byte character buffer *) END; The message is of variable size. When a message is received, the Flag character will reflect the type of message received. If Flag is set to 00H this indicates the session begins. No special action is required of the terminal program, but it might send a Esc-b sequence to set Os2You to binary screen mode. If Flag is set to 01H this indicates a cursor position command. The CurRow and CurCol parameters will contain the cursor positions the terminal program should set. If the Length value is non-zero a new message will follow immidiatly, containing a direct image of the video buffer. The whole message (or as much of it that is allowed by the terminal programs screen size), should be placed in the logical video buffer, and be displayed. Note, that if CurRow and CurCol both are set to 65535 (all bits set), this means that the Os2You session is ending. If Flag is set to any other value than 00H or 01H, the whole message will contain text that should be displayed at the screen with a ordinary write command. It might contain ANSI-sequences, so your terminal program should set the ANSI-mode on. If the terminal can't read the pipe in message mode, it is still possible to get all functionality using ordinary byte stream mode, although this will require more coding. It is recommended to use non blocking mode when writing DOS-applications as DOS is not reentrant and you can't write to the pipe, while the program is blocked in a read operation. The program should behave in the following manner: Read a block of any size from the pipe. Scan and retain the position for the first occurance of a 00H byte in the block. Scan and retain the position for the first occurance of a 01H byte in the block. Write the characters before the first occurance of 00H or 01H byte to screen, using ordinary write-commands. If the position for the 00H byte is less than the position for 01H byte, a Flag of 00H is assumed, and proper action is taken. If the position for the 01H byte is less than 00H byte a Flag of 01H is assumed. Assure that you have at least six characters following the Flag byte, and map them to the message block showed above. Set the cursor position according to this. If the Length value is set in this block, you should read Length bytes further (including any previous read bytes not used yet), and move these bytes directly to video memory. Any trailing characters not yet used by previous decoding, should be rescanned and decoded again, until there are no 00H or 01H bytes in the remaining block. This remaining block should then be displayed using ordinary write commands. Note, that OS/2 1.2 and Lan Server 1.2 didn't work correctly sometimes when reading large messages from a remote pipe. Therefore you should limit your pipe reads to maximum 4 kByte reads, and merge the next read with the current if you get the ERRROR_MORE_DATA error. Writing to the pipe To send characters to Os2You, the terminal program should send messages of the length one byte, containing the ASCII-code of the character sent to Os2You. It is important that no messages longer than 1 byte are sent over the pipe, as Os2You will just ignore the remaining part of the message or treat it as an invalid client, and end the conversation. The same Esc sequences as described in the documentations are used when using pipes. Examples Here is an example on how the read pipe (message mode) thread looks like in Lanterm2.Mod: LOOP BytesRead := PipeRead(); (* Read Pipe and place result in Buffer *) CASE Buffer.Flag OF | CHR(0) : TempCh := CHR(27); Dos.Write(Handle,ADR(TempCh),1,BytesWritten); TempCh := 'b'; Dos.Write(Handle,ADR(TempCh),1,BytesWritten); | CHR(1) : Vio.SetCurPos(Buffer.CurRow,Buffer.CurCol,0); IF Buffer.Length <> 0 THEN BytesRead := PipeRead(); IF BytesRead > ScrLen THEN Lib.WordMove(ADR(Buffer),LVBPtr,ScrLen DIV 2); ELSE Lib.WordMove(ADR(Buffer),LVBPtr,BytesRead DIV 2); END; Vio.ShowBuf(0,ScrLen,0); END; ELSE Vio.WrtTTY(ADR(Buffer),BytesRead,0); END; END; ═══ 21. Important license information ═══ Important license information It is illegal (or at least unethical) to patch the program in any way. Any reverse engineering (disassembling or monitoring) is not an approved use of the application. If you register the software with at least 500 SEK (about $75), or 250 SEK for Sysop/BBS use only, you will get a license file and a copy of the most recent version of the program. By registering you will get the following benefits: o You will get a diskette with the most recent version of Os2You/M2Zmodem. o You will get rid of the introduction/registration screen during logon. o You will get a PM Terminal program for running Os2You via modem or Pipe. o You will be able to run Os2You with 38400, 57600 and 115200 bauds. o You will be treated as registered user for all future release. o You can sleep at the night without having your conscience haunt you. If you use the program on a regular basis, or in commercial use, you must register with minimum the above mentioned sum for each machine running the Os2You program. The LanTerm, LanTerm2 and LanBridg programs don't need any further registration, and may be used in unlimited instances, but an extra registration per each 20th instance of LanTerm or LanTerm2 is appreciated. Note that the file transfer option requires registration. Neither the built in file transfer function or the Sz/Rz commands will work without this option. The sourcecode (in Modula-2) of the program is available, on special terms. Please contact me if this is of interest. You are encouraged to spread this program (without registration file) to anyone that might be interested. If you want to register, send Swedish banknotes, bank check (payable in Swedish bank) or pay with VISA or MasterCard by completing the order form printable from the file ORDER.DOC. My address is: Mikael Wahlgren Kransen 4E S-416 72 GOTHENBURG Sweden Fax: +46 31 196417 Phone: +46 31 196074 Fidonet: Mikael Wahlgren 2:203/302.5 Internet: d9mikael@dtek.chalmers.se Use the following form to register your copy of Os2You and M2Zmodem: INVOICE Date: ___________ TO: FROM: Name: ____________________________________ M Wahlgren Software Dev. Kransen 4E Company: _________________________________ S-416 72 Gothenburg Sweden Address: _________________________________ City, State; _____________________________ Diskette format 5.25" disk ____ 3.5" disk ____ Specification Amount Price Sum ========================================= ====== ===== =========== Os2You remote software (first 1-9) ______ 500 __________ Os2You remote software (following 10-19) ______ 400 __________ Os2You remote software (following 20-) ______ 300 __________ Os2You for Sysops (for BBS use only) ______ 250 __________ Os2You/M2Zmodem file transfer option ______ 300 __________ WinTerm Windows 3.0 terminal program ______ 300 __________ Total SEK __________ All prices are in SEK (Swedish crown). One USD is about 6 SEK. The price for Os2You is about $80 and $50 for M2Zmodem. If you pay with VISA or MasterCard please fill in the following: Cardholders name: ________________________________________ Cardholders address: _____________________________________ Card number: _____________________________________________ Card validy until: _______________________________________ Signature: _______________________________________________ Send or FAX a copy of this invoice to: M Wahlgren Software Dev. Kransen 4E S-416 72 Gothenburg Sweden Fax: +46 31 196417 ═══ 22. Planned enhancements ═══ Planned enhancements The following is a list a enhancements planned in a future release. It isn't sure that the next release of the program will include these enhancements though. o SafeShell. A menu program there you can install different programs, that you can give different users access to. o SafeCMD. A CMD.EXE replacement, that has file and directory security implemented. o A BBS program, for writing/sending/reading mail, with file transfer capabilities and much more, running under Os2You. This program is meant to be extremely easy to handle, and can be run over a LAN for internal messaging purpose. o X.25 support. ═══ 23. Copyright notes ═══ Copyright notes OS/2 is a trademark of IBM Corporation. PS/2 is a registered trademark of IBM Corporation. IBM is a registered trademark of International Business Machines Corporation. DSZ is a trademark of Omen Technology Incorporated. 386/SX might be a trademark of Intel Corporation. Novell is a trademark of Novell Inc. Microsoft is a trademark of Microsoft Corporation. Hayes is a trademark of Hayes Microcomputer Products. ═══ 24. Release log ═══ Release log Bugs and improvements not described elsewhere are documented in this section. 1.0 First release 1.1 The program could terminate with a GP error when run on a PS/2 system. The port-parameters was not correctly restored. This is now corrected. 1.2 Improvements 1.3 Improvements 1.4 Improvements 1.5 Bug, that made the program incompatible with some programs (especially programs polling the keyboard) is fixed. 1.6 Improvements 1.7 Some scancodes adjusted to make the CTRL-key, Enter-key and some other special keys more compatible with some programs. The command line syntax is altered. 1.8 LAN/Pipe operation fixed again. Previous LanTerm2 didn't work due to a serious compiler bug. The configuration file is opened in Deny Write mode for security reasons. This makes it impossible to modify the configuration file during an session. 1.9 The Allow Task Switch option in the login table is now used to disable the task switch and the Break-functions. If the -s option is used or Allow Task Switch option is set to no in the user profile, the user won't be able to use the Esc-c, Esc-Break sequences (to end the session abnormally). Now Break scancodes are also sent. Lanterm.EXE (LAN-operation for DOS workstations) are now included again. Better shutdown operation, when a program gets stuck, or user lost carrier. REXX-sessions are shutdown correctly. Terminal configurable in user table. The configuration file is optionally (configurable) opened in Deny Read/Write mode. 1.91 Fix to get the program work with LAN Server 1.2 CSD 4093 and DOS Requesters. Also tested successfully using Novell server and remote named pipes. LanBridge added, to run OS/2 LAN Requesters remote over LAN. If program can't be killed, when exiting the session, Os2You will go back to login screen. Next user will probably get confused, because the previous program is still alive. -s (disable task list) is default when using MaxPipe parameter syntax. LanTerm and LanTerm2 programs are altered, to change the behaviour of the Esc-key. If the Esc-key in LanTerm(/2) is pressed the program will send double Esc-codes making Os2You send one Esc-sequence to the application. If you press Shift-Esc in the LanTerm(/2) program will send just one Esc-code, making Os2You to wait for an Esc-sequence (or displaying the help screen). 2.0 Color attributes are now transfered to the remote screen, by using ANSI color escape sequences. It is default to use ANSI colors when no terminal definition file or an old definition is loaded. To upgrade your old terminal definition files, select terminal definition from the Os2You menu, and modify the ANSI color entry. Your other definitions will be intact. The screen update handling is altogether rewritten. In some respects it is faster, but in some situations it might also be slower than before. The terminal does not need to wrap at end of lines anymore. The program now supports different screen widthes and heights. The program assumes that you are running the application in color mode (two bytes per character cell). If this is not the case, the program will transfer false attributes (converting underline/highlights to colors). The -n option now allows Os2You to directly spawn different sessions depending on the username. The callback, shell, terminal and switch parameters are used from the login table. The COM-buffers are flushed by reading all available characters, in addition to a DosDevIOCtl call, as the DosDevIOCtl call didn't seem to work in some networking environments. The option to strip control characters (0-31) and high order characters (127-255) are added in the terminal definition file. The default, if no terminal definition file or an old definition is used, is to strip control characters but leave high order characters. LanTerm/2 (for OS/2) and LanTerm (for DOS) are modified to accept COM-ports from the command line. Both program can be started with the syntax LanTerm . The COM-port must have a name beginning with COM, and for the DOS-version only COM1 and COM2 are valid. LanTerm (for DOS) requires that ANSI.SYS is loaded in your CONFIG.SYS file. Both programs take advantage of the FIFO buffered 16550 UART if available. LanTerm/2 and LanTerm now have Zmodem AUTO download/upload capability. To transfer files between host and remote, just issue a file transfer command on the host (use the Rz or Sz command files and M2Zmodem), and the file transfer program will start on both host and remote. If you upload from remote to host, you will be asked for a filename/pattern. LanTerm/2 uses M2Zmodem, and LanTerm uses DSZ as file transfer programs, and these programs must be available in the current directory or in a path. 2.1 Fixed bug that left shifted the remote screen one column in some situations. Modem commands now configurable and stored in file MODEM.CFG. Box draw characters and special characters are translated into available look alike characters (codepage 437), when terminal definition file says to filter characters between 127-255. Keyboard emulation much enhanced with correct scan codes. Now works with programs like CodeView (TM) and MSC PWB. Dos2You program altered to exit by sending a Ctrl-C (03H). Program now exits clean and returns to Os2You correctly. 2.2 DTR control added in modem commands. Fixed bug that sent garbage modem commands, when modem commands was of zero length. LanRel program addedd, to let other programs temporarily suspend Os2You HOST-mode, to let other communication programs use the same port/modem, while Os2You is waiting for an incoming call. It is also possible to use LanTerm or LanTerm2 to access the port for outgoing traffic port Os2You is using, by running these programs with the port request pipe name as a parameter. Os2You now also acts as asynchronous communication server. If Os2You is installed on a network, it is possible to connect to the COM device Os2You uses, with Lanterm(2) programs, by starting these program with the port request pipe name as a parameter. File transfer doesn't work though. Cursor positioning works even if you don't run your original session. M2Zmodem would hang Os2You and COM-device on some systems (like Comp. 386/SX 20 Mhz and MS-OS/2 1.21). This wasn't fixed in the preliminary release. 2.3 Changed to new compiler, version 3.01. In HOST mode, Os2You no longer needs to scan for the baudrate when using Hayes-modems or other automatic modems. Os2You instead uses the response strings sent by the modem. When using Hayes/Auto modems, the DCD line can be permanently SET. In HOST mode, Os2You now optionally displays a file, selected from the configuration menu. In HOST mode, Os2You now optionally logs events in a file, selected from the configuration menu. Configuration menus now with help texts! 2.4 Minor modification in the character translation logic. Screen updates faster with TAB space expansion. M2Zmodem version 2.11 will now support file transfers via pipes as well as asynchronous lines. This level of M2Zmodem is also required for PMTerm. Task switching now works with OS/2 2.0. PMTerm - A terminal program for PM to run Os2You is included. (only to registered users) Os2You is now able to use the baudrates 38400, 57600 and 115200, without additional support from device drivers. The line IOPL=YES or IOPL=SETBAUD must be added to your CONFIG.SYS file to enable this feature. (only to registered users) It is now possible to pass parameters from the Os2You login table to the spawned program. You can pass User name (with %n), password (%p), callback number (%c) and terminal type (%t). Modem configuration file renamed MODEM.PRM to MODEM.CFG. Setup program rewritten for Presentation Manager, and now easier to use with more logical screens and ready modem setups. Setup is automaticly invoked when Os2You is started without any parameters, but can be run directly from the command line by typing SETUP too. The modem definitions are only briefly tested. 2.5 Os2You now seems to work OK with OS/2 2.0 (beta drop 6.149). The previous version had some problems with the keyboard monitor locking up the second time, a user logged on. A bug in OS/2 2.0 I think. LanTerm (terminal emulator for DOS), now can be run in terminate and stay resident (TSR) mode (80 kByte), allowing you to concurrently use both a remote OS/2 session and the local DOS session. User ID's with no password, are treated differently. Now any password is accepted for such ID's. Entered passwords are logged to disk. Os2You now disconnects named pipes when a session is closed. Os2You now supports redirection of printers. A printer's data stream can be redirected to the remote computer. This requires that the terminal program on the remote, is capable of handling this. LanTerm, LanTerm2 and PMTerm are currently capable of this. User-ID's and passwords with spaces wouldn't work. This is now fixed. LanTerm and LanTerm2 now accepts an initialization string. This could be used for automatic dial and/or to initialize the modem. 2.51 Os2You would trap intermittently, directly after logon Fixed. 2.6 Os2You now has a service function menu. By pressing Esc-y during a session, you can select chat-mode and do file transfers, using Ymodem batch protocol. Os2You now terminates sessions better. Before Os2You could hang if a session couldn't be closed, when a user exits (or drops carrier). Os2You also exits cleaner when running independent sessions LanTerm, LanTerm2 and PMTerm now has scripting capabilities. Scripting works as in M2Zmodem, except that ^ means CR and ~ means pause. In OS/2 2.0 the DOS-compatibility boxes can be accessed remotely, with some restrictions. The DOS box can no longer be accessed, using OS/2 1.3 as the programs supporting this feature, is no longer distributed with the package. If you already have the DOS_REDIR and DOS2YOU programs, they will probably continue to work. These files can also be requested especially, when registering. The Task Switched is altered in design. It now also allows switch to DOS Full Screen sessions directly, if you are using OS/2 2.0. PMTerm (terminal program for PM) is now renamed to Terminal/2, because the name PMTerm was already occupied. A Windows terminal emulator is now included. Note that this comes from an independent source, and requires separate registration. WinTerm, Terminal/2 and LanTerm2 all have Ymodem-Batch protocols included, and also a special AUTO Ymodem up/download facility, that automaticly will invoke the file transfer protocol when Os2You request it. Current levels are 1.0 for WinTerm, 1.1 for Terminal/2 and 2.6 for LanTerm2. These levels are required for Os2You version 2.6. The inactivity timeout timer, would trigger if the system time was changed. This is fixed. Improved screen updates in some cases. 2.7 The service functions menu is only available if the user has task switch privelige. The terminal emulation profiles, now have an option to escape (but still transfer) control characters. Some "hard to print" characters can also be displayed using this feature. Cursor update delay for task switched sessions, is now configurable. Os2You running OS/2 2.0 (304e) would trap when exiting, if the physical keyboard is under high load. Os2You running OS/2 1.3 would hang when exiting, if the keyboard buffer was full at that time. Fixed. Switching to tasks on the second "page", wouldn't work. This is fixed. File transfer with the built in file transfer protocol fixed. Special care was taken to terminate REXX batches correctly previously. This caused some problems with other programs, and is therefore removed. Other applications are now terminating better Access to the MVDM (DOS-boxes) in OS/2 2.0 is now improved. It is now possible to emulate most character sequences in the DOS-box, like function and arrow keys. This is accomplished with the KBFILTER utility that must be run in the DOS-box before function keys will begin to work (you could invoke this program in your AUTOEXEC.BAT file, it will take a minimum of memory and interfere very little with your usual work). ═══ ═══ All strings sent to the modem may contain the following special control characters: ^ (5E) CR ~ (7E) 1s pause Є (F2) DTR low є (F3) DTR high ; (3B) Comment ═══ ═══ The following symbolic parameters are valid: %n User name %t Terminal %p Password %c Callback %% % (percent sign) Example: BBS.EXE COM1 %n %p %%p If the user is Mikael Wahlgren and password secret the example would execute the program BBS.EXE with the parameters COM1 Mikael_Wahlgren secret %p ═══ ═══ This entry expects an array of hex values. You should enter hex values between 00 and F, all separated by space. Example: 1B 41 01 FE