Saving and Restoring Screens with MacWise
(version 12 or later)
Many host computers are programmed to instruct the client app to save and restore screens.
MacWise 12.0 or later supports three sets of escape sequences commonly used by PC clients
(HostAccess, Accuterm and System Builder).
The client app is responsible for storing the screens (MacWise, in this case). This was originally done back in the days of slow serial connections because it was much faster for the client to display stored screens instead of the host resending them to the client app.
But that legacy code remains on host computers and therefore needs to be supported.
MacWise version 12.0 supports up to 13 screen levels (also called slots, stacks or blocks).
Accuterm Escape Sequences:
Areas of the screen, called blocks, can be saved and restored. Any area of the screen can be defined as a block.
Each block can be captured from anywhere on the screen and then restored to any position on the screen.
Each block is defined by the ID which can be an alphanumeric string.
MacWise ignores the page attribute.
ESC CHAR(2) jD ,ID CR Clear the screen block stored as ID
ESC CHAR(2) jS ,ID , col , row , width , height , page CR Save the screen block with ID
Saves a copy of the specified screen block (text, colors and
visual effects) and terminal state in memory and associates the
block with the specified identifier (ID) whichcan be an
arbitrary alpha-numeric string (may not contain commas). Any
number of screen blocks can be saved, but MacWise currently
only supports 13 blocks. Coland rowspecify
the upper-left corner of the block. If either is omitted or null,
zero is assumed. Widthand heightspecify the size of the
block. If widthor heightis omitted or null, the screen width
or height is used. Pageoptionally specifies the terminal page
for the block, and if omitted or null, the current page is used.
MacWise ignores the Page attribute.
ESC CHAR(2) jR ,ID , col , row , page , state CR Restore the screen block with ID
Restores the screen block associated with the specified
identifier (ID) to the screen. Coland rowspecify the upper-
left corner of the destination. If either is omitted or null, the
original position of the saved block isassumed. Page
optionally specifies the terminal page for the destination, and
if omitted or null, the current page is used. If stateis 1, the
terminal state (current attribute, cursor position, write protect
mode, etc.) is restored along with the screen contents.
MacWise always assumes the State is 1 and Page is ignored.
HostAccess Escape Sequences:
ESC [=Np Save the screen to slot N (where N is the slot number to save)
ESC [=Nq Restore the screen from slot N (where N is the slot number to restore)
The following HostAccess escape sequences use a stack (or slot) method.
Each time ESC [=p is sent to the client from the host, the client saves the current screen to the current stack and then increments the stack by one. Then when ESC [=q is sent to the client, the current stack is restored back to the current screen.
ESC [=p Save the current screen to the top of the stack
ESC [=q Restore the screen from the top of the stack back to the current screen.
System Builder Escape Sequences:
ESC [>xxp where xx is the save level. Saves the current screen as level xx
ESC [>xxq where xx is the restore level. Restores the screen from level xx
NOTE: You must have System Builder enabled under the Emulate Menu in MacWise
to process System Builder escape sequences.
NOTE: If you are doing some host programming, please be aware that you can only use one of the above methods for saving and restoring screens. For instance, you can't use HostAccess and Accuterm codes at the same time.
NOTE: HostAccess, Accuterm and System Builder are trademarks of their respective companies and are not associated with Carnation Software.