| 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 (<RET>). If the output terminal is other than the terminal requesting the output, and IOST does not contain K, the <RET> 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