Contents: | Main | Chapter | See Also: | Getting Started Manual | Programmer Manual |
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:
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.
%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.
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