Re: Screen blanking with RUN
Posted in 1995
In article <806948536snz@excelsis.demon.co.uk> Sally@excelsis.demon.co.uk writes: >In article <806928160snz@misslink.demon.co.uk> > simonb@misslink.demon.co.uk "Simon Bunce" writes: > >> Whenever I use the RUN statement, the screen blanks while the RUN executes. >> Even if I use RUN WITHOUT WAITING, there's still an appreciable pause with >> a blank screen. > >You can write a 'C' function to launch the whatever which doesn't >do anything to the screen - but you'd better be sure that the thing >being launched doesn't either! Also note the following new RUN functionality under 4.14 and 6.02. The following is culled from the TOOL_REL4.14 release notes: NEW RUN STATEMENT FUNCTIONALITY ------------------------------- Bug 26390, actually a feature request, requested that programs should be able to be run without causing the screen to clear. The screen was only cleared because the RUN code exited from form mode and the termcap entry for the terminal includes a clear screen as part of the terminal reset capability. This code has on occasion been changed so as to exit from form mode automatically and so as to not exit form mode at all, but there have been customer-reported dissatisfactions both ways. This fix now makes the choice optional to provide for the needs of both types of customers. Here is the extended RUN statement: <run-statement> ::= RUN <command-specifier> [ <run-screen-mode> ] [ <run-control-mode> ] <command-specifier> ::= <literal-string> | <string-variable> <run-screen-mode> ::= <line-form-mode> <run-control-mode> ::= WITHOUT WAITING | RETURNING <integer-variable> NEW OPTION STATEMENT FUNCTIONALITY ---------------------------------- The alterations for the new report functionality and the new RUN functionality also suggested the following new functionality for the OPTION statement: <option-specifier> ::= [ ... ] | RUN <line-form-mode> | PIPE <line-form-mode> SOME NOTES ON FORM VS. LINE MODE -------------------------------- The default behavior for RUN is LINE MODE (ie: the screen will still be cleared by default) because that is backwards compatible with the current behavior. Note that this is the opposite of the default for PIPE! If the statement specifies an explicit screen mode, then that is used. If there is no explicit mode, then the prevailing value from the OPTIONS statement is used. In LINE MODE, the terminal is in the same state (stty options) as when the program was started. This normally means that the terminal input is in cooked (rather than raw) mode, with interrupts enabled, and so on. In FORM MODE, the terminal is in raw mode, so each character is available to the program as it is read, rather than becoming available when the newline character is typed (cooked mode). By default, I4GL programs operate in LINE mode, but so many statements take it into FORM mode -- including the OPTIONS statements which set keys, DISPLAY AT, OPEN WINDOW, DISPLAY FORM, etc. -- that most I4GL programs are actually in FORM most of the time. When the prevailing RUN option specifies FORM MODE, the program will remain in form mode if it is form mode, but it will not enter form mode if it is currently in line mode. When the prevailing RUN option specifies LINE MODE, the program will remain in line mode if it is in line mode, and it will be switched to line mode if it is currently in form mode. The same comments apply to the PIPE option. <end excerpt> -- Alan Denney yosemite@netcom.com aland@informix.com "San Francisco politics are interesting in the sense that zoo animals are interesting." -- Duane Garrett 1946-1995