VA FileMan V. 22.0 Getting Started HTML Manual Banner


Main Chapter Getting Started Manual Programmer Manual

System Management

Device Handling for Standalone VA FileMan

VA FileMan requires a %ZIS routine. Kernel supplies a %ZIS as the device selection gateway to its device handler component. In addition to writing your own device selection routine and saving it as %ZIS in the Manager Account, standalone users have two possibilities:

  1. You may have a device selection routine supplied by your M vendor. You can use the M vendor's routine provided that it returns the variables expected by VA FileMan from such a device selection program. These variables are listed below. In this case, you simply create a %ZIS routine that calls the vendor-supplied routine.

    However, even if you use a vendor's (or your own) routine for device selection, you must have %ZISS, as described below, in your Manager Account, if you want to use VA FileMan's screen-oriented utilities.

  2. If you do not have another device selection routine, refile the DIIS and DIISS routines as described in the "VA FileMan Installation Guide." This results in all VA FileMan output going to the terminal that requests it. If you do not modify the %ZIS and %ZISS routines as described below, your terminal will be treated as a VT100 (ANSI) terminal.

VA FileMan controls terminals by using terminal characteristics stored in IO variables. In addition, certain operating system dependent actions are controlled by executing code stored in %ZOSF nodes. Together the IO variables and %ZOSF nodes allow full use of VA FileMan in both scrolling and screen-oriented modes. The instructions below describe how to modify the %ZIS and %ZISS routines in order to set the necessary IO variables, and how to set the necessary %ZOSF nodes.

Setting IO variables: %ZIS and %ZISS

%ZIS sets the IO variables required for terminal output that is not screen-oriented. The DIIS routine supplied with VA FileMan sets the IO variables to the values specific to the VT100 terminal type. If you are using or emulating a VT100 terminal, you can rename the DIIS routine unmodified as %ZIS. If you are using or emulating a VT220 or VT320 terminal, you must modify %ZIS to set IOST equal to "C-VT220" or "C-VT320".

The variables returned by %ZIS are:

Variable Description
IO The device $I. If IO is null (""), no input or output occurs.
IOM The margin width (e.g., 80).
ION The device name, consisting of 1 to 30 alphanumeric characters.
IOSL The screen length (e.g., 24).
IOF The indirect argument of a WRITE statement to generate a top-of-page (e.g., #).
IOST The output device type (e.g., CRT). If IOST begins with the letter C, the Inquire, Search, and Print output programs will wait till the user presses the Enter/Return key after each screen's worth of display. If IOST begins with a P, output will terminate with a page feed. If IOST contains SINGLE, output will stop after each page feed and wait for the Enter/Return key to be pressed (). If the output terminal is other than the terminal requesting the output, and IOST does not contain K, the will be read from the requesting terminal.
IOPAR The parameter that should follow the first colon in the argument of the OPEN command. For most devices, this string should be null.
IOT Equal to a string naming the device type (e.g., IOT=TRM). This variable must be returned equal to the string SDP in order for VA FileMan's multiple-copies feature to be called.
IOXY The executable M code that performs cursor positioning given the input variables DX and DY. DX and DY contain the column and row positions, respectively, to which to move the cursor.

The %ZISS routine sets the IO variables required by VA FileMan's screen-oriented utilities. The DIISS routine supplied by VA FileMan sets the IO variables according to the value of IOST. DIISS recognizes IOST values of C-VT220 and C-VT320. If IOST equals anything else, the IO variables are set to values specific to the VT100 terminal type.

Not all of the variables returned by %ZISS are required by VA FileMan's screen-oriented utilities. The variables returned by %ZISS are:

Variable Description
IOAWM0 Auto wrap mode off
IOAWM1 Auto wrap mode on
IOCOMMA Keypad's comma key
IOCUB Cursor backward
IOCUD Cursor down
IOCUF Cursor forward
IOCUU Cursor up
IODCH Delete character
IODL Delete line
IODO Do key
IOEDALL Erase in display entire page
IOEDEOP Erase in display from cursor to end of page
IOELALL Erase in line entire line
IOELEOL Erase in line from cursor to end of line
IOENTER Keypad's enter key
IOFIND Find key
IOHELP Help key
IOICH Insert character
IOIL Insert line
IOINHI High intensity
IOINLOW Low intensity
IOINORM Normal intensity
IOINSERT Insert key
IOIRM0 Replace mode
IOIRM1 Insert mode
IOKP0 Keypad 0 key
IOKP1 Keypad 1 key
IOKP2 Keypad 2 key
IOKP3 Keypad 3 key
IOKP4 Keypad 4 key
IOKP5 Keypad 5 key
IOKP6 Keypad 6 key
IOKP7 Keypad 7 key
IOKP8 Keypad 8 key
IOKP9 Keypad 9 key
IOKPAM Keypad application mode on
IOKPNM Keypad numeric mode on
IOMINUS Keypad's minus key
IONEXTSC Next screen key
IOPERIOD Keypad's period key
IOPF1 Function key 1
IOPF2 Function key 2
IOPF3 Function key 3
IOPF4 Function key 4
IOPREVSC Previous screen key
IOREMOVE Keypad's remove key
IORI Reverse index
IORVOFF Reverse video off
IORVON Reverse video on
IOSGR0 Turn off select graphic rendition attributes
IOSELECT Select key
IOSTBM Set top and bottom margins
IOUOFF Underline off
IOUON Underline on
IOBLC Bottom left corner
IOBRC Bottom right corner
IOBT Bottom "T"
IOG0 Graphics off
IOG1 Graphics on
IOHL Horizontal line
IOLT Left "T"
IOMT Middle "T", or cross hair (+)
IORT Right "T"
IOTLC Top left corner
IOTRC Top right corner
IOTT Top "T"
IOVL Vertical line

After you save DIISS as %ZISS, you can modify %ZISS if you wish to use ScreenMan on terminal types other than those supported in DIISS. The routine DIISS itself contains more information on how to modify the routine.

NOTE: About IO variables and DataTree MUMPS -- If your version of DataTree MUMPS supports VT220 emulation, set up %ZIS and %ZISS for VT220 and use the emulation.

Summary of IO Setups

Depending on your terminal type, you need to do the following to make full use of VA FileMan's screen-oriented utilities.

Terminal Type Description
VT100 No action needed; the default settings are acceptable.
VT220, VT320 Edit the %ZIS routine to set IOST variable to "C-VT220" or "C-VT320".
Other terminal types Edit %ZIS to set IOST to "C-WHATEVER" and IOXY to the code to position the cursor for that terminal. Modify %ZISS routine to set all the IO variables for your terminal type. The routine contains instructions for a simple modification strategy.


Reviewed/Updated: March 4, 2007