![]() |
![]() HP OpenVMS Systemsask the wizard |
![]() |
The Question is: With a dumb terminal (VT200-series) or a PC using Rumba terminal emulation software, how can I (using escape codes) write to the host-writeable status line of the display? I have a menu system which goes into different applications, and I need to issue a string of characters such as "Production System" for the duration of the application. When they return to the menu (written in DCL) the status line should be deleted. Many thanks. The Answer is : The host system generally writes to the terminal to change the attributes, the terminal changes local attributes via the setup. In this case, software operating on the host must send the necessary control sequence to the terminal or terminal emulator to alter the requested settings. The following resets the DECterm label and icon, and the status line. $ esc[0,7] = 27 $ write sys$output esc + "]21;" + "DECterm Label" + esc + "\" $ write sys$output esc + "]2L;" + "DECterm Icon" + esc + "\" $ write sys$output esc + "[1$}Status Line" + esc + "[0$}" $ exit The OpenVMS Wizard would recommend using SMG or similar, and not encoding the control sequences directly into the application. The routine SMG$GET_TERM_DATA can be of interest, and can be used with or without using SMG to control the display, as this routine permits the retrieval of the required terminal control sequences in a device-independent fashion. Reliably resetting the display attributes and particularly the status line usually means the use of an exit handler -- see the sys$dclexh system service. (Exit handlers operate when the image exits, save for those cases where the image is stopped (via STOP) "hard".)
|