^.W$RbG$n$_MAKE_SDCALCULATOR.CLI comment MAKE_SDCALCULATOR.CLI Screen Demon rev 3.52.01 comment Copyright (C) 1993, Threshold, Inc., All Rights Reserved comment -------------------------------------------------------- push prompt pop searchlist [!searchlist]& [!nequal,[!path =],[!path [!edirectory [!pathname %0\%.cli]]]]& [!edirectory [!pathname %0\%.cli]]& [!end] [!equal,,[!path sdcalculator.ob]] x lfe X screen_demon.lb sdcalculator [!end] sd_clink%0/% sdcalculator %1-% pop .W$RbB$n$_ 5MAKE_SD_ICDEB.CLI comment MAKE_SD_ICDEB.CLI Screen Demon rev 3.52.01 comment Copyright (C) 1993, Threshold, Inc., All Rights Reserved comment -------------------------------------------------------- [!equal,,comment] *** MAKE_SD_ICDEB *** For ICOBOL revision 1.60 and above, this macro can be used to create a new version of the ICDEB debugger for use with revision 3.52 of SCREEN DEMON. The new version will be called SD_ICDEB.PR, and there will be an associated shared library file called ICDEB__SCREEN_DEMON.SL Usage: MAKE_SD_ICDEB{/switches} {additional modules} The /CONFIG=configname switch indicates that the specified alternate SCREEN DEMON configuration file should be used instead of SD_DEBUGGER_CONFIG.OB The /SLONLY switch indicates that only the shared library file ICDEB__SCREEN_DEMON.SL is to be created. The step of creating the SD_ICDEB.PR program will be skipped. [!end] push prompt pop comment Adjust this searchlist command to fit your file system searchlist [!searchlist] :UTIL:ICOBOL& [!nequal,[!path =],[!path [!edirectory [!pathname %0\%.cli]]]]& [!edirectory [!pathname %0\%.cli]]& [!end] comment Determine the revision of ICOBOL being used, if possible. comment Use default revision if revision cannot be determined. delete/2=ignore =?[!pid]rev.tmp [!equal,,[!path icx.pr]] string 1.71 [!else] revision/l==?[!pid]rev.tmp icx.pr string [=?[!pid]rev.tmp] string [!ename [!ename [!string]]] string [!uadd,0,[!ename [!string]]][!eextension [!string]] delete/2=ignore =?[!pid]rev.tmp [!end] write/l==?[!pid]rev.tmp [!string][!ascii 46] [!equal,,%0/o=%] %0\%%0\o%/o=ICDEB_[=?[!pid]rev.tmp]_SCREEN_DEMON.SL %1-% [!else][!equal,,%0/config=%] %0\%%0\config%/config=SD_DEBUGGER_CONFIG %1-% [!else] string/k [!equal,,%0/sl/slonly%] [!equal,,[!path ICDEB.PR]] write [!ascii 7]ICOBOL's ICDEB.PR not found - cannot create SD_ICDEB.PR ! string ERROR [!end] [!end] [!equal,,[!path SD_ICDEB_[=?[!pid]rev.tmp]_INTF.OB]] write ICOBOL rev [=?[!pid]rev.tmp] debugger interface not found: write ,,,,,,,,SD_ICDEB_[=?[!pid]rev.tmp]_INTF.OB string ERROR [!end] [!equal,,[!string]] comment Build the special shared library for SD_ICDEB to use make_screen_demon.sl%0\sl\slonly% SD_ICDEB_[=?[!pid]rev.tmp]_INTF %1-% [!equal,,%0/sl/slonly%] write write Creating SCREEN DEMON version of ICOBOL debugger... sd_possess/delete/sl=%/o=% ICDEB [!nequal,,[!path SD_ICDEB.PR]] write ,,,,SD_ICDEB.PR is ready for use. [!end] [!end] [!end] write delete/2=ignore =?[!pid]rev.tmp [!end][!end] pop .W$RbD$n$_b MAKE_SD_ICX_NAMTB.CLI bcomment MAKE_SD_ICX_NAMTB.CLI Screen Demon rev 3.52.01 comment Copyright (C) 1993, Threshold, Inc., All Rights Reserved comment -------------------------------------------------------- comment *** This macro assembles a customized NAMTB.OB file comment * to be linked with the ICOBOL interpreter. push prompt pop searchlist [!searchlist]& [!nequal,[!path =],[!path [!edirectory [!pathname %0\%.cli]]]]& [!edirectory [!pathname %0\%.cli]]& [!end] ((write x/s),x/s) & masm/ps=masm_32char.ps/ulc/o=[!equal,,%1%]NAMTB[!else]%1%[!end]%0/% & NAMTB_DEFINES & NAMTB & %1-% & SD_CALLS pop .W$RbF%hL$_ MAKE_SD_SPY.CLI  comment MAKE_SD_SPY.CLI Screen Demon rev 3.52.01 comment Copyright (C) 1993, Threshold, Inc., All Rights Reserved comment -------------------------------------------------------- [!equal,,comment] This macro creates a new version of the SD_SPY program, so that its Screen Demon configuration options can be changed. Optional global switches: /CONFIG=filename specifies an alternate configuration file to use instead of SD_SL_CONFIG. /O=programname specifies an alternate program name to create instead of the default name SD_SPY.PR /COB32 indicates that 32-bit VS/COBOL programs are also being linked with SD_SPY, and so will require the COBOL.LB and LANG_RT libaries. /LANG_RT indicates that the Common Language Runtime library is to be linked with the new SD_SPY program. This switch is not necessary if the /COB32 switch is specified. The /PRISWI global switch causes the Printer Switcher routine to be linked with the new version of SD_SPY. The SD_PRISWI_CONFIG file must be available at runtime. /WP causes the interface routines for WordPerfect Library/Office Shell to be linked with the new SD_SPY program. The SHELLCOM.32.OB file provided by WordPerfect must be available at link time. /CEO includes an interface to CEO Mail and to the CEO Interrupt Menu. This interface uses routines from CEO Toolkit, which must be available on your system at link time. /NOMODELID prevents the resulting Spy from querying the terminal for its model id on startup. Spy will assume it is running on a D210 terminal. Additional object modules may be included by listing them on the command line. Optional patches will be installed if they are placed in a file called SCREEN_DEMON.PAT. See the SCREEN_DEMON.OPTIONAL.PAT file for instructions on creating a SCREEN_DEMON.PAT file. Also, all available fix patches, as specified in the NONICX.PATCH_LIST file, will be installed. [!end] push prompt pop Comment Adjust the following SEARCHLIST command to fit your file system: searchlist [!searchlist]& & [!nequal,,%0/cob32/infos/ceo/lang_rt%] [!nequal,,%0/cob32%]& :util:cobol& [!end]& [!nequal,,%0/cob32/ceo/lang_rt%]& :util:lang_rt& [!end]& [!end]& & [!nequal,[!path =],[!path [!edirectory [!pathname %0\%.cli]]]]& [!edirectory [!pathname %0\%.cli]]& [!end] [!equal,,%0/config=%] %0\%%0\config%/config=SD_SL_CONFIG %1-% [!else][!equal,,%0/o=%] %0\%%0\o%/o=SD_SPY %1-% [!else] [!equal,,[!path %0/config=%.OB]] write ERROR: cannot find configuration file %0/config=%.OB [!else] write write ,,,,Using configuration file [!path %0/config=%.OB] write ,,,,,,,,,to create %0/o=%.PR write (write,x/s) link/stack=20000/tasks=6& [!nequal,,%0/cob32/ceo/lang_rt%]/mtop=1[!end]& %0\config\priswi\wp\ceo\cob32\infos\lang_rt% & sd_spy/start& & %0/config=%& & %1-%& & [!nequal,,%0/wp%]& sd_wp_shell& [!nequal,,[!path :wpoffice:wpoexe:shellcom.32.ob]]& :wpoffice:wpoexe:shellcom.32& [!else][!nequal,,[!path :wpml:shellcom.32.ob]]& :wpml:shellcom.32& [!else]& shellcom.32.ob& [!end][!end]& [!end]& & [!nequal,,%0/ceo%]& sd_ceo_interface& :util:ceo_dir:it_lib.lb/multiple& [!end]& & [!nequal,,%0/priswi%]& sd_priswi& [!end]& & [!nequal,,%0/nomodelid%]& sd_no_model_id& [!end]& & screen_demon.lb& & [!nequal,,%0/cob32%]& cfalt ffalt cobol.lb& [!end]& & [!nequal,,%0/infos%]& [!equal,,%0/infos=%]& icall32& [!else]& dummyicall32& [!end]& [!end]& & [!nequal,,%0/cob32/ceo/lang_rt%]& multitasking no_queued_task_mgr lang_rt.lb& [!else]& sd_no_lang_rt& [!end] [!equal,(),([!string])] comment Install optional patches to the new SD_SPY [!nequal,,[!path SCREEN_DEMON.PAT]] x patch/t==%0/o=%.PR/p=SCREEN_DEMON.PAT/yes [!end] comment Install fix patches if available [!nequal,,[!path NONICX.PATCH_LIST]] x patch/t==%0/o=%.PR/p=([NONICX.PATCH_LIST])/yes [!end] [!nequal,,[!path SPY.PATCH_LIST]] x patch/t==%0/o=%.PR/p=([SPY.PATCH_LIST])/yes [!end] [!end] [!end] [!end][!end] pop .W$RbH$n$_  NAMTB.SR ; NAMTB.SR Screen Demon rev 3.52.01 ;Declaration of user assembler subroutines to be called from ; Interactive COBOL programs running under Screen Demon. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; ;;; Copyright (C) 1988 - 1993, ;;; ;;; Threshold, Inc. ;;; ;;; Auburn, Alabama U.S.A. ;;; ;;; All rights reserved. ;;; ;;; ;;; ;;; SCREEN DEMON and its associated hot-key routines ;;; ;;; are proprietary property of Threshold, Inc. ;;; ;;; Except as provided for by the License Agreement; these ;;; ;;; shall not be copied, used, or disclosed for any purpose or ;;; ;;; reason in whole or in part, without the express written ;;; ;;; consent of: ;;; ;;; ;;; ;;; Threshold, Inc. ;;; ;;; 118 North Ross Street ;;; ;;; Auburn, Alabama 36830 ;;; ;;; ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Each definition in this file should be of the following format: ; ; NAME routinename {, referencename} ; ; "routinename" is the actual entry point for the routine. ; ; "referencename" is the name that will appear in the ; CALL "" statements within ICOBOL programs. If not specified, ; it is assumed that the CALL name is the same as "routinename". ;Note that the ?CB calls provided with ICOBOL should NOT be defined in ; this table. Screen Demon will automatically define them, using ; compatible versions of these calls that do not require the ; LANG_RT.LB Common Language Runtimes (which would greatly increase ; the size of the interpreter). ;Specify names of user assembler subroutines below: .W$Q'$n$QO~[SD_ICX_CONFIG.SR ; SCREEN DEMON Configuration file ; ; revision 3.52.01 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; ;;; Copyright (C) 1988 - 1993, ;;; ;;; Threshold, Inc. ;;; ;;; Auburn, Alabama U.S.A. ;;; ;;; All rights reserved. ;;; ;;; ;;; ;;; SCREEN DEMON and its associated hot-key routines ;;; ;;; are proprietary property of Threshold, Inc. ;;; ;;; Except as provided for by the License Agreement; these ;;; ;;; shall not be copied, used, or disclosed for any purpose or ;;; ;;; reason in whole or in part, without the express written ;;; ;;; consent of: ;;; ;;; ;;; ;;; Threshold, Inc. ;;; ;;; 118 North Ross Street ;;; ;;; Auburn, Alabama 36830 ;;; ;;; ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;This file provides definitions for the key codes that require intervention ;by SCREEN DEMON after an input. Certain keys may be defined to cause ;a special action to occur, such as redrawing the screen. Then the ;input is restarted exactly as it was when the special key was pressed. ;A translation table may be defined so that keys that are normally ;inaccessible to COBOL (i.e., the arrow keys and C* function keys) can ;be translated to specified standard function key codes. ;Also, miscellaneous items such as the mail message string, time out values, ;note pad filename, and log file size are defined in this file. ;The following sections associates particular keys with specific routines ;that should be called whenever those keys are pressed. ;NOTE: A key that has a subroutine attached to it will never be ;seen by the host program, since the input statement where the key ;was pressed will be automatically restarted when the subroutine returns. ;Each hot key definition has the following form: ; HOT_KEY ; ,,,... ; ; ; ... ; MENU menu description <--- this line is optional ; DIRECTORY initial directory <--- this line is optional ; ACL access control list <--- this line is optional ; ; where: ; ; is one of the following special keys: ; TAB, NEW_LINE, ERASE_EOL, ERASE_PAGE, CR, ESC, DEL, ; HOME, UP, RIGHT, LEFT, DOWN, ; SHIFT_HOME, SHIFT_UP, SHIFT_RIGHT, SHIFT_LEFT, SHIFT_DOWN, ; C1, C2, C3, C4, SHIFT_C1, SHIFT_C2, SHIFT_C3, SHIFT_C4, ; CMD_SHIFT_PRINT, CMD_PRINT ; F1, F2, ..., F14, F15, ; SHIFT_F1, SHIFT_F2, ..., SHIFT_F14, SHIFT_F15, ; CTRL_F1, CTRL_F2, ..., CTRL_F14, CTRL_F15, ; CTRL_SHIFT_F1, CTRL_SHIFT_F2, ..., CTRL_SHIFT_F15, ; ; any single printable character after a quote: ; "A, "a, "*, ..., ; ; or a decimal number (1-127) representing a control character ; or printable character: ; 1 (CTRL-A), 18 (CTRL-R), 64 ("@), ... ; ; ; and ,,... are one of the following: ; LINKED Entry name ; For linked in assembler, C, PL/1, or FORTRAN sub-programs. ; ; COBOL32 Entry name ; For linked in VS/COBOL sub-programs. ; ; ICOBOL Program name ; Use only for an ICX linked with SCREEN DEMON. ; ; PR Name, arg, arg, ... ; The named program will be PROC'ed with the given ; arguments. ; ; CLI Macro name, arg, arg, ... ; CLI will be PROC'ed to execute the given macro ; with the specified arguments. ; ; LINKED_IN_ROOT Name ; For linked-in assembler, VS/COBOL, C, PL/1, ; or FORTRAN sub-programs. ; Use only when the shared library (SL) version of ; SCREEN DEMON is used. At execution time the ; SCREEN DEMON hot key handler will search for ; the specified name in the list of hot key definitions ; that were linked into the root program. A root ; linked hot key definition may be created by ; running the MAKE_SD_HKD macro. ; ; ; 's are from the following list: ; ; SAVE_SCREEN ; If the sub-routine will not make SCREEN DEMON ; calls to save and restore the screen, then include ; this flag. ; ; REDRAW ; or REDRAW IMMEDIATE ; Set if the hot key routine is PR or CLI and it will ; display characters on the screen. SCREEN DEMON ; will not know about the displayed characters so ; the screen must be redrawn. For CLI type hot keys, ; a "Press Any Key To Continue..." message will appear ; on return from the hot key call if REDRAW is ; specified. To suppress this message, use the ; IMMEDIATE option. ; ; CANCEL ; Only for ICOBOL type hot key programs. When the ; hot key is pressed, SCREEN DEMON simulates a ; CALL "program" (not a CALL PROGRAM). If file ; statuses and variables must be in their initial ; state when the program executes, then include this ; flag. ; ; ; The optional MENU clause will place an entry for the hot key ; on the Screen Demon main menu. The description shown on the ; menu will be the text specified after the keyword MENU. ; NOTE: To add a hot key to the main menu without actually ; assigning it to a particular key, do not specify ; a key name on the HOT_KEY clause. For example: ; HOT_KEY ; LINKED SD_WP_SHELL ; MENU WordPerfect Office Shell ; ; ; The optional DIRECTORY clause allows the initial working directory ; for the hot key process to be specified. This clause effects ; only PR and CLI type hot keys. If no DIRECTORY clause is supplied ; in a hot key definition, the hot key process will start in the ; current working directory. ; ; ; The optional ACL clause allows access to the hot key to be ; restricted. Following the ACL keyword should be a list of ; usernames and/or username templates, similar to an AOS/VS ; file ACL. Like an AOS/VS file ACL, `*' matches any one ; character, and `+' matches any number of characters, including ; zero. However, unlike an AOS/VS file ACL, the FIRST character ; of an individual template may be an exclamation mark (!), which ; indicates that if a match occurs on that template, access is to ; be DENIED, rather than permitted. Also, there are no privilege ; letters following each template. Whenever a particular user ; attempts to access a hot key that has an ACL (either via the ; menu or assigned key), Screen Demon will scan the ACL looking ; for a match for the current username. If no template in the list ; matches the current username, Screen Demon will silently deny the ; user access to the hot key. If a match is found, then if the ; template started with `!', access is denied; otherwise, the ; hot key routine will be called. ; ; NOTE: If there is no ACL clause specified in a particular ; hot key definition, then all users will be able to ; access that hot key routine. ; ; For example, suppose the following ACL clause was specified ; as part of a hot key definition: ; ACL FRED !MARTHA MAR+ ; This indicates that FRED may access the hot key, and anyone ; whose username begins with the letters "MAR" except MARTHA ; can access the hot key. All other users will be denied access. ; ; As another example, the ACL clause ; ACL !ACCT+ + ; means that everyone except those whose usernames begin with ; the letters "ACCT" can access the associated hot key routine. BEGIN_HOT_KEYS ;This line (and the END_HOT_KEYS below) must exist ; even if there are no hot keys defined. ; Assign the SCREEN DEMON pop-up main menu to function key 11 (F11) HOT_KEY F11 LINKED SD_MAIN_MENU ; Redraw the Screen when the Erase Page key is pressed HOT_KEY ERASE_PAGE LINKED SD_REDRAW ;Word address of Redraw routine MENU Redraw Screen ; On CMD PRINT or CMD SHIFT PRINT, call the Print Screen program HOT_KEY CMD_PRINT, CMD_SHIFT_PRINT LINKED SDSCREENPR INT ;this is a C program, not COBOL32 MENU Print Screen ; On F14, call the Calculator HOT_KEY F14 ICOBOL SDCALCULATOR MENU Calculator ; On F12, Read Mail ; You can specify SD_READ_MAIL instead of SD_MAIL_INBOX if you ; want new messages to be displayed automatically when the hot ; key is pressed. HOT_KEY F12 LINKED SD_MAIL_INBOX MENU Read Mail ; On Shift F12, Send Mail HOT_KEY SHIFT_F12 LINKED SD_INPUT_MAIL ;Word address of Input Mail Routine MENU Send Mail ; On F13, call the Notepad HOT_KEY F13 LINKED SD_NOTEPAD ;Word address of Notepad routine MENU Notepad ; On F15, call the CLI Interface HOT_KEY F15 LINKED SD_CLI_INTERFACE ;Word address of CLI Interface routine MENU Call CLI ; On Shift F11, call the SCREEN DEMON Command routine (sets Turbo level) HOT_KEY SHIFT_F11 LINKED SD_COMMAND ;Word address of Command routine MENU Turbo On/Off ; On Shift F14, call the Calendar program HOT_KEY SHIFT_F14 ICOBOL SDCALENDAR MENU Calendar ;Add more hot key routine definitions here as required... END_HOT_KEYS ;The following section is used to translate entered key codes to ;different ones. BEGIN_TRANSLATIONS ;This line is required even if there are no ;key translations specified ;For each key that is to be translated to another key, enter a line ;of the following format: ; ; TRANSLATE , ; ; where both key codes are of the form described for ; under the HOT KEY section above. ; ;For example, the following two lines (if the semicolons were removed ;to uncomment them) will translate the up and down arrow keys to F3 and F2, ;respectively: ; TRANSLATE UP,F3 ; TRANSLATE DOWN,F2 ;Insert key translations here END_TRANSLATIONS ;This line is required even if there are no ;key translations specified ;Sometimes it may be desirable to input a particular key to an application, ; even if that key has been assigned to be a hot key or is normally ; translated to appear as another key value. The following definition ; specifies an "escape" key that, if pressed, suppresses hot key processing ; and/or translation of the next key pressed. To pass the chosen "escape" ; key to the application, press it twice. If no "escape" key is desired, ; specify a value of -1. Note that the "escape" key can never be a hot key ; or be translated. HOT_ESCAPE_KEY: CTRL_SHIFT_F15 ;The standard Screen Demon hot key routines accept as the normal ; exit key. Users may be accustomed to pressing a different key to ; exit in their application programs; for example, CEO uses F11 as ; the Cancel/Exit key. To minimize user confusion, it is possible ; to designate an alternate exit key for Screen Demon hot key routines ; that will act the same as . This alternate exit key can be set ; to the same key that the user would press to exit their application ; programs. If no such alternate exit key is desired, set the answer ; to the following question to -1; otherwise, specify the key name: SD_ALTERNATE_EXIT_KEY? -1 ;none by default ;String that will be displayed whenever an input is completed to provide ; immediate feedback to the operator that the input operation is over. ; The next flush will undo whatever this string does to the screen. ; Special screen control characters can be included in the string by ; enclosing them inside <>. Predefined control character names available: ; BLINK_ON, BLINK_OFF, UNDER_ON, UNDER_OFF, DIM_ON, DIM_OFF ; ; If no such feedback is desired, set the INPUT_FEEDBACK_STRING_SIZE below ; to zero. Overall performance will be somewhat slower if the feedback ; string is output after inputs, but may make the system APPEAR faster ; to an operator. INPUT_FEEDBACK_STRING: .TXT "<13>" ;perhaps a CR ;Number of characters in the above string INPUT_FEEDBACK_STRING_SIZE: 0 ;default is no feedback string ;String that will be displayed whenever the user has unread mail. ; Special screen control characters can be included in the string by ; enclosing them inside <>. Predefined control character names available: ; BLINK_ON, BLINK_OFF, UNDER_ON, UNDER_OFF, DIM_ON, DIM_OFF ; Default is a bright, blinking `Mail' in the top right corner of the screen. MAIL_INDICATOR: .TXT "Mail" ;Number of characters in the above string MAIL_INDICATOR_SIZE: 5 ;Location and size of region of screen occupied by above mail indicator string MAIL_VIEW_LINE: 1 MAIL_VIEW_COLUMN: 77 MAIL_VIEW_HEIGHT: 1 MAIL_VIEW_WIDTH: 4 ;String that will be displayed whenever a terminal is being viewed remotely ; through the SD_SPY program. Special screen control characters can be ; included in the string by enclosing them inside <>. Predefined control ; character names available: ; BLINK_ON, BLINK_OFF, UNDER_ON, UNDER_OFF, DIM_ON, DIM_OFF ; Default is no indicator. SD_REMOTE_VIEW_INDICATOR: .TXT "Remote View" ;Number of characters in the above string, or zero if no Remote View ; indicator is desired SD_REMOTE_VIEW_INDICATOR_SIZE: 0 ;set this to 12 ; to enable indicator ; string defined above ;Location and size of region of screen occupied by above indicator string SD_REMOTE_VIEW_INDICATOR_LINE: 1 SD_REMOTE_VIEW_INDICATOR_COLUMN: 1 SD_REMOTE_VIEW_INDICATOR_HEIGHT: 1 SD_REMOTE_VIEW_INDICATOR_WIDTH: 11 ;String that will be displayed whenever terminal inputs are being handled ; remotely through the SD_SPY program. Special screen control characters ; can be included in the string by enclosing them inside <>. Predefined ; control character names available: ; BLINK_ON, BLINK_OFF, UNDER_ON, UNDER_OFF, DIM_ON, DIM_OFF ; Default is a bright, blinking `Remote Input' in the top left corner ; of the screen. SD_REMOTE_INPUT_INDICATOR: .TXT "Remote Input" ;Number of characters in the above string SD_REMOTE_INPUT_INDICATOR_SIZE: 13 ;Location and size of region of screen occupied by above indicator string SD_REMOTE_INPUT_INDICATOR_LINE: 1 SD_REMOTE_INPUT_INDICATOR_COLUMN: 1 SD_REMOTE_INPUT_INDICATOR_HEIGHT: 1 SD_REMOTE_INPUT_INDICATOR_WIDTH: 12 ;If the CEO interface is to be used, the following two fields allow the ; location of the CEO mail status indicator to be specified. ; At runtime, the optional hot key routine SD_CEO_STATUS_MOVE (see ; the CEO interface documentation) can be used to move the status ; indicator to a different position as needed. These two fields ; are ignored if the CEO interface is not installed. CEO_MAIL_VIEW_LINE: 1 ;Normal default is first line CEO_MAIL_VIEW_COLUMN: 1 ; and first column ;If the WordPerfect Library or Office interface is to be used, the ; following field allows the letter code for the "Go To CLI" ; selection on the Shell menu to be specified. SCREEN DEMON needs ; to know this in order for the SD_CLI_INTERFACE hot key to work ; when running under WP Shell. SD_WP_SHELL_CLI_LETTER: .TXT "G" ;Amount of time in seconds that may elapse during a single input before ;the list of 'periodic calls' is executed. The input is restarted after ;those functions are called. The SCREEN DEMON mail check and CEO interface ;mail check are examples of these periodic calls. PERIODIC_INTERVAL? 60 ;once per minute ;Amount of time in seconds that may elapse during a single input before ;triggering the SCREEN DEMON screen saver. This routine will completely ;blank the screen, including the cursor, to avoid burn-in. Pressing any ;key will restore the original screen contents. Set this field to -1 ;to disable the screen saver. SCREEN_SAVER_INTERVAL? -1 ;default is no screen saver ;Amount of time in seconds that may elapse while the Screen Demon Main Menu ;is waiting for a response before automatically exiting the menu. ; ;Use a value of -1 to never terminate the Main Menu because of inactivity. MAIN_MENU_TIMEOUT_INTERVAL? -1 ;default is no timeout ;Amount of time in seconds that may elapse for a single input before ;the user is terminated (via orderly shutdown: files will be closed). ; ;Use a value of -1 to disable automa @ tic logoff so that users will ; never be terminated because of inactivity. ; ;Note that specific programs can be protected against automatic logoff ; if desired. See Special Programs List below. LOGOFF_INTERVAL? -1 ;Default is to never terminate ; inactive users ;An optional time range during the day can be specified during which ; termination due to inactivity will not occur. Before and after ; this period, however, the time value specified in LOGOFF_INTERVAL ; above will apply. By default, logoff is permitted at any time, ; assuming LOGOFF_INTERVAL above is not -1. ; ; To specify a no-logoff time range, indicate the beginning and ending ; times (24-hour clock) of the protected period as follows: ; LOGOFF_OK_BEFORE hour,minute ; LOGOFF_OK_AFTER hour,minute ; ; For example, assuming that LOGOFF_INTERVAL contained an actual value, ; such as (15*60) to indicate 15 minutes, then the following statements ; would disable automatic logoffs between 8:00 am and 5:30 pm: ; LOGOFF_OK_BEFORE 8,00 ; LOGOFF_OK_AFTER 17,30 ; After 5:30 pm, users inactive for more than 15 minutes are to be logged ; off; the same applies to users inactive before 8:00 am. ;Specify optional no-logoff time period below: LOGOFF_OK_BEFORE 0,00 ;Default is LOGOFF_OK_AFTER 0,00 ; no protected period ;An optional list of users can be specified who are to be considered ; immune from automatic logoff. This list can contain exact usernames, ; username templates, or both. ; ; The NO_LOGOFF_USERS command is used to specify the list. There may ; be up to 25 usernames per NO_LOGOFF_USERS command, and there may be ; any number of NO_LOGOFF_USERS commands, provided each begins on a ; separate line. ; ; For example, ; ; NO_LOGOFF_USERS FRED MAR+ ; NO_LOGOFF_USERS ACCT+ ; ; indicates that all users whose names begin either with the letters MAR ; or ACCT should never be terminated due to inactivity, nor should the ; particular user named FRED. All other users can be terminated if ; their terminals become inactive, provided this is not prevented by ; other considerations, such as the logoff time range specified above, ; or the NO_LOGOFF special program declaration described later. ;Specify any users who should be immune from automatic logoff termination NO_LOGOFF_USERS ;no immune users by default ;The following question specifies the default value for the Turbo ; display setting. Turbo display offers two types of optimization ; of screen output: ; (1) System Call Buffering - Screen output is held until an input ; occurs, or until an specified amount of time has elapsed, ; as set with the FLUSH_INTERVAL? question below. ; (2) Discarding Redundant Characters - A given character will not ; be sent to the terminal if the screen position where it ; is to be displayed already shows that character. ; ; The allowable values for the Turbo display setting indicate what ; level of optimization is desired: ; ; Value Optimization ; ------- --------------- ; FULL Levels 1 and 2 ; PARTIAL Level 2 only ; this is equivalent to FULL with ; FLUSH_INTERVAL? set to zero, and ; is not recommended because it requires ; far more CPU resources ; OFF no optimization ; ON same as FULL ; ;Select an answer from the above list for the following question: DEFAULT_TURBO_DISPLAY_SETTING? FULL ;When running in FULL Turbo display mode, program screen output is normally ; held until the next input occurs, at which time the terminal screen ; is updated. Programs with many displays between inputs, such as a ; report program displaying a record count as it runs, need the screen ; updated more frequently. For this purpose, Screen Demon contains an ; optional Flush Timer which will force a screen update to occur if a ; specified amount of time has elapsed since the last flush, even if ; no input has occurred. ; ; The following field specifies the maximum time in seconds between ; screen updates. ; Use a value of -1 to disable the flush timer; this is equivalent ; to Full Turbo in rev 2 Screen Demon. ; Use a value of 0 to prevent buffering of program screen output; ; this is equivalent to Partial Turbo in rev 2 Screen Demon. FLUSH_INTERVAL? 10 ;flush at least once every ten seconds ;If Turbo mode is on, screen output is held until an input occurs, or ; the FLUSH_INTERVAL expires. If the screen scrolls, it may be ; desirable to update the screen at that time, rather than waiting ; for one of the other events to trigger a flush. The following ; field specifies the maximum number of scroll ups that can be ; held before forcing a flush. Set this field to -1 to prevent ; automatic flushing on scroll operations. MAX_SCROLL_BEFORE_FLUSH: 5 ;If the screen scrolls 5 lines, ; force a flush ;Miscellaneous options, answers are either YES or NO ;When Turbo mode is on, should SCREEN DEMON actually clear the screen ;whenever the host program outputs a clear screen command? ; ; Doing so is usually more efficient, and may be preferable to the ; operators. However, if the host program tends to blank the screen ; and repaint the same text a lot, it would probably be more efficient ; and would look better if SCREEN DEMON suppressed the actual clear ; screen command. PHYSICAL_SCREEN_CLEAR? YES ;Should SCREEN DEMON automatically redraw the screen whenever the ;host program returns from a call to a nonSCREEN DEMON program? ; ; When the host program calls out to a nonSCREEN DEMON program and then ; returns, SCREEN DEMON has no way to know what the nonSCREEN DEMON ; program did to the terminal screen. In order to resynchronize the ; screen with SCREEN DEMON's internal picture, a redraw is necessary. ; By default, this happens at the next flush after returning from ; the call. However, if the called program displayed some information ; that the user needs to see, an immediate redraw will clear this ; information before it can be read. In such cases, it might be ; preferable to set the following option to NO to inhibit the automatic ; redraw, and put code into the host program to call SD_REDRAW when a ; screen redraw is appropriate. Another case where it might be better ; to do the redraw under program control is when the called program ; doesn't actually affect the screen, and so a redraw is not really ; necessary. AUTO_REDRAW_AFTER_NONSD_CALL? YES ;Should SCREEN DEMON use the Line Drawing character set for boxes and ;lines on terminals that have this capability? ; ; The SCREEN DEMON calls SD_DRAW_BOX, SD_DRAW_HLINE, and SD_DRAW_VLINE ; allow the programmer to easily draw boxes and lines on the terminal. ; Boxes and lines created using the Line Drawing character set ; generally look better than the default boxes and lines created ; by using reverse video and underline screen attributes. However, ; there are some differences in the way boxes and lines must be ; built if the Line Drawing character set is used that could cause ; some incompatibilities with existing programs. The main difference ; is that horizontal lines built with Line Draw characters actually ; take up a character position, but horizontal lines created by ; underlining characters already present do not. If this is a problem, ; set the answer for one or both of the following two questions to NO. USE_LINE_DRAW_CHARSET_FOR_BOXES? YES USE_LINE_DRAW_CHARSET_FOR_LINES? YES ;Should Screen Demon turn off the /NRM characteristic so that SENDs ;are not blocked? ; ; Some programs, such as those compiled with VS/COBOL, set the ; /NRM characteristic to protect their screens. However, blocking ; SENDs altogether is not the best solution because there are ; cases when a SEND is the only way of notifying a user of some ; event. Since Screen Demon provides a Redraw Screen capability, ; an application program's screen can easily be restored after a ; SEND message appears on the terminal. Consequently, i ` t is not ; necessary for a program to set the /NRM characteristic. Answering ; this question YES tells Screen Demon to keep this characteristic ; off, even if the host program tries to turn it on. FORCE_NRM_CHARACTERISTIC_OFF? YES ;Should SCREEN DEMON trim trailing spaces and underscore characters ;from the initial contents of input fields, thus permitting ^A, ^E, ;and DELETE screenedit functions to work properly? ; ; Normally, COBOL input fields start off filled with underscore ; or space characters. This means that the "go to end of field" ; and "insert" screenedit functions will not work as expected, ; since PMGR treats the trailing spaces and/or underscores as ; real characters. Also, when DEL is used, trailing underscores ; will shift to the left, shortening the apparent length of the ; input area. Screen Demon can optionally trim these characters ; when the input begins, so that PMGR doesn't know about them. ; The characters will still be displayed before the input begins ; as always. The primary drawback is that when an input restarts, ; such as after a timeout or hot key, any trailing spaces or ; underscores will vanish, which may confuse some operators. ; ; NOTE: A bug in VS/COBOL rev 3.20 and below, and in rev 3.71, ; prevents function keys from working correctly if the ; underscores are removed, so this question MUST be answered ; NO for these revisions of VS/COBOL. The default for this ; question is NO for that reason. TRIM_SPACE_UNDERSCORE_ON_INPUT? NO ;Should SCREEN DEMON ignore console interrupts (^C^A, ^C^B, and ^C^E)? ; ; One of SCREEN DEMON's tasks catches console interrupts. By default, ; it handles the interrupts the same way that the host program would ; if SCREEN DEMON were not present. If the host program contains code ; to watch for console interrupts, SCREEN DEMON will pass the interrupt ; to the host program; otherwise, SCREEN DEMON will terminate the ; process gracefully. ; ; A YES answer to the following question will cause SCREEN DEMON ; to discard any console interrupt events. They will not be passed ; to the host program, and SCREEN DEMON will not terminate the process. ; This is an easy way to prevent operators from aborting out of ; programs that cannot defend themselves. IGNORE_CONSOLE_INTERRUPTS? NO ;How should SCREEN DEMON compensate for the ^C^x character sequence ; echoed whenever the operator presses a console interrupt? ; ; The ^C^x sequence normally echoed whenever a console interrupt ; is pressed is not visible to SCREEN DEMON. Consequently, SCREEN ; DEMON does not know where those echoed characters appeared on the ; screen. By default, SCREEN DEMON will update its image buffers ; to reflect the ^C^x characters by assuming that they are located ; immediately before the cursor position. However, if a display ; was occurring at the time, it is possible for this assumption to ; be incorrect. In order to definitely resynchronize the screen ; with SCREEN DEMON's internal picture, a redraw is necessary, but ; this can be annoying if done automatically; the Redraw hot key ; is available to force a redraw only when necessary. ; ; Select one of the following choices to answer this question: ; INTR_ERASE Immediately space over the ^C^x, assuming that ; the cursor is just past the sequence, leaving ; the cursor at its original position as if ^C^x ; had never been displayed. ; ; INTR_REDRAW Redraw the screen at the next flush to remove ; the ^C^x. This was the method used by rev 2.01.05 ; ; INTR_ECHO Update the ^C^x into the internal image buffers, ; assuming that the cursor is just past the sequence, ; leaving the cursor past the sequence. ; ; INTR_NOTHING Ignore the ^C^x sequence. ; CONSOLE_INTERRUPT_HANDLING? INTR_ECHO ;NOTE: The COBOL versions of the Print Screen hot key routine do not ; use the answers to the following two SDSCREENPRINT... questions, ; but the LINKED SDSCREENPRINT version does. ;Should the SCREEN DEMON Print Screen hot key routine ask the user ;for an output filename? ; ; Answer this question YES to allow the operator to specify a ; print destination for the screen image, with the default ; shown below as SDSCREENPRINT_OUTPUT_NAME. If this question ; is answered NO, then the operator will not be asked for an ; output filename, and the screen image will be printed to the ; default output filename as specified below. SDSCREENPRINT_ASK_OUTPUT_NAME? YES ;Default output filename for the SCREEN DEMON Print Screen hot key routine: SDSCREENPRINT_OUTPUT_NAME: .TXT "@LPT" ;Should the SCREEN DEMON Read Mail hot key routine ask the user ;for an output filename when the Print option is selected? ; ; Answer this question YES to allow the operator to specify a ; print destination for the printed message, with the default ; shown below as SD_READ_MAIL_OUTPUT_NAME. If this question ; is answered NO, then the operator will not be asked for an ; output filename, and the message will be printed to the ; default output filename as specified below. SD_READ_MAIL_ASK_OUTPUT_NAME? YES ;Default output filename for the SCREEN DEMON Read Mail hot key routine ; when the Print option is selected: SD_READ_MAIL_OUTPUT_NAME: .TXT "@LPT" ;Should SCREEN DEMON mail messages be deleted automatically after ;the operator has read them? ; ; Answer this question YES to force mail messages to be deleted ; automatically after the operator has acknowledged reading them. ; If this question is answered NO, previously read messages will ; remain in a user's inbox until deleted by the user. SD_READ_MAIL_AUTO_DELETE? NO ;Should SCREEN DEMON mail messages always be delivered immediately, ;whether or not they are marked as Urgent? ; ; Answer this question YES to force mail messages to appear ; immediately on the recipient's screen, even messages that ; are not Urgent. If this question is answered NO, only ; Urgent messages will appear immediately. Normal messages ; will simply trigger the Mail Indicator; the user must press ; the Read Mail hot key to view these messages. SD_IMMEDIATE_MAIL_DELIVERY? NO ;Declare the default sizes returned by the SD_GET_IMAGE and ; SD_GET_IMAGE_BELOW_FLOAT calls. ; ; Previous revisions of Screen Demon returned a 24 line by 80 column ; image, followed by 4 more bytes containing the cursor offset and ; global attribute settings. For rev 3.00, the internal screen images ; are 24x162, and there are a number of additional fields following the ; image. Existing programs will be expecting the smaller image style ; if they are simply relinked with rev 3.00 Screen Demon. However, if ; a program is recompiled, it may or may not want the older image format. ; If the program defines its image buffer using the SDIMAGE.DEF or ; SCREEN_DEMON.H include files, then a recompile without source code ; changes results in the program expecting the new larger image format. ; However, if the image definition is hard-coded, then the program will ; still expect the older image format even after recompilation. Thus, ; this configuration file option is provided to allow the system ; manager to decide which is the most appropriate default behavior for ; the Get Image calls. Note that a specific Get Image call can declare ; the actual size of image buffer it wants; this overrides the default ; setting defined here. ;Default number of lines in returned image buffers SD_GET_IMAGE_DEFAULT_LINES? 24 ;Default number of columns in returned image buffers ; For rev 3.00 compatibility, specify 162 ; For rev 2.01 (and before) compatibility, specify 80 ; SD_GET_IMAGE_DEFAULT_COLUMNS? 162 ;Default size in bytes of additional parameters returned ; following the image characters and attributes ; For rev 3.00 compatibility, specify 14 ; For rev 2.01 (and before) compatibility, specify 4 ; ;Default additional parameters return size in bytes SD_GET_IMAGE_DEFAULT_PARAMS? 14 ; The fu nctionality of the SD_RETURN_INPUT call was enhanced in ; revision 3.51. In previous revisions, this call functioned only ; in a program or subroutine invoked by pressing a hot key; the string ; of characters specified with this call was returned to the input field ; where the hot key was pressed. ; ; Beginning with revision 3.51, the specified string will be placed in the ; next encountered input field, whether or not a hot key is active. In ; addition, the string can contain multiple fields, separated by delimiters. ; At an input, the next chunk of the return input string will be loaded into ; the field as if the operator had entered it. If a delimiter follows the ; chunk, the input will be terminated as if the operator had pressed that ; key. This process is repeated at subsequent inputs until the contents of ; the return input string have been exhausted. ; ; Since this new functionality is potentially incompatible with that of ; older revisions, a configuration option is provided to allow the desired ; mode of operation to be specified. The new method will be incorrect in ; the situation where a hot key program calls SD_RETURN_INPUT, but then ; does an input before exiting. With the old method, this input would be ; unaffected by the SD_RETURN_INPUT call. With the new method, the returned ; characters would appear at that input, rather than the input field where ; the hot key was pressed. If you have programs that exhibit this behavior, ; you will need to modify them or set the following configuration option to ; "hot key only" mode. Otherwise, the new method should be satifactory. ; ; Choose the answer to the following question from this list of options: ; RI_HOT_ONLY SD_RETURN_INPUT valid only in hot key ; routines; the returned string is loaded ; into the field where the hot key was pressed. ; (Pre-revision 3.51 functionality) ; ; RI_ANY_INPUT SD_RETURN_INPUT works at any time; the ; returned string is loaded into the next ; encountered input field(s), and multiple ; input fields can be returned. ; (revision 3.51 functionality) ; ; Should the SD_RETURN_INPUT call function only to return input information ; from a hot key call to the input field where the hot key was pressed, or ; should return strings declared with this call be available at the next ; encountered input field(s)? SD_RETURN_INPUT_MODE? RI_ANY_INPUT ;default is new method ;If multiple character sets are to be used by programs running under ; SCREEN DEMON, a character set palette must be specified that ; lists the particular character sets to be used. SCREEN DEMON ; supports up to 8 simultaneously displayed character sets. ; Note that only some DG terminals support multiple character sets. ; ; Specify the character sets that will be invoked by listing their ; two-character codes, which can be found in the terminal's programming ; manual. The first code in the list should be the standard primary ; character set to be used (the code 00 is suggested, which is the set ; of the keyboard attached to the terminal). The order of the remaining ; codes is unimportant. If less than eight codes are listed, the default ; settings will be used for the unspecified palette slots. ; ; For example, (this is also the default palette) ; ; CHAR_SET_PALETTE 00,10,11,0>,01,02,13,20 ; ; specifies that the following character sets are available: ; '00' char set #0 (primary) is Keyboard set ; '10' char set #1 is Word Processing set ; '11' char set #2 is Line Drawing set ; '0>' char set #3 is DG International set ; '01' char set #4 is U.S. set ; '02' char set #5 is United Kingdom set ; '13' char set #6 is DG Special Graphics set ; '20' char set #7 is DLL set 0 ;Indicate your desired character set palette here: CHAR_SET_PALETTE 00,10,11,0>,01,02,13,20 ;Which of the sets listed in the palette above should be the default ; primary set? DEFAULT_PRIMARY_CHAR_SET? 00 ;Which of the sets listed in the palette above should be the default ; alternate set? DEFAULT_ALTERNATE_CHAR_SET? 10 ;For terminals that support selectable 7/8 bit mode, what should be ; the default character length? ; ; Most Data General terminals that support multiple character sets ; also support either 7 or 8 bit mode. When in 7-bit mode, the high ; bit is a parity bit, so the terminal only looks at the lower 7 bits ; when determining what character to display, and the character is ; always selected from the currently active character set. When in ; 8-bit mode, all bits are significant. If the high bit for a received ; character is set, the terminal will display the character from the ; current alternate character set even if the primary set is active ; at the time. ; ; This question allows the default setting for this parameter to be ; specified. Screen Demon will force the terminal into this state ; on start-up. ; ; This question should be answered with a value of either 7 or 8. DEFAULT_7_OR_8_BIT_MODE? 7 ;For terminals that support selectable keyboard language, what should be ; the default setting? ; ; When the terminal is operating in 7-bit mode (see above), this ; parameter is ignored, and the keyboard language matches the ; keyboard hardware. When in 8-bit mode, the keyboard language ; can also be set to be the US ASCII character set for 7-bit ; characters, and the DG International character set for 8-bit ; characters. This may be necessary if the SPCL key is to be ; used to generate particular 8-bit characters. ; ; Select one of the following choices to answer this question: ; KEYBD_LANG_HARDWARE Matches the keyboard hardware ; KEYBD_LANG_INTERNATIONAL US ASCII in K0, DG International in K1 DEFAULT_KEYBOARD_LANGUAGE? KEYBD_LANG_HARDWARE ;For terminals that support variable cursor types, what should be ; the default cursor type? ; ; The more advanced Data General terminals support different cursor ; types. On newer terminals, the default cursor type can be adjusted ; in the set-up screens. There is also a local cursor type key on ; the keyboard. Screen Demon cannot determine the current cursor type ; of the terminal, so it must force the cursor to a particular type ; when a Redraw occurs. The desired default cursor type can be ; indicated here. ; ; Select one of the following choices to answer this question: ; CURSOR_INVISIBLE No cursor ; ; CURSOR_BLINK_UNDERSCORE Cursor is a blinking underscore ; ; CURSOR_BLOCK Cursor is a reverse video block ; ; CURSOR_BLINK_BLOCK Cursor is a blinking reverse ; video block ; ; CURSOR_UNDERSCORE Cursor is a nonblinking underscore ; (not supported on older terminals) ; DEFAULT_CURSOR_TYPE? CURSOR_BLOCK ;For terminals that support adjustable scroll rates, what should be ; the default scroll rate? ; ; The more advanced Data General terminals support different scroll ; rates. On newer terminals, the default scroll rate can be adjusted ; in the set-up screens. There is also a local scroll rate key on ; the keyboard. Screen Demon cannot determine the current scroll rate ; of the terminal, so it must force the scroll rate to a particular ; setting when a Redraw occurs. The desired default scroll rate can be ; indicated here. ; ; Select one of the following choices to answer this question: ; SCROLL_JUMP As fast as new lines are received ; ; SCROLL_SMOOTH_SLOW Smooth scroll, 5 lines per second ; ; SCROLL_SMOOTH_FAST Smooth scroll, 10 lines per second ; DEFAULT_SCROLL_RATE? SCROLL_JUMP ;Initial command string for SD_CLI_INTERFACE hot key routine: ; (can be changed at runtime using the SD_SET_CLI_INIT_CMD call) SD_DEFAULT_CLI_INIT_CMD: .TXT "PREFIX,SCREEN,DEMON,CLI[!ASC 251]" ;Pathname of the CLI program to be called for CLI interface. ; If CLI32 is available, you may wish to change the pathname ; below to call that instead. Alternatively, you may want ; to call SD_CLI, if you have created a Screen Demon possessed ; version of CLI32. SD_CLI_PATHNAME: .TXT ":CLI" ;Screen Demon can maintain a list of the mos t recently entered ; input strings. This is similar to the HISTORY feature in CLI32, ; but Screen Demon's input history works at all input fields in ; any program. A separate input history is kept for each process. ; ; The input history is accessed via two hot key routines, which ; can be assigned to any two different keys on the keyboard. ; The hot key routine SD_GET_PREV_FROM_INPUT_HISTORY moves backward ; in the history list, displaying the input strings in the current ; input field each time the hot key is pressed. The hot key routine ; SD_GET_NEXT_FROM_INPUT_HISTORY works the same way, except that it ; moves forward through the history list. Both routines wrap around ; to the other end of the list when necessary. ; ; To maintain the input history, a buffer must be allocated where ; the input strings can be stored. Obviously, a larger buffer means ; more available input history. Unlike CLI32 HISTORY, where the ; history size is specified in lines, for Screen Demon's input history ; buffer, the size is specified in characters. If the input history ; feature is not desired, set the buffer size to zero. INPUT_HISTORY_BUFFER_SIZE? 0 ;default is no history ;Screen Demon can maintain a copy of text that has recently been scrolled ; off the top of the screen, or cleared because of a form feed command. ; These lines are kept in a "scrollback" buffer. When the buffer becomes ; full, the oldest lines are discarded to make room for new additions. ; ; The scrollback buffer can be examined via the hot key routine ; SD_SHOW_SCROLLBACK_BUFFER, which can be assigned to any key on ; the keyboard. While viewing the scrollback buffer, press UP ARROW ; to move upward and see earlier lines, or press DOWN ARROW to move ; downward and see text that scrolled off more recently. ; ; The scrollback buffer will be allocated at runtime. The size ; of this buffer is declared in characters. Screen Demon will keep ; as many complete scrollback lines in this buffer as will fit; ; the actual number of lines stored will depend on the average line ; length. If the scrollback feature is not desired, set the buffer ; size to zero. SCROLLBACK_BUFFER_SIZE? 0 ;default is no scrollback buf ;First part of pathname to user notepad files. A complete pathname to a ;user's notepad file is formed by taking the prefix string specified here ;(usually a directory pathname), appending the user's name, and then the ;string given below under PAD_PATH_SUFFIX. PAD_PATH_PREFIX: .TXT ":UDD:" ;Name extension of notepad file ready to be appended to Prefix/Username ;combination as described above. PAD_PATH_SUFFIX: .TXT ":NOTEPAD" ;Maximum size, in bytes, of a console logging file. MAX_CONLOG_SIZE? 65536 ;If Screen Demon should maintain a clock on the screen to display ; the current date, time, etc., describe the position, size, ; and format of this clock below. If no clock format string ; is specified, Screen Demon will not link the clock routine ; into your programs. ; ; ;Format string definitions: ; ; SD_FLOAT_CLOCK_FORMAT: ; .TXT "string" ; ; The text in the given string is displayed exactly except for ; constructs beginning with a percent sign (%). The character ; or characters following the percent sign indicate what parameter ; is to be displayed in place of the construct. In the list below, ; the examples of what would be displayed are based on the example ; point in history of 18-DEC-90 at 3:05 pm ; ; %% display a single percent sign ; % display a space. Use this in order to ; specify sequences of more than one SPACE, ; because " " looks like only one SPACE ; to the config file builder, but "% % % " ; will be seen as three consecutive SPACE ; characters. ; %cn display the upper two digits of complete year ; (e.g., 19) ; %yr display the lower two digits of complete year ; (e.g., 90) ; %mo display the month number within the year (e.g., 12) ; %nm display the full name of the month (e.g., December) ; %am display the abbreviated month name (e.g., Dec) ; %da display the day number within the month (e.g., 18) ; %nd display the full name of the day (e.g., Tuesday) ; %ad display the abbreviated day name (e.g., Tue) ; %hr display the hour in 12-hour format (e.g., 3) ; %mh display the hour in 24-hour format (e.g., 15) ; %mi display the minutes within the hour (e.g., 5) ; %ap display appropriate am/pm indicator (e.g., pm) ; ; ; For names, abbreviations, and the am/pm indicator, the case of ; the first character of the format specifier indicates the case ; of the first character of the displayed string. The case of the ; second character of the format specifier indicates the case of ; the remaining characters of the displayed string. ; e.g. %nm --> december ; %Nm --> December ; %NM --> DECEMBER ; ; For format specifiers that result in numeric displays, the case ; of the specifier is ignored. However, for these specifiers, ; a `0' character can be placed between the `%' character and the ; two-character code; this indicates that a leading zero should be ; included if necessary to pad the number out to two digits. ; e.g. %hr:%mi %ap --> 3:5 pm ; %hr:%0mi %ap --> 3:05 pm ; %0mh%0mi --> 1505 ; ; ; Note that screen control characters can be included in the ; format string if desired. See MAIL_INDICATOR above for ; information about these characters. ; ; As a more complex example, the format string ; "% It is now %hr:%0mi %ap on %Nd % %Nm %da, %cn%yr" ; would display the following underlined clock output: ; It is now 3:05 pm on Tuesday December 18, 1990 ; which would be updated at each input, and periodically ; during an input based on the time value indicated for ; the PERIODIC_INTERVAL? question above. ; ; ;Describe your desired clock format below. ; Leave this question blank if you do not want Screen Demon ; to display a clock. Otherwise, specify a format string ; of the form ; .TXT "string" ; following the label below: SD_FLOAT_CLOCK_FORMAT: ;default is no clock ;Specify the position and size of the clock on the screen. Note that ; the answers to the next four questions are ignored if the answer ; to the SD_FLOAT_CLOCK_FORMAT: question above is blank. The values ; shown here would match a Clock Format of "%mh:%0mi" SD_FLOAT_CLOCK_LINE: 1 SD_FLOAT_CLOCK_COLUMN: 76 SD_FLOAT_CLOCK_HEIGHT: 1 ;height in lines SD_FLOAT_CLOCK_WIDTH: 5 ;width in columns ;The names used by Screen Demon for months and weekdays are listed below. ; These lists can be modified to support languages other than English. ; Note that each of the two lists must appear on a single line, all ; names must be specified in uppercase, and there must be a vertical ; bar character (|) following each name in each of the lists. SD_MONTH_NAMES: .TXT "JANUARY|FEBRUARY|MARCH|APRIL|MAY|JUNE|JULY|AUGUST|SEPTEMBER|OCTOBER|NOVEMBER|DECEMBER|" SD_WEEKDAY_NAMES: .TXT "SUNDAY|MONDAY|TUESDAY|WEDNESDAY|THURSDAY|FRIDAY|SATURDAY|" ;Under either the Interactive COBOL or Shared Library versions ; of SCREEN DEMON, all user programs will access the same copy ; of SCREEN DEMON, causing all programs to be treated alike. ; Since there will probably be some programs that should not ; be run with full Turbo Display, for example, this ; configuration file allows "special" programs to be declared. ; In this way, programs with special requirements will be ; automatically recognized and handled appropriately by SCREEN ; DEMON when they execute; all other programs will run normally. ; ; One of the special requirements that may be declared is Turbo ; Display level. While the majority of user programs will perform ; best with Full Turbo, there may be a few situations where ; No Turbo might need to be selected. For compatibility with ; Screen Demon rev 2.01, Partial Turbo is still available, but ; is strongly discouraged because of the performance penalty. ; ; Also, if the automatic logoff feature is enabled (see ; LOGOFF_INTERVAL above), there may be crit ical programs that ; shouldn't be terminated, no matter how long an operator lets ; them remain idle. These programs can be declared in the ; Special Programs list below to protect them from the automatic ; logoff handler. ; ; In rare cases, it may be appropriate to have SCREEN DEMON turn ; itself off while a particular program runs. This can be ; accomplished by declaring these programs as BYPASS in the ; Special Programs list. ; ; There may be some programs where hot keys are not desirable, ; such as a logon program. Since hot keys could allow access ; to application programs before a user had entered a name and ; password, it might be wise to disable hot keys while the ; logon program is running. This can be accomplished by declaring ; such programs as NO_HOT_KEYS in the Special Programs list. ; ; By listing a program in the Special Programs list with the LOG ; option, console event logging will automatically activate whenever ; that program is running. This eliminates the need to use SPY to ; watch for someone to run the program, and then manually start ; Logging on that console. ; ; ; Entries in the Special Programs list are lines of the form: ; Keyword programname1,programname2,...,programnameN ; ; The possible Keywords are ; PARTIAL_TURBO ; NO_TURBO ; NO_LOGOFF ; BYPASS ; LOG ; NO_HOT_KEYS ; ; There may be any number of entries in the list. A program ; can appear in more than one entry if it has more than one ; special attribute. The only restrictions are that each line ; must begin with one of the above keywords, and that the program ; names must be simple filenames without the .PR or .PD extension ; (pathnames or pathname fragments are not allowed). ; ; For example, ; BEGIN_SPECIAL_PROGRAMS ; PARTIAL_TURBO CSMNUPRT,CSOPRPRT ; NO_TURBO CSDBFM4 ; PARTIAL_TURBO CSLOGUPD ; NO_LOGOFF CSLOGUPD, CSDBFM4 ; NO_HOT_KEYS CSLOGON ; END_SPECIAL_PROGRAMS ; declares that the programs called CSMNUPRT, CSOPRPRT, and ; CSLOGUPD are to be run in Partial Turbo, while the program ; called CSDBFM4 must be run with Turbo Display completely off. ; All other programs run at the default Turbo setting, probably ; Full. In addition, the programs called CSLOGUPD and CSDBFM4 ; are immune to automatic logoff, and while the program CSLOGON ; is running, hot keys are disabled. BEGIN_SPECIAL_PROGRAMS ;This line (and the END_SPECIAL_PROGRAMS below) must ; exist even if there are no special programs defined. ;Put special program declarations here END_SPECIAL_PROGRAMS ;Titles used for the various Screen Demon pop-up functions. Note that ; control characters cannot be included in these title strings. ;Main menu - SD_MAIN_MENU: SD_MAIN_MENU_TITLE: .TXT " SCREEN DEMON Menu " ;Note: The <60> and <62> characters in the string below are `<' and `>', ; respectively. They must be expressed in numeric form because these ; are special characters for the .TXT assembler pseudo-op. SD_MAIN_MENU_FOOTER: .TXT " <60>NL<62> to select" ;Notepad - SD_NOTEPAD: SD_NOTEPAD_TITLE: .TXT " SCREEN DEMON Notepad " ;Print Screen - SDSCREENPRINT: SDSCREENPRINT_TITLE: .TXT " SCREEN DEMON Screen Print " ;Calculator - SDCALCULATOR ; There are two title lines for the calculator, each of which ; may be up to 16 characters long. SDCALCULATOR_TITLE_ONE: .TXT "SCREEN DEMON" SDCALCULATOR_TITLE_TWO: .TXT " Calculator" ;Also store these titles in PutValue space so that COBOL programs ; can get to them: PUT_VALUE SDCALCULATOR_TITLE_ONE PUT_VALUE SDCALCULATOR_TITLE_TWO ;Calendar - SDCALENDAR: SDCALENDAR_TITLE: .TXT " SCREEN DEMON Calendar " ;Also store this title in PutValue space so that COBOL programs ; can get to it: PUT_VALUE SDCALENDAR_TITLE ;Read Mail - SD_READ_MAIL: SD_READ_MAIL_TITLE: .TXT " SCREEN DEMON Read Mail " ;Input (Send) Mail - SD_INPUT_MAIL: SD_INPUT_MAIL_TITLE: .TXT " SCREEN DEMON Send Mail " ;Turbo Control - SD_COMMAND: SD_COMMAND_TITLE: .TXT " SCREEN DEMON Turbo Control " ;Request a chunk of unshared memory of a specified size in pages (2 KB) ; to be reserved for initial Screen Demon memory allocation operations. ; Screen Demon will use memory from this chunk until it is exhausted, ; and only then will it resort to a temporary shared memory file. The ; default size of 24 is sufficient for program start-up needs and the ; initial window, but not for additional pop-up windows. Note that ; excessively large values for this parameter may require that a ; larger KTOP or MTOP be declared at LINK time. This parameter can ; be set to zero to save space in the .PR file, at the expense of ; increased program start-up time. ; ; NOTE: This parameter should be set to zero for ICOBOL revision 1.60 ; and below; unpredictable errors may occur otherwise. ;Default SD_MEM initial chunk size in pages: SD_MEM_SIZE 0 ;The following section applies primarily to CEO environments, but may ; be applicable to other shared console / multiple program situations. ; ; If some of the CEO programs, such as CEO_CP, have been possessed ; with Screen Demon, but others, such as CEO_WP, have not, then special ; handling is required to keep the terminal screen up-to-date. ; In this situation, the integrated programs transfer control of the ; console between each other by means of IPC messages. Screen Demon ; will need to monitor these messages, since the console parameters ; (characteristics, etc.) may need to be reset and the screen redrawn ; when an IPC message is received from a non-Screen Demon process to ; return control of the console to a Screen Demon program. However, ; there is other IPC message traffic to/from the CEO agents, such as ; CEO_POA, that can be safely ignored, since these processes will not ; affect the console. ; ; When running in a shared console environment, such as CEO, what ; special handling, if any, needs to occur for IPC messages? ; ; Possible answers to this question are ; SHCON_IPC_IGNORE No special handling ; SHCON_IPC_FLUSH Flush to make sure screen is up-to-date ; before processing the message ; SHCON_IPC_RESET Flush before processing the message, and ; reset console environment (characteristics, ; etc.) after a message is received ; SHCON_IPC_REDRAW Same as RESET plus redraw the screen after ; a message is received ; ; The SHCON_IPC_REDRAW answer is suggested in the CEO environment as ; described above. The IGNORE response should be used if your application ; runs in a shared console environment, and uses IPC messages, but not for ; the purpose of transferring control of the console between processes. ; Screen Demon rev 3.00.03 always used the RESET option. ; ; Answer the following question with one of the above responses: SHARED_CONSOLE_IPC_HANDLING? SHCON_IPC_RESET ;Default is same as rev 3.00.03 ;If IPC messages are not ignored in this situation (i.e., the above question ; was not answered with SHCON_IPC_IGNORE), then you may wish to specify the ; names of server processes that will not affect the console. IPC traffic ; to/from these processes can be ignored. ; ; Determine the full process names for each of the processes that are to ; be ignored. A full process name consists of a username, followed by a ; colon character, followed by the simple process name. The CLI WHO command ; shows this information. For example: ; ) WHO 15 ; PID: 15 CEO_MGR CEO_POA :UTIL:CEO_DIR:CEO_POA.PR ; ^ ^ ; | | ; username simple process name ; ; Declare that IPC messages to/from a process are to be ignored using ; the SHCON_IPC_IGNORE_IF_FROM command. For example, the following ; is suggested if your CEO environment is as described previously: ; ; SHCON_IPC_IGNORE_IF_FROM CEO_MGR:CEO_POA ; SHCON_IPC_IGNORE_IF_FROM CEO_MGR:CEO_FSA ; SHCON_IPC_IGNORE_IF_FROM CEO_MGR:CEO_CSA ; SHCON_IPC_IGNORE_IF_FROM CEO_MGR:CEO_QMA ; SHCON_IPC_IGNORE_IF_FROM CEO_MGR:CEO_NSA ; SHCON_IPC_IGNORE_IF_FROM CEO_MGR:CEO_LOG ; SHCON_IPC_IGNORE_IF_FROM CEO_MGR:CEO_OP ; SHCON_IPC_IGNORE_IF_FROM CEO_MGR:CEO_GPN_1 ; ; There may be any number of these commands, but only one pro cess name can ; be specified per command. You do not need to specify any of these commands ; if this situation does not apply to your system. ; ; Specify any processes whose IPC messages are to be ignored when running ; in a shared console environment: ;none by default ; Custom user configuration data can also be stored in this file. There ; is no limit to the amount or type of information that can be included. ; User programs can retrieve this data using the SD_GET_VALUE call. ; ; The general format of user-defined configuration options is as follows: ; ; label: ; .TXT "value" ; ; PUT_VALUE label ; ; ; where 'label' is an identifier for the data item, and 'value' is the ; actual data itself. ; ; 'label' must consist only of letters, digits, and the special characters ; underscore (_), question mark (?), period (.), and dollar sign ($). ; The first character cannot be a digit. The exact name of 'label' must ; be known to a user program in order to retrieve the 'value' using ; SD_GET_VALUE. ; ; 'value' can be any string of ASCII characters. Control characters can ; be included by enclosing their decimal value within <>. ; ; For examples, see the declarations of the SDCALCULATOR and SDCALENDAR ; title strings elsewhere in this configuration file. ; ; Include any custom configuration options here: ;The following must be the last statement in this file (except for the .END) END_CONFIGURATION .END .W$L$n$_vlSD_MVUX_POSSESS.PAT ;--------------------------------------------------------------------- ; SD_MVUX_POSSESS.PAT 24-SEP-92 ; ;This patch is necessary for complete "possession" of programs ; from Data General's MV/UX system, which emulates a UNIX ; environment under AOS/VS. These programs contain a direct ; call to AGENT for some system calls. This call must be ; modified to call the Screen Demon system call interceptor ; instead so that Screen Demon can see the call. ; Apply this patch to SD_POSSESS'd MV/UX programs. %USERFILE 20264 [WPSH 3,3] {LJMP #20006,0} ^+1 [LCALL 6000000000,0,0] [] ^+1 [] [] ^+1 [] [NOP] ^+1 [] [NOP] ;End of patch .W$G%Om$_@ՏSD_POSSESS_ICX_1.40.PAT @;The patches in this file activate the SCREEN DEMON routines. ; ;This file applies only to revision 1.40 of the Interactive COBOL ; interpreter running under AOS/VS, using revision 3.52 of SCREEN DEMON ; for Interactive COBOL. %PROGRAM ;Catch beginning of initialization routine so that SCREEN DEMON can be ; initialized also. INIT+2 [LLEF 2,SCRPK,0] [LJMP SD_ICX_INIT,1] ^+1 [] [] ^+1 [] [] ;This patch allows Screen Demon to know when ICX has an ACCEPT ; in progress, and if multiple console ?READ's are actually ; part of the same ACCEPT. RDFD [WSSVR 10] [LJMP SD_ICX_RDFD,1] ^+1 [] [] ^+1 [NLDAI -1,1] [] ^+1 [] [WADC 1,1] ;This patch causes the ICOBOL interpreter to return an ESCAPE KEY ; value of 99 if a console timeout occurs, instead of aborting ; with a "Runtime System Panic". RDFD+1354 [NLDAI 67,1] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [SUB# 0,1,SZR] [] #SD_PATCH 0 [WSNEI 76,0] ^+1 0 [] ^+1 0 [WBR .+5] ^+1 0 [WSNEI 67,0] ^+1 0 [] ^+1 0 [ISZTS] ^+1 0 [WPOPJ] ^+1 0 [WPOP 1,1] ^+1 0 [XNLDA 1,10,2] ^+1 0 [] ^+1 0 [XWADD 1,4,2] ^+1 0 [] ^+1 0 [WSUB 0,0] ^+1 0 [WSTB 1,0] ^+1 0 [NLDAI 99.,0] ^+1 0 [] ^+1 0 [LJMP RDFD+1100,1] ^+1 0 [] ^+1 0 [] SD_PATCH #SD_PATCH\ #SD_PATCH+23\ ^+1 [] [] ;Intercept EXIT PROGRAM so that if the exiting ICOBOL program was called via ; a "hot" key, control can be returned to the original ACCEPT. A.XIT+3 [LJMP COBOL,0] [LJMP SD_ICX_EXIT_PROGRAM,1] ^+1 [] [] ^+1 [] [] ;Divert STOP RUN processing so that it can be forced to act like an ; EXIT PROGRAM if it is encountered in a program that was called ; from a hot key. OAT+232 A.STP-.\ SD_ICX_STOP_RUN_HANDLER-.\ ^+1 [] [] ;Divert CALL PROGRAM processing so that it can be forced to act like an ; EXIT PROGRAM if it is encountered in a program that was called from ; a hot key. CHNOP+13 [XJSR WUSIN,1] [LJMP SD_ICX_CALL_PROGRAM_HANDLER,1] ^+1 [] [] ^+1 [WBR CHNOP+151] [] ;Catch ICOBOL program loads so that the name of the new active program ; can be obtained and put into the SCREEN DEMON control file. ASPRG+62 [XJSR WRPGD,1] [LJMP SD_ICX_ASPRG,1] ^+1 [] [] ^+1 [WBR ASPRG+136] [] LDPRG+7 [XJSR RDPGD,1] [LJMP SD_ICX_LDPRG,1] ^+1 [] [] ^+1 [WBR LDPRG+35] [] ;Catch ICX Abort so that SCREEN DEMON can reset the window environment ; if control will be returning to LOGON. ; Note that the 341 in next line is actually ICX's STATUS address CSTOP+2 [LDA 0,341,0] [LJMP SD_ICX_CSTOP,1] ^+1 [ANDI 2,0] [] ^+1 [] [] CPERR+14 [WBR CSTOP+11] [WBR CSTOP+2] CSTOP+24 [LJSR WAIT,1] [LJMP SD_ICX_CSTOP_WAIT,1] ^+1 [] [] ^+1 [] [] ;Catch entry into the ICX Debugger so that debugger window can be activated DB0 [LDASB 3] [LPSHJ SD_ICX_ENTER_DEBUGGER,1] ^+1 [STASP 3] [] ^+1 [STAFP 3] [] SBUGG [LDASB 3] [LPSHJ SD_ICX_ENTER_DEBUGGER,1] ^+1 [STASP 3] [] ^+1 [STAFP 3] [] EBUGG [LDASB 3] [LPSHJ SD_ICX_ENTER_DEBUGGER,1] ^+1 [STASP 3] [] ^+1 [STAFP 3] [] ;Catch exit from the ICX Debugger so that debugger window can be deactivated DB0+122 [LDASB 3] [LPSHJ SD_ICX_LEAVE_DEBUGGER,1] ^+1 [STASP 3] [] ^+1 [STAFP 3] [] ;Intercept ICX's attempt to input a debugger command so that this can be done ; in a proper screenedit fashion. SCAN0+343 [XJSR RDFD,1] [LJSR SD_ICX_READ_DEBUGGER_COMMAND,1] ^+1 [] [] ^+1 [WBR SCAN0+323] [] ICX_DEBUG_RESTART_ADDR 0 SCAN0+303\ ^+1 0 [] ;********** Optional Patches ********** ;This optional patch causes Screen Demon to catch ICX-generated error ; messages displayed on line 24 so that the original contents of ; the line can be restored after showing the error message. INVAL+14 [XJSR DSPER,1] [LJMP SD_ICX_ERROR_INVAL,1] ^+1 [] [] ^+1 [161411] [] DSPER+104 [XJSR PWRLN,1] [LJMP SD_ICX_ERROR_MPRE,1] ^+1 [] [] ^+1 [WRTN] [] DSPER+115 [XJSR WRLN,1] [LJMP SD_ICX_ERROR_MMSG,1] ^+1 [] [] ^+1 [WRTN] [] RDFD+1510 [XNLDA 0,2,2] {LJMP #SD_PATCH,1} ^+1 [] [] ^+1 [XNSTA 0,3,3] [] ^+1 [] [NOP] #SD_PATCH 0 [XNLDA 0,2,2] ^+1 0 [] ^+1 0 [XNSTA 0,3,3] ^+1 0 [] ^+1 0 [LJMP RDFD+1524,1] ^+1 0 [] ^+1 0 [] SD_PATCH #SD_PATCH\ #SD_PATCH+7\ ^+1 [] [] ;The following patch is not absolutely necessary, but will improve performance ; if COBOL calls to linked-in subroutines are used, such as the advanced ; features of SCREEN DEMON. It eliminates the unnecessary ?LEFE system ; call that is normally always performed on returning from a linked-in CALL ; routine. Note that if this patch is installed, any linked-in routine ; that issues a ?LEFD is responsible for issuing its own ?LEFE system call ; before returning to ICX. CALAS+116 [XJSR @16000000006,0] [WBR .+4] ^+1 [] [NOP] ^+1 265 [NOP] ^+1 [WBR CALAS+134] [NOP] ;***** The remaining patches fix bugs in the ICX interpreter ***** ; Note that these patches are not the same ones supplied by Data General. ; The DG patches must also be applied to the new ICX interpreter. ;Fix effective address problems (replace old 64K address space instructions) STBKA+21 [WADDI 2000,0] [WNADI 2000,0] ^+1 [] [] ^+1 [] [XNDSZ 2,3] ^+1 [DSZ 2,3] [] RDDD+5 [NLDAI 0,0] [WSUB 0,0] ^+1 [] [XNSTA 0,0,2] ^+1 [XNSTA 0,0,2] [] ^+1 [] [NLDAI 7,1] ^+1 [NLDAI 7,1] [] ^+1 [] [WBLM] ^+1 [WBLM] [LDAFP 3] ^+1 [LDAFP 3] [XWLDA 2,-4,3] ^+1 [XWLDA 2,-4,3] [] ^+1 [] [XLEF 3,2,3] ^+1 [LEF 3,2,3] [] GETSW+55 [BTO 2,1] [WBTO 2,1] RDSEC+400 [LDA 2,4,3] [XNLDA 2,4,3] ^+1 [ADD 1,2] [] ^+1 [NLDAI 0,1] [ADD 1,2] ^+1 [] [WSUB 1,1] CHNOP+76 [BTZ 2,1] [WBTZ 2,1] CHNOP+102 [BTO 2,1] [WBTO 2,1] ;Shutdown guard task is supposed to give the rest of the interpreter time ; to shut down by itself. However, parameters in AC0 and AC1 to its ; ?WDELAY system call are reversed, so it doesn't wait at all before ; doing an emergency shutdown and possibly corrupting open ISAM files. INITC+101 [NLDAI 0,0] [NLDAI 11610,0] ^+1 [] [] ^+1 [NLDAI 11610,1] [NLDAI 0,1] ^+1 [] [] ;CPLOG routine jumps into the middle of CHNOP routine, but stack frame size ; of CPLOG is zero, leaving CHNOP frame data vulnerable to subsequent ; subroutine calls. CPLOG+1 0 @(CHNOP+1) ;End of patches .W$Rbz$n$_ESD_PRISWI_DEFINES.SR ; SD_PRISWI_DEFINES Screen Demon rev 3.52.01 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; ;;; Copyright (C) 1988 - 1993, ;;; ;;; Threshold, Inc. ;;; ;;; Auburn, Alabama U.S.A. ;;; ;;; All rights reserved. ;;; ;;; ;;; ;;; SCREEN DEMON and its associated hot-key routines ;;; ;;; are proprietary property of Threshold, Inc. ;;; ;;; Except as provided for by the License Agreement; these ;;; ;;; shall not be copied, used, or disclosed for any purpose or ;;; ;;; reason in whole or in part, without the express written ;;; ;;; consent of: ;;; ;;; ;;; ;;; Threshold, Inc. ;;; ;;; 118 North Ross Street ;;; ;;; Auburn, Alabama 36830 ;;; ;;; ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; .ESC "~ ;Change MASM's macro escape character to tilde ;Define symbols to use for referencing macro arguments beyond the ninth one ; in .TXT building macros. Note that in these symbol names, only a single ; character can follow the "?" in order to expand with "^?x" ?a = 10. ?b = 11. ?c = 12. ?d = 13. ?e = 14. ?f = 15. ?g = 16. ?h = 17. ?i = 18. ?j = 19. ?k = 20. ?l = 21. ?m = 22. ?n = 23. ?o = 24. ?p = 25. ?q = 26. ?r = 27. ?s = 28. ?t = 29. ?u = 30. ?v = 31. ?w = 32. ?x = 33. ?y = 34. ?z = 35. .MACRO BEGIN_DEFINITIONS .TITLE SD_PRISWI_CONFIG .PART SD_PRISWI_USER_SPECS_PART UNSHARED,DATA,LOCAL ?USERS = . .PART SD_PRISWI_CATCH_LIST_PART UNSHARED,DATA,LOCAL .DWORD ?USERS ;Put addr of user printer spec list ; just before list of caught names so ; that rev 3.00.04 programs can find ; it, but still allowing backward ; compatibility with rev 3.00.03 programs ?CATCH = . .PART SD_PRISWI_PRINTER_SPECS_PART UNSHARED,SHORT,DATA,LOCAL .DWORD ?CATCH ;Start file with addr of list of ptrs to names ; of files whose ?OPENs are to be caught ?PNUM = 0 ?CATCH_DEF = 0 % .MACRO CATCH .IFG .ARGCT ?I = 0 .DO .ARGCT ?I = ?I+1 .PART SD_PRISWI_CATCH_NAMES_PART UNSHARED,DATA,LOCAL ?CATCH = . .TXT "@^?I" .PART SD_PRISWI_CATCH_LIST_PART UNSHARED,DATA,LOCAL .DWORD ?CATCH*2 .ENDC ?CATCH_DEF = 1 .ENDC % .MACRO PRINTER .IFN ?PNUM DEFINE_PRINTER \?PNUM .ENDC .IFG .ARGCT ?PNUM = ?PNUM+1 ?NUM_^1 = ?PNUM ?DEV_DEF = 0 ?DESC_DEF = 0 .MACRO ^1 .DWORD ?PRT_\?NUM_^1 ~% .ENDC % .MACRO DEFINE_PRINTER .IFN ?DEV_DEF ?DEV_DEF = 0 .IFE ?DESC_DEF ?DESC = ?DEV .ENDC .PART PRINTER_DEFS_PART UNSHARED,LOCAL,DATA ?PRT_^1 = . .DWORD ?DEV*2 .DWORD ?DESC*2 .ENDC % .MACRO DEVICE .IFG .ARGCT .PART PRINTER_NAMES_PART UNSHARED,DATA,LOCAL ?DEV = . ?DEV_DEF = 1 .TXT "@^1" .ENDC % .MACRO QUEUE .IFG .ARGCT DEVICE ^1 .ENDC % .MACRO PATHNAME .IFG .ARGCT .PART PRINTER_NAMES_PART UNSHARED,DATA,LOCAL ?DEV = . ?DEV_DEF = 1 .TXT "^1" .ENDC % .MACRO INPUT ?DEV = 0 ?DEV_DEF = 1 % .MACRO PASSTHRU ?DEV = -1 ?DEV_DEF = 1 % .MACRO DESCRIPTION .IFG .ARGCT .PART PRINTER_NAMES_PART UNSHARED,DATA,LOCAL ?DESC = . ?DESC_DEF = 1 .IFN (.ARGCT==1) .TXT "^1" .ELSE .IFN (.ARGCT==2.) .TXT "^1 ^2" .ELSE .IFN (.ARGCT==3.) .TXT "^1 ^2 ^3" .ELSE .IFN (.ARGCT==4.) .TXT "^1 ^2 ^3 ^4" .ELSE .IFN (.ARGCT==5.) .TXT "^1 ^2 ^3 ^4 ^5" .ELSE .IFN (.ARGCT==6.) .TXT "^1 ^2 ^3 ^4 ^5 ^6" .ELSE .IFN (.ARGCT==7.) .TXT "^1 ^2 ^3 ^4 ^5 ^6 ^7" .ELSE .IFN (.ARGCT==8.) .TXT "^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8" .ELSE .IFN (.ARGCT==9.) .TXT "^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9" .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC % .MACRO CONSOLES .IFN ?PNUM DEFINE_PRINTER \?PNUM .ENDC .IFN .MCALL .PART SD_PRISWI_PRINTER_SPECS_PART UNSHARED,DATA,LOCAL .DWORD 0 .ENDC .IFG .ARGCT .PART SD_PRISWI_CONNAMES_PART UNSHARED,DATA,LOCAL ?LOCON = . .TXT "^1" .IFE (.ARGCT-1) ?HICON = ?LOCON .ELSE ?HICON = . .TXT "^2" .ENDC .PART SD_PRISWI_PRINTER_SPECS_PART UNSHARED,DATA,LOCAL .DWORD ?LOCON*2 .DWORD ?HICON*2 .ENDC % .MACRO USERS .IFN ?PNUM DEFINE_PRINTER \?PNUM .ENDC .IFN .MCALL .PART SD_PRISWI_PRINTER_SPECS_PART UNSHARED,DATA,LOCAL .DWORD 0 .ENDC .IFG .ARGCT .PART SD_PRISWI_USERNAMES_PART UNSHARED,DATA,LOCAL ?USERS = . .IFN (.ARGCT==1) .TXT "^1" .ELSE .IFN (.ARGCT==2.) .TXT "^1 ^2" .ELSE .IFN (.ARGCT==3.) .TXT "^1 ^2 ^3" .ELSE .IFN (.ARGCT==4.) .TXT "^1 ^2 ^3 ^4" .ELSE .IFN (.ARGCT==5.) .TXT "^1 ^2 ^3 ^4 ^5" .ELSE .IFN (.ARGCT==6.) .TXT "^1 ^2 ^3 ^4 ^5 ^6" .ELSE .IFN (.ARGCT==7.) .TXT "^1 ^2 ^3 ^4 ^5 ^6 ^7" .ELSE .IFN (.ARGCT==8.) .TXT "^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8" .ELSE .IFN (.ARGCT==9.) .TXT "^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9" .ELSE .IFN (.ARGCT==10.) .TXT "^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9 ^?a" .ELSE .IFN (.ARGCT==11.) .TXT "^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9 ^?a ^?b" .ELSE .IFN (.ARGCT==12.) .TXT "^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9 ^?a ^?b ^?c" .ELSE .IFN (.ARGCT==13.) .TXT "^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9 ^?a ^?b ^?c ^?d" .ELSE .IFN (.ARGCT==14.) .TXT "^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9 ^?a ^?b ^?c ^?d ^?e" .ELSE .IFN (.ARGCT==15.) .TXT "^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9 ^?a ^?b ^?c ^?d ^?e ^?f" .ELSE .IFN (.ARGCT==16.) .TXT "^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9 ^?a ^?b ^?c ^?d ^?e ^?f ^?g" .ELSE .IFN (.ARGCT==17.) .TXT "^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9 ^?a ^?b ^?c ^?d ^?e ^?f ^?g ^?h" .ELSE .IFN (.ARGCT==18.) .TXT "^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9 ^?a ^?b ^?c ^?d ^?e ^?f ^?g ^?h ^?i" .ELSE .IFN (.ARGCT==19.) .TXT "^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9 ^?a ^?b ^?c ^?d ^?e ^?f ^?g ^?h ^?i ^?j" .ELSE .IFN (.ARGCT==20.) .TXT "^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9 ^?a ^?b ^?c ^?d ^?e ^?f ^?g ^?h ^?i ^?j ^?k" .ELSE .IFN (.ARGCT==21.) .TXT "^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9 ^?a ^?b ^?c ^?d ^?e ^?f ^?g ^?h ^?i ^?j ^?k ^?l" .ELSE .IFN (.ARGCT==22.) .TXT "^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9 ^?a ^?b ^?c ^?d ^?e ^?f ^?g ^?h ^?i ^?j ^?k ^?l ^?m" .ELSE .IFN (.ARGCT==23.) .TXT "^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9 ^?a ^?b ^?c ^?d ^?e ^?f ^?g ^?h ^?i ^?j ^?k ^?l ^?m ^?n" .ELSE .IFN (.ARGCT==24.) .TXT "^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9 ^?a ^?b ^?c ^?d ^?e ^?f ^?g ^?h ^?i ^?j ^?k ^?l ^?m ^?n ^?o" .ELSE .TXT "^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9 ^?a ^?b ^?c ^?d ^?e ^?f ^?g ^?h ^?i ^?j ^?k ^?l ^?m ^?n ^?o ^?p" .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .PART SD_PRISWI_USER_SPECS_PART UNSHARED,DATA,LOCAL .DWORD ?USERS*2 .ENDC % .MACRO END_DEFINITIONS .PART SD_PRISWI_PRINTER_SPECS_PART UNSHARED,DATA,LOCAL .DWORD 0 .DWORD 0 .PART SD_PRISWI_USER_SPECS_PART UNSHARED,DATA,LOCAL .DWORD 0 .DWORD 0 .IFE ?CATCH_DEF ;Catch "@LPT" if no CATCH's were specified .PART SD_PRISWI_CATCH_NAMES_PART UNSHARED,DATA,LOCAL ?CATCH = . .TXT "@LPT" .PART SD_PRISWI_CATCH_LIST_PART UNSHARED,DATA,LOCAL .DWORD ?CATCH*2 .ENDC .PART SD_PRISWI_CATCH_LIST_PART UNSHARED,DATA,LOCAL .DWORD 0 .END % .END .W$Rb$n$_SD_TERMCAPS.SR ; SCREEN DEMON Terminal Capabilities Definition file ; ; Screen Demon rev 3.52.01 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; ;;; Copyright (C) 1989 - 1993, ;;; ;;; Threshold, Inc. ;;; ;;; Auburn, Alabama U.S.A. ;;; ;;; All rights reserved. ;;; ;;; ;;; ;;; SCREEN DEMON and its associated hot-key routines ;;; ;;; are proprietary property of Threshold, Inc. ;;; ;;; Except as provided for by the License Agreement; these ;;; ;;; shall not be copied, used, or disclosed for any purpose or ;;; ;;; reason in whole or in part, without the express written ;;; ;;; consent of: ;;; ;;; ;;; ;;; Threshold, Inc. ;;; ;;; 118 North Ross Street ;;; ;;; Auburn, Alabama 36830 ;;; ;;; ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Keywords for the various terminal capabilities that can be specified ; ALTERNATE_CHARACTER_SETS ; CHARACTER_INSERT_AND_DELETE ; COMPRESS_MODE ; LINE_INSERT_AND_DELETE ; MARGINS ; REVERSE_VIDEO ; SCROLL_LEFT_AND_RIGHT ; SCROLL_UP_AND_DOWN ; UNDERLINE ; WINDOWS ; ; EVERYTHING ; ALL ; NOTHING ; NONE BEGIN_TERMCAPS ;DEFAULT definition must occur before first TERMINAL definition DEFAULT DOES UNDERLINE DOES REVERSE_VIDEO TERMINAL DG6053 MODELID NONE DOES UNDERLINE TERMINAL D100 MODELID "! DOES UNDERLINE,REVERSE_VIDEO TERMINAL D200 MODELID "! DOES UNDERLINE,REVERSE_VIDEO TERMINAL D210 MODELID "( DOES UNDERLINE,REVERSE_VIDEO TERMINAL D211 MODELID "( DOES UNDERLINE,REVERSE_VIDEO TERMINAL D214 MODELID "1 DOES UNDERLINE,REVERSE_VIDEO TERMINAL D215 MODELID "1 DOES UNDERLINE,REVERSE_VIDEO TERMINAL D216 MODELID "e DOES UNDERLINE,REVERSE_VIDEO DOES ALTERNATE_CHARACTER_SETS TERMINAL D216E MODELID "e DOES UNDERLINE,REVERSE_VIDEO DOES ALTERNATE_CHARACTER_SETS TERMINAL D216_PLUS MODELID "3 DOES UNDERLINE,REVERSE_VIDEO DOES ALTERNATE_CHARACTER_SETS TERMINAL D217 MODELID "5 DOES UNDERLINE,REVERSE_VIDEO DOES ALTERNATE_CHARACTER_SETS TERMINAL D220 MODELID "+ DOES UNDERLINE,REVERSE_VIDEO DOES ALTERNATE_CHARACTER_SETS DOES SCROLL_UP_AND_DOWN DOES CHARACTER_INSERT_AND_DELETE TERMINAL D230 MODELID "+ DOES UNDERLINE,REVERSE_VIDEO DOES ALTERNATE_CHARACTER_SETS DOES SCROLL_UP_AND_DOWN DOES CHARACTER_INSERT_AND_DELETE TERMINAL D400 MODELID "' DOES EVERYTHING TERMINAL D410 MODELID "* DOES EVERYTHING TERMINAL D411 MODELID "0 DOES EVERYTHING TERMINAL D412 MODELID "f DOES EVERYTHING TERMINAL D412E MODELID "h DOES EVERYTHING TERMINAL D412E_PLUS MODELID "4 DOES EVERYTHING TERMINAL D412_PLUS MODELID "4 DOES EVERYTHING TERMINAL D413 MODELID "6 DOES EVERYTHING TERMINAL D450 MODELID "' DOES EVERYTHING TERMINAL D460 MODELID "* DOES EVERYTHING TERMINAL D461 MODELID "0 DOES EVERYTHING TERMINAL D462 MODELID "f DOES EVERYTHING TERMINAL D462E MODELID "h DOES EVERYTHING TERMINAL D462E_PLUS MODELID "4 DOES EVERYTHING TERMINAL D462_PLUS MODELID "4 DOES EVERYTHING TERMINAL D463 MODELID "6 DOES EVERYTHING TERMINAL D470C MODELID 54 DOES EVERYTHING EXCEPT COMPRESS_MODE TERMINAL PC_WITH_CGA_EMULATING_D400 MODELID "' DOES EVERYTHING EXCEPT UNDERLINE, COMPRESS_MODE TERMINAL W460_CGA MODELID "A DOES EVERYTHING EXCEPT UNDERLINE, COMPRESS_MODE END_TERMCAPS .W$f$n$f4SD_VM_DEFINES.SR  .TITLE SCREEN_DEMON.VM ; Definitions for building SCREEN_DEMON_3.00.VM file ; ; Screen Demon rev 3.52.01 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; ;;; Copyright (C) 1988 - 1993, ;;; ;;; Threshold, Inc. ;;; ;;; Auburn, Alabama U.S.A. ;;; ;;; All rights reserved. ;;; ;;; ;;; ;;; SCREEN DEMON and its associated hot-key routines ;;; ;;; are proprietary property of Threshold, Inc. ;;; ;;; Except as provided for by the License Agreement; these ;;; ;;; shall not be copied, used, or disclosed for any purpose or ;;; ;;; reason in whole or in part, without the express written ;;; ;;; consent of: ;;; ;;; ;;; ;;; Threshold, Inc. ;;; ;;; 118 North Ross Street ;;; ;;; Auburn, Alabama 36830 ;;; ;;; ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; .NOLOC 1 ;List 'real' lines only .ESC "| ;Set MASM's escape char to vertical bar .RDX 10. ;Set decimal mode ;Use a partition definition that is the same as normal UD except ; that overwrite messages are suppressed. This will allow the ; same console to be touched by more than one model id declaration. .PART DATA_PART ALIGN=0,DATA,LONG,UNSHARED,NORM,GLOBAL,NOMESS .TXTN 1 ;Do not follow even-length strings with null word ;These definitions must match those in SD_DEFINES: .DUSR VMREC.SIZE = 5*1024. ;Size of VM file record in words .DUSR VMHDR.SIZE = VMREC.SIZE ;Size of VM file hdr record in words .DUSR VMREC.BLKS = VMREC.SIZE/256. ;# of blocks in VM file record .DUSR VMHDR.BLKS = VMHDR.SIZE/256. ;# of blocks in VM file hdr record .DUSR VMCON.MODELID = 4355. ;offset to Model Id field in console record .DUSR VMCON.TERMCAPS = 4357. ;offset to Termcaps field in console record .DUSR VMCON.FLAGS = 4361. ;offset to Flags field in console record ;Definitions of the various terminal capabilities .DUSR UNDERLINE = 1B15 .DUSR REVERSE_VIDEO = 1B14 .DUSR ALTERNATE_CHARACTER_SETS = 1B13 .DUSR COMPRESS_MODE = 1B12 .DUSR WINDOWS = 1B11 .DUSR SCROLL_UP_AND_DOWN = 1B10 .DUSR SCROLL_LEFT_AND_RIGHT = 1B9 .DUSR MARGINS = 1B8 .DUSR CHARACTER_INSERT_AND_DELETE = 1B7 .DUSR LINE_INSERT_AND_DELETE = 1B6 .DUSR EVERYTHING = -1 .DUSR ALL = -1 .DUSR NOTHING = 0 .DUSR NONE = 0 ;NONE is also intended to be used as MODEL_ID for terminals ; such as 6053's that don't respond to a model id request .MACRO BEGIN_TERMCAPS ?TDEF = 0 ?TCAP = 0 ?TCAP.NONE = 0 .PART DATA_PART ALIGN=0,DATA,LONG,UNSHARED,NORM,GLOBAL,NOMESS ;First two words of VM file header past console bitmap ; is block offset to first PID record .DWORD ?PIDBLKOFS ;Next part of header is termcaps table. First word of table is ; capabilities of terminal that doesn't return a model id. ; Rest of table is one-word slots for model id's SPACE thru ~ VMHDR.TERMCAPS_TBL: .BLK (1+127-32) % .MACRO DEFAULT % .MACRO TERMINAL .IFG .ARGCT .IFE ?TDEF ;Initialize "termcaps by model id" table entries ??M = 32 .DO (127-32) ?TCAPM.\??M = ?TCAP ??M = ??M+1 .ENDC .ELSE ?DEFINE_TERMINAL .ENDC ?TDEF = ?TDEF+1 ?TCAP = 0 ^1.TDEF = ?TDEF ?TCAPD.\?TDEF = 0 ?TMOD.\?TDEF = 0 .MACRO ^1 .IFG (.ARGCT-2) ASSIGN_TERMINALS ?TCAPD.\^1.TDEF,?TMOD.\^1.TDEF,|^1,|^2,|^3 .ELSE .IFG (.ARGCT-1) ASSIGN_TERMINALS ?TCAPD.\^1.TDEF,?TMOD.\^1.TDEF,|^1,|^2 .ELSE ASSIGN_TERMINALS ?TCAPD.\^1.TDEF,?TMOD.\^1.TDEF,|^1 .ENDC .ENDC |% .ENDC % .MACRO MODELID ?TMOD = 31 ;Default to value that gets slot in front of table .IFG .ARGCT .IFG (^1-31) .IFG (127-^1) ?TMOD = ^1 .ENDC .ENDC .ENDC % .MACRO DOES ?I = 1 .DO .ARGCT ;For each capability supplied... ?TCAP = ?TCAP!(^?I) ;...turn it on ?I = ?I+1 .ENDC % .MACRO EXCEPT ?I = 1 .DO .ARGCT ;For each capability supplied... ?TCAP = ?TCAP&(~(^?I)) ;...turn it off ?I = ?I+1 .ENDC % .MACRO ?DEFINE_TERMINAL .IFE ?TMOD ?TCAP.NONE = ?TCAP .ELSE ?TCAPM.\?TMOD = ?TCAP ?TCAPD.\?TDEF = ?TCAP .ENDC ?TMOD.\?TDEF = ?TMOD % .MACRO END_TERMCAPS .IFG ?TDEF ?DEFINE_TERMINAL .ENDC .LOC VMHDR.TERMCAPS_TBL .WORD ?TCAP.NONE ;First slot in table is slot for ; terminals whose model id is NONE ??M = 32 .DO (127-32) .IFE ?TDEF .WORD ?TCAP .ELSE .WORD ?TCAPM.\??M .ENDC ??M = ??M+1 .ENDC % .MACRO BEGIN_CON_TYPES ;Create a work area to be used to determine lengths of strings. ; CODE attribute necessary to force this area past real UD partition, ; NOMESS attribute needed since it will be overwritten repeatedly. .PART WORK_PART ALIGN=0,CODE,LONG,UNSHARED,NORM,GLOBAL,NOMESS WORK_AREA: .PART DATA_PART ALIGN=0,DATA,LONG,UNSHARED,NORM,GLOBAL,NOMESS % ;Usage: ; CON_TYPE deviceName,lowUnit,highUnit ; .MACRO CON_TYPE .IFE .MCALL ?BASE_CON_NUM = 0 ?PIDBLKOFS = VMHDR.BLKS .ENDC .IFG .ARGCT .IFL (.ARGCT-2) ?LO_UNIT = 0 .ELSE ?LO_UNIT = ^2 .ENDC .IFL (.ARGCT-3) ?HI_UNIT = ?LO_UNIT .ELSE ?HI_UNIT = ^3 .ENDC .WORD ^1.LEN ;length of device name in bytes, ; possibly including a terminating null .WORD ?LO_UNIT ;lowest unit # .WORD ?HI_UNIT-?LO_UNIT+1 ;max # of this type .TXT "^1" ;name of console type .DUSR ^1.LO = ?LO_UNIT .DUSR ^1.HI = ?HI_UNIT .DUSR ^1.BASE = ?BASE_CON_NUM ;Determine the length of the device name .PART WORK_PART ALIGN=0,CODE,LONG,UNSHARED,NORM,GLOBAL,NOMESS .LOC WORK_AREA .TXT "^1" ?WORK_END_A = . .LOC WORK_AREA .TXT "^1B" ?WORK_END_B = . .IFE (?WORK_END_A-?WORK_END_B) .DUSR ^1.LEN = (?WORK_END_A-WORK_AREA)*2-1 .ELSE .DUSR ^1.LEN = (?WORK_END_A-WORK_AREA)*2 .ENDC .PART DATA_PART ALIGN=0,DATA,LONG,UNSHARED,NORM,GLOBAL,NOMESS ?BASE_CON_NUM = ?BASE_CON_NUM+(?HI_UNIT-?LO_UNIT+1) ?PIDBLKOFS = ?PIDBLKOFS+((?HI_UNIT-?LO_UNIT+1)*VMREC.BLKS) .ENDC % .MACRO END_CON_TYPES .WORD 0 ;terminate con types table with zero size % .MACRO BEGIN_TERMINAL_ASSIGNMENTS % .MACRO END_TERMINAL_ASSIGNMENTS % ;Usage: ; ASSIGN_TERMINALS termcaps,modelid,contypename,lowunit,highunit ; .MACRO ASSIGN_TERMINALS .IFG (.ARGCT-2) .IFL (.ARGCT-4) ?LO_UNIT = ^3.LO ?HI_UNIT = ^3.HI .ELSE ?LO_UNIT = ^4 .IFL (.ARGCT-5) ?HI_UNIT = ?LO_UNIT .ELSE ?HI_UNIT = ^5 .ENDC .ENDC ?SDCONNUM = ^3.BASE+?LO_UNIT .DO (?HI_UNIT-?LO_UNIT+1) .LOC ?SDCONNUM*VMREC.SIZE+VMHDR.SIZE+VMCON.MODELID .DWORD (^2)S7 .LOC ?SDCONNUM*VMREC.SIZE+VMHDR.SIZE+VMCON.TERMCAPS .WORD ^1 .LOC ?SDCONNUM*VMREC.SIZE+VMHDR.SIZE+VMCON.FLAGS .WORD 1B13 ?SDCONNUM = ?SDCONNUM+1 .ENDC .ENDC % .EOF .W$f$n$fSCREEN_DEMON.CONTYPES ;Definitions for parameters maintained in SCREEN_DEMON_3.00.VM file, ; including console types and terminal model assignments. ; ; Screen Demon rev 3.52.01 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; ;;; Copyright (C) 1988 - 1993, ;;; ;;; Threshold, Inc. ;;; ;;; Auburn, Alabama U.S.A. ;;; ;;; All rights reserved. ;;; ;;; ;;; ;;; SCREEN DEMON and its associated hot-key routines ;;; ;;; are proprietary property of Threshold, Inc. ;;; ;;; Except as provided for by the License Agreement; these ;;; ;;; shall not be copied, used, or disclosed for any purpose or ;;; ;;; reason in whole or in part, without the express written ;;; ;;; consent of: ;;; ;;; ;;; ;;; Threshold, Inc. ;;; ;;; 118 North Ross Street ;;; ;;; Auburn, Alabama 36830 ;;; ;;; ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;--------------- SCREEN DEMON Console Type Definitions --------------- ; ; Specify the console type names of all terminals that will be ; running Screen Demon, followed by the lowest and highest ; unit number in use for each type of console. The console ; types CON, BATCH, and NOCON should always be included. ; ; The value for the BATCH type is the number of simultaneous ; BATCH_INPUT streams that will be used. Batch streams with names ; other than BATCH_INPUT can also be listed, but specify only the ; first word of the batch stream name. ; ; The value for the NOCON type is the maximum number of processes ; that will be running without a console simultaneously, not ; including batch processes that have their own type. ; ; ; For example: ; ; BEGIN_CON_TYPES ; CON_TYPE CON 2 17 ; CON_TYPE VCON 0 4 ; CON_TYPE BATCH 1 2 ; CON_TYPE NOCON 0 8 ; END_CON_TYPES ; ; indicates: ; terminals CON2 through CON17 exist, ; virtual terminals VCON0 through VCON4 exist, ; there will be at most two Batch streams running, ; and there will never be more than 8 nonbatch processes ; running without a console at the same time. ; ;----------------------------------------------------------------------- BEGIN_CON_TYPES ;Specify your actual console configuration here: CON_TYPE CON 0 512 CON_TYPE BATCH 1 4 CON_TYPE NOCON 0 32 END_CON_TYPES ;------------- SCREEN DEMON Console Model Id Definitions ------------- ; ; Optionally, the model ids of terminals on specific console ; lines can be declared, assuming that a given terminal is ; always connected to the same console line. Declaring the ; terminal model ids here will eliminate the need for SCREEN ; DEMON to determine the terminal's model id at runtime. ; ; This is also useful when terminal emulators running on PC's ; are being used. Although the emulator may respond to a ; Read Model Id request as if it was a D400, it may actually ; lack certain capabilities, such as underlining. Since ; SCREEN DEMON will be unable to know this based on the ; returned model id, an entry for the emulator's console line ; can be included in the table below to describe its true ; capabilities. ; ; Each entry in the TERMINAL_ASSIGNMENTS table below specifies ; a terminal model name from the SD_TERMCAPS.SR file. This file ; lists all known Data General terminal models, along with the ; capabilities of each, and should be updated if necessary when ; new DG terminals are installed. Special entries for terminal ; emulators can also be added to the SD_TERMCAPS.SR file. ; ; Following the terminal model name in the table entry, a console ; type name and range of unit numbers are given, which indicates ; that all terminals attached to that range of console lines are ; the specified model. There may be more than one line specifying ; the same terminal model. If only one unit number is specified ; for a console type, then it is assumed that only that single ; console line is being described. If no unit numbers are ; specified, but just a console type, then all units for that ; type are set to the given terminal model. If a particular ; console line is declared more than once, such as when it is ; part of a range on one line and then is specified individually ; on another, the last declaration is used. ; ; For example: ; ; BEGIN_TERMINAL_ASSIGNMENTS ; D210 CON 9 ; D410 CON 13 15 ; D210 VCON ; PC_WITH_CGA_EMULATING_D400 CON 6 ; END_TERMINAL_ASSIGNMENTS ; ; specifies that CON9 is a D210 terminal, CON13, CON14, ; and CON15 are all D410 terminals, every VCON is to be ; considered a D210, and CON6 is a PC emulator that can't ; do underlining. All other console lines will have their ; terminal model ids determined at runtime. ; ;----------------------------------------------------------------------- BEGIN_TERMINAL_ASSIGNMENTS ;Specify any terminal model id assignments here: END_TERMINAL_ASSIGNMENTS ;----------------------------------------------------------------------- ; ;End of SCREEN_DEMON.CONTYPES .END .W$Rb$n$` @SDWINDOWFLAGS.WS *** SDWINDOWFLAGS.WS Screen Demon rev 3.52.01 *** Copyright (C) 1993, Threshold, Inc., All Rights Reserved *** -------------------------------------------------------- ** Structure of the flags word in a Screen Demon window ** descriptor. A window descriptor can be examined using ** the SD_GET_WINDOW_DESCRIPTOR call. ** This copy file is intended to be used to examine the bits ** in the flags word via the SD_BITS_TO_DIGITS call. 01 SD-WINDOW-FLAGS-BITS-GROUP. 05 SD-WIND-FLAGS-RESERVED-BITS PIC X(12). 05 SD-WIND-FLAGS-D400-MODE-BIT PIC X. 05 SD-WIND-FLAGS-WRAPPED-BIT PIC X. 05 SD-WIND-FLAGS-FLOAT-BIT PIC X. 05 SD-WIND-FLAGS-ALLOC-VIB-BIT PIC X. ********************************************************************* * SD-WIND-FLAGS-RESERVED-BITS Undefined * SD-WIND-FLAGS-D400-MODE-BIT Views for this window represent * D400-style hardware windows * rather than Screen Demon views. * SD-WIND-FLAGS-WRAPPED-BIT The last display into this window * image ended by wrapping to the * beginning of the next line. * SD-WIND-FLAGS-FLOAT-BIT This is a floating window. * SD-WIND-FLAGS-ALLOC-VIB-BIT The image buffer for this window * was allocated by Screen Demon, * rather than supplied on the * SD_NEW_WINDOW call that created it. *** End of SDWINDOWFLAGS.WS *** .@$aW$n$bЈSDCALENDAR.DD 00000000000000000000000000SDCALENDAR SD_CAL_L SD_CAL_C SD_CAL_W SD_CAL_D 02N0000 (SDCALENDAR_TITLE   Calendar Help|  021355010{ JanFebMarAprMayJunJulAugSepOctNovDecJanuary February March April May June July August SeptemberOctober November December S M T W T F S 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31:DEInvalid date. SD_ALT_EXIT_KEY   #,          = :       e l t }      C1 for helpArrow keys: move day pointerShifted Arrow keys: move calendarHome: return to current date C2: previous month C4: next month C3: enter month ESC: exitany key to continue Month:  Year:      VYZ#######SD_SET_SECONDARY_PROGRAM_NAMESD_TURBO_FULL1902SD_GET_VALUE4SD_PUT_VALUESD_TURBO_RESETSD_ACTIVE_WINDOWSD_TOP_WINDOWSD_READ_CHAR 18753100N400101377 SCREEN DEMON Calendar |24|SD_CREATE_WINDOW9SD_REMOVE_WINDOWSD_SUSPEND_WINDOW12SD_ERROR_MESSAGESD_MOVE_WINDOW_LEFTSD_MOVE_WINDOW_RIGHTSD_MOVE_WINDOW_UPSD_MOVE_WINDOW_DOWN31302928 .J $l$n$lXc.SD_SET_CONSOLE_MODEL_ID.PR 4$>pnTp-0&0&0&00pl\02000>02000> @pp&pfppf,/))x)4)5)6Y) @a\p@4P *b Fatal Screen Demon error at PC = 00000000000 0` p$2p p  ))  1pfl p2 MailMRemote View Remote Input  G@LPT@LPTPREFIX,SCREEN,DEMON,CLI[!ASC 251]:CLI:UDD::NOTEPADLJANUARY|FEBRUARY|MARCH|APRIL|MAY|JUNE|JULY|AUGUST|SEPTEMBER|OCTOBER|NOVEMBER|DECEMBER|SUNDAY|MONDAY|TUESDAY|WEDNESDAY|THURSDAY|FRIDAY|SATURDAY|SDCALCULATOR_TITLE_ONEpmSDCALCULATOR_TITLE_TWOp4pm SCREEN DEMON Calendar SDCALENDAR_TITLEpDpn SCREEN DEMON Read Mail SCREEN DEMON Send Mail SCREEN DEMON Turbo Control ))SD_ALT_EXIT_KEYp^pn[SD_HOT_TIMEOUT_INTERVALppn&0010110>01021320p` xUnable to find directory called :SCREEN_DEMON_3.52:SCREEN_DEMON_3.00.VM+>?>CONBATCHNOCON@VCON@WCON@PCCON :MEM:?SD_VM. + @OUTPUT@INPUT<@o  ,!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~!ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~ hjsttterhkklodjGhipq>hp3qqqp_pts@sssqqs2s;sppmphp,@INPUTo?   !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !!##%%''))++--//1133557799;;==??AACCEEGGIIKKMMOOQQSSUUWWYY[[]]__aacceeggiikkmmooqqssuuwwyy{{}}  SCREEN DEMON: Copyright (C) 1988-1993, Threshold, Inc., Auburn, Alabama. All Rights Reserved.p p@OUTPUT  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~9BXU@177Kd|@e;2?~BVY*yp&)Pm+!/"!$x26A0~XTlZXӝŠ͜Å訠Ԡ젬ɮ㠠҇.3250.161A-GU9-3Π򠠠ƠĠϬ㍐ɠΠҠ卐̳Ş宮G=?b[n7:H)/4eKa'Lxvd;| &Er+@A~Jyĵ"p.m% ! ݪ8Y6$Бl c9u0q-SȩF`ឧ̝jCUBQN 3(,}#XVD51w\ziotR ^g]*ٶ_{PWIfOԅkP  ++++-||-+|--||-:++++-||-+|--/cTRCG ++++-||-+|--||-:++++-||-+|--/cTRCG  @INPUTqrstuvwxabcdefgh12345678!"#$%&'(yz{|}~pijklmn`9:;<=>0)*+,-. \]^_ `@     Press any key to continue... :CONLOGSD_+ %'))&(%%)))&)&)')')))))(()))))))))))'&'&)&'))%%((%))())5799685599969697979999988999999999997676967995588599899  *p  (@Y 0 ||  SCREEN DEMON Menu to select SCREEN DEMON Notepad SCREEN DEMON Screen Print SCREEN DEMON Calculator) )9IY99&yǃx) UNLOCK )9IY9yǀ K )99)9Yyx։NONEXйY8x ~xhxY9)pInvalid model id specifiedi) Y) )္II)) YYY,癇) 9YY֣ 09)P99$) 9Y9999   I9) yxـ [9)TΉ)` ) 9E8<o868#0Ḅ ~Ў&Ŏ 8κ)98 xYΌY~8) )XXɇ)9$YY9e‚xI9xC)@f)@l)@x@))@@))&"@)Ɖ(@Y )‡y0ix8DsY)xȁx00)Ձp8I CYYbYIYNY'BJ)IxB)7 W=&&)@)   Yyp@xw)  YyX@x_)  zh9Yy;@8>YY1UH?)9)-x98); Unable to start Screen Demon auxiliary tasks!Unable to allocate memory for Screen Demon auxiliary tasks!9 )T Cannot open SCREEN DEMON control file :SCREEN_DEMON_3.52:SCREEN_DEMON_3.00.VM )iT)LI@Ii:II38 IYR )9 )d =ACL of SCREEN DEMON control file :SCREEN_DEMON_3.52:SCREEN_DEMON_3.00.VM must be set to +,WAR 9 )V Cannot read SCREEN DEMON control file :SCREEN_DEMON_3.52:SCREEN_DEMON_3.00.VM өY)R⸣ʤ )IYSIӸ Y9999I۩Y)IɩY[YIYWO 9)9Y99y),()IYSiY  )Y99D!)xyȉ yyy9tYi8) !@CONSOLE)♻) i )9)99)Y999y>ظ8))@8)8I9)89))  I. IY9ix9()@9 )Iyiy YYYy䲇yi)YYU䆎ԁ ))8 O)⩻L) 8)YYU1)9)yyiIx9 ){ NConsole name not found in Console Types table or out of range! Correct SCREEN_DEMON.CONTYPES and then MAKE_SCREEN_DEMON.VM ˎ$i  )`Ii) }))(YYUIY99U)c)񁉉x|89%y) YYyi9Yn)ʙ) ⟄Y)ʙc) ʩ)˪IYS) ʩ)ʩ>)ˉpY4)ʩ) ʙ) ʩ)@ʙD)I R) ʩY)ʙ) ʩ)ʙδJ) yyV)0YyyvY9)/yYyiYG))Y>)8)2)096)294)095Y9Y)!Ii)9999)99)99)99)O99Ę) YyyiYS!ԼH)nyỵǤi)nyyi9y){ y)R8)P).yyYy YYy躇yiY9 ))I)>耫YYE:)xO)IixI茩Y9Ya:Z)[YYPU    jIF︣ﭣ큩II݁8xԁ8ςI  9)@9Y99y)Y\MiY s)I Y9Y)Ii )99(YYo)) )YYU i  )Ii  )Iiu)uIYjSY)8Y)xG  )္II)iY \=Ȃ:PER:CONSOLENOCON)+F9})) ţ)yYyyyIyyxyYyy)y)"I yyy)  yYy YYYyyЉIyYYyy)x89Y8y)YĹI8IX)Iȉ艇yyyRY8Y) K IY) YcYY'Y湁Y9)-)lWUwYYYȮW癮x)9ˣi99x2))8ԫ퐈)ʣ)oY)ᵩYހx)YYp)៩Yȩ9W)J))yx)%)38)87)8)%YY)؃)NJ))-IY?=y Źs9)9Y99yby ŹS9Y9Y99yCyY)m8쬳©yۣ™yyy)i)Ixɇ艆Yy|yyx)XYoI xdɇȉ艇y)iTy) xɇ艇yyI)Iy 9Y999쫮08Y؉ɂYȉYyyyYy%8YxYxY)wIIjSlYY_UxYvU8q rx))b yx) ) x) <^C^@)yI2s129) Iܻ) )8y) p)/&=)8^)ȩ88L) t۩8YYSxщ8xYI  F  8;Y))8)щ&).3x).) wx) )8@W)tbY)xY)ބY) TN9*) Hخ0{Y9)EConsole InterruptF y yIYyԁ)АIYyщY ΉQy)ۀY)y幥=))YY)\)x)Ή) )@xY)˸ P8Y) 8*㈹8Y)`x)ES_{ syF)xgfY:Ny))⹂)8x)8)⹁x~))⹁)IP)S!~u)©nx)@)_)ꙻYY)8)x)xN)xRσ80x?0ϔi6yy{8y IyY)艆Yɇ))8 ) )YTIyYyi )I),깁Y9Yi ) 8IY9ʍ)YYY)))C)) )y 9)Y9)I9)  ) IiY9)xyYyyyѹpxۑIy pII)) YY))y晅y)y⩩Hx)yx󸀉y Y) ≃8i ɂYi )II)y)8Ήp{ߴ x։p p8  P IxYI9YY8 8 iI)y9^)xy) )IIyiɂ)x);QiyI IމYYxYiY)$7xi 幥pi =x);8yI IމYYxYiiY$ } 幥 pi)8x  9Yv08  )I9x)Y9晁)Y9yщx )I  I x))ZY9Zx) yxxy  yi<) YYxy.ɂ  i)I))3)̰)ڧI-Ii - Iy?)).9Y)T9Y)M9Y)P9YY9i )@9IY999 Y9)9P@II38&Yyt8x ) 9,FI9Y99 9̮I h9)Tx9f)`9ȂCannot create temporary memory allocation file in directory :SCREEN_DEMON_3.52:MEM Cannot open temporary memory allocation file in directory :SCREEN_DEMON_:SCREEN_DEMON_3.52:MEM )O ˙8XIO IIYyUX)# I)8ʩ%x" IIIYS)˙)YY{)ʩyYY)I9Y) I)2I>I+ѹIyyI!y߇)IY)8)x)󁹁XすX) ףؤm m)  zzzU) mNXḣ8X  9в) wIY9Yyi9Yx)x),9iY) YIY9Yi9YƁx)x[_SNxșlgF))))r9)|*M[I 9) YYd!8) IM3 l)أՂI lqxF  WARNING: You are about to be logged off due to inactivity!  Press any key to clear this message and avoid logoff...) Yw8X D) yi) Y) )) )I>yY)L )@) ;ߣ8@  I I IљIԬx8ΉxY8Ԗ؉y)_yIԉљYi) 󉈹8J9Oy)nye)w8Z)YY, YY)ӻ♻9)9))I9 Y99)82Yn)8Zy),`s)xII}+yVj ӾPiYYDx)Zʣƻ♻K9)9))I9 Y99)*YY )9ɇy}Y)8~ӎKݎЉy7`Y)ȉy(ѹyΉx:Yy xYIiى8)IyΉxܩYixى8)I) yy\)IyS)IyY)ij)I˳)Iyүѹy[Ή(Ή@- xҔى8)Iy:ΉΉ@ sى8)I))) yy)I)) y)IyGѹyΉ8Ή x,ى8)IyΉΉ ى8)I)) Y)󩩇9YSY"! |9)P99$) 9Y9999   I9) yxـ [9J)=JΉ)%Ѭ} ) 9^xUo8O8#IḄ ~h?]98R)9/)8&x~eY)Ή)Q|YY~) )XXɇ)9$YY9‚xI9xCy~) z.yI)Iy~)i)II}Ԃiy)I̻AI)I+I)i9Y8I )}ɪJ©z)) ™}Y)*™I))IбYi9Јy}) 깈8n))YYxI}gI})di)II~)y$))i9YYI)5Y)ʙ)y}V)깈83))YYxI})I)) ){)}&) |w|wYx|j}) ) })fy/)x9)) 9)x9)<|:9Y{EY^^{;/,|$X{-|)||}Qt<|) x|) [{{){|)f D EFEFQ0 ))Υ|nY)Y 9x|_Y) )yy |I)x #{֮|9)xI){Ɓi0ii|x@yyy @sF N@yyyyy )\y|s{ {8eIߍY9)MIij9c) ♈f yy/ły) ⩣|ss6 {)x) yyyy@y Ŏ y|@skl ߍY9)Ia9cY)  yyֱyyyy@y x yq))) {8x蹈c)8x{})nyyx){) Y;8) {r  ;yy ~͛yyyy@y  Fy )♣{r_ r yy ~9WyĎ !e[yzͤ9v) Y) ەѩxzY)9̮!߹)Y9*) ȂIyIcELOGOFF-TERMyyyy@yY8Lቓxyy ~1yyI)Iy7Y9Nyy)w YYyY)IxW* dy89L) zx?Y) ѩxzY)|92!;eĂIyI]c癝yyެY) xy)DzzYzy) )Ddzy) yy }yyyy@yyx  8y) xyy }f # yy8yyyy@y  )x♻ yy) xy)9)9)9 Y99i))xy _YyiщyĻ)IЉ)) CYyMщy׻)I  Fyy |؛yyyy@yxN)⹂xyy |y ix3⩁YYAZY)X xixx iΎ ؉yy |yy |~yyyy@yw)xxY)8x)b=yI yx 8xI)8)YYI8wIȉy yxoңy2sxݝ)iY)8yrx)nyy)xxxsxx)Љ))x)y 998yy)9)9Љ8yy)9)9y)8x5Y)Ȃ9Љ)) wZ8)9)Ky  y))x )))IY9w+9Yw&8yy)y  y)) y9yyvƫ)IY 78)>xЉwn֣vvIvۨ ߀w7Y) 8vЙI 8v⩻v⹁v㉁Byy zЉywnyv^vZ YyvY) 8vI 8v⩻v⹁v㉁SByy  pzY9)ay)) yYIIy9Y99))8 yy)y) v)y))y  y)) yyYق))8 yy)))Y8Y)y  yY9Yvmͣuuڀv2Y) 8u˙I 8u⩻u⹁u㉁Byy yYyvmuYuUYyuY) 8uI 8u⩻u⹁u㉁NByy yyud9Yu]u7)IyyW8։)>Iiu7)I9III)Iy)0Iy iy)))))))0I)I yux)y) yyt艇yyyy@yuF8t)⹀ )dyc]xڇ)SY)8ylul)nyy)ubu]ub)Љ)) x))x)yIY)ǻ)`tY)8؀)Wy  yy)))@yy)) yYIǐ YyIY))i~ټ)`8t)xY) 8rtYٞ)?t3xyy x4yy x(i9)) y))ytY)Ȃ9ЉYs]yy wyy wyyyy@ys8x8sP㉉gyy wü93yy wyyyy@yIxyyyy@yYys8x8s㉓@)8vyyyIyyy wc9㸎ӂyy wN)a wGyyyy@yIxyyyy@yYysK8r㉓@x)฻ yy؆Iyyy v9j8yy vyyyy@yr8x8rO㉋@)yQIyy v9븎*yy vyyyy@yrxxr㉙88Yyщy8e@)Iyy vf9xւyy vRyy@yrh)IppYyUrT)©Yp⍉yyy v&yyyy@yr9))pȣpéYyݠUr$)©Ypyy uȉXyy uyyyy@y0cy8qqqyy[N8yqکqvکЉxyy uyqکq_کЉayy umy)YY8yyyy@yˎy YN.yy ucBN uZqu)8I))xyyyy@y;ڎyyܿ8o u" u!q:Y)x)Y8yyyy@yV;ayy t tq )8+8)8yyyy@y%X;sl0yyUbx: t ty8)x)ў)xyp)♀)88o)xY8ɇyx)p)♣l)p) )))ÀU)pw) ♠ypj)8Ip'Y t;pU)M t1 t-)pD)x) tȉێyy tyyyy@yWyA8oܢoyyۆK8yoکoکЉGyy syoکoکЉ0yy s#yy syyyy@y.y偸o^yy s) syyyy@yԎyI) IyIЉo\YYn*9YY@Y#yy sY xYyy sH)Yo!o ooT) Y9999Iںۂ)o)ڭQYm̉x Y9999Iڕۂ)nމxnՅnѩYY~U)n)InnnIIdSyi) YOہx)  yyX)YI9>I؉ yI   Y!?؉y)@y)yIi8 Yy1)̅yIixn{) @CONSOLEI9)yIin\Y))8mII)@Iy)ٷyYYٯYmY8I) yIinY)8)mrII)@Iy)nvyYYnYmSY}2IYYUxm6IxyNYYDYm%ym"y8IIyI)@I&ylx)yY)I8:PER:yIiYƉxy58IiIyIYYy y    I  Y Y   yI ѩx  Y  Y y Y y y y U))2m I9=9K)2lY9=I9K)2lY9=9KyY9el怹)) )Y)8)i UY)ISfMiI9eiYI OGۂȉ,IY9Y9L9"9#9$9(9;9<ll YMYl9 9)9II9Yϳlylx)I9)i) lm)ۉYiکi)le)Y<5>Yi9$lB)l$Yl'l%l#l*l)llIl llll dM)=I9yYR)k)y)))@yi9Y9)Y)0yy   Xyik9 9 k))x x))x)xi)9I9"9#) i yX8iI9")ik̹yIIkr) ykmyikh9 M yk`)))I9) 8kNykY)ȂYkJYkE)) kA)ۉYiک)k:)Y >Yii9$kЉ))x x)iyy)k)Y>Yii9$j)y))IIժ9Yȹ9 )ji))I9)j 9ijkyk)yij9999jjpyj~ +y)I)jWyjV yY YYj\iYj]j^)x*j<)j,j'iYϤjA)j0) 8Q<xij#)$ij jfj )@8i)$ρ +y)I)ii㭉 yXiڣii Mщyyi͵yiہxi՗iгiIyYyYyyyiYi)IHj9!)щ  iIXiYYYiXYYȢꅉ)ȫYXI )XڑY)xYyYXǁYȃY)ȫYЉxY)ȫYY)XiEXѹY)I)I)YYi)=3Y칤9 BH^(*)i9 ))IYjYeYiXȫY)IɹY)X ѩY9')ɹyh߳h )=Yh)InhƎIYYi:9!hY)8λth) xyi) S9)''t) hhY YhyhrY8 9YyyihdhdI)9Y9)))XXih^YhX)I )5))')8I9(9)'8m)`(i)ʣhohnY']hg)hxg)Ox)> h )xG()=8g)gX7)響I)@IgףgԆgģgÁgg) x)(T s)@Y8 ) g) I5)I9;Yg))gxg^gUuyyi g))O SggRd`gI\g.yg*g#tyyiG Y9;) g.)ˉYʩgigg^ f)Qff)Yyf{™xf))YYjYf|) )=)IY5Y f)}8f)rx)IfY9)9)fffiӸYfh)) i>Yxf) d)il)=8x |3) %{Zy)=xLOHfI) f]ͣf]ǣf]f1) HP*FyfY)xfY)@f))D80yf8-EYeyi)=򁹉x)Y)əy9y)f8)9yց8i)yY9y))9 ) yY9&x>e9&e 8ewyevs Yyemieiev xeZI9xeV8ec)x9&eCI)A¹ ~e5y9&9%)щ eF) )<);8Ye)%i ))LIe8iyyIyiЉ)0I) )) Y9YYieW)dՉI5t))(E)Icd)& )(щY9(y9)ѩ̹#)yyYi9y))9) )i9 i)=)%Y _)Ǖ8yY9)d)9)!X XIdXљI‰8y)yYYdyy)$i)<8dJxY)ȫYYn) iX)IsYXnIXȫYdY)<);щIi)%yc) cd);)<)йx.c)c8c)%yivyIii y.+)Icc)9 )9 ) 9 ) 9 Y9)9)09x))c)ȫYcɫcĬcɳc) )cc)YȫYc Y8i)9)9)iiI ))8)Iyi9y)cp)Iy)yi9))9))X Y S))cJ)9cB )) 9)) x I8Y9999 bxXY)I)X) I99)ȫY9)))XXYi9 b{)Hy))=8)ḅbǤb̆Ix)})!yi)=)b)YXiYib6YYȳbȫYbXI)I  YI)ݾb|bwb|)܆Ii)UYXPYiaxYY)ȫY)XI)I  YIE)%a8a))x)aax)Kй8a89) waa) Mщ)")#az)8)xx)79L88Y)x)79LaU) aXaH)x)79LƸ Y)ƫ)=щ  lxYIYByk a5Y)xj\I)й k䩹ý S(K)a ) 8'a)8Pi= )9`)Y/ÙFsy)%l`f6yyiΣ`9G)`H)G`ݣjYf8``)멩 ``Yy`weyIyX`k`YƉY I8)Yx)Y8yeVyyl8)@Yi9Jy9`Gx)y98Yy9YX```)i)`` Yyyi`)`ՉI0I9)>])?])@] E])A])B] C]y+)yY)éYй8xYЉ艇yxxi)%)y]Y]xi)%)y]xY]sx]o]j)zy ) )ۉ)I) y)Ii)  ) I)IY9)yΉYYi)i)i))Ii Yxo8oYy )9  ) yyyYyi  Y9xy)%̹yIIy19)9)9\9)%9yy9 \yi )J+YiI))d84ygg\exκβΪ\Py9")դvg? y\88f#Y\+&)QY\ 6Ź9)9Y99yǞ)V)Y8\ )ʙ[) )9Y9yk[)8 Y99yUi)[)qx)YY<y)p[Ή)! &Kyfx[lx̮[Wy9")ڤ̘fP ))8Ňy[18X"Y[$%y[)[ [ YƫN[YYơUyZ)8Z XYƌNiZ)YZ`9&9%*) ZǪIYeS)8,IZ͉Y9Yyyi) Z) )*Z)Ox)> |9Yt` p)IZ))Z)) )Z)) Z9))8ZvYY 9) 9))~6Yf Y普8eIՇyiщ8)%8)8yëyYU YYȹ8yYYxi)%YYyyYÇyY9Yyyxw\F)`Y8[VxM8R詓GੀyyY Y:76/ȩ8YyIYyF8ЉI$\F+x) Y<8虑8虂򸩚񉸣่xY YyYr YլҤYyyIYyEЉIÇ)Y))ԚYI ix))ԆYѣ  4 ´*&nyp˳kZ)i))5X98) Ywu  FoD = 0;)21 10 2-VR#iDXI98) )))йIYI i))ӺIY x))ӨY X98) ڙXPXLXNXBX@X8+tW9x) )`)oW) yiyR w)k)gid L IFQ>JYYXHJ$62YJ76)xW6)x  W%)щ)XyKYX뒉y߫XYȃYyYYəy)F8Y)PY)0Nx[ûIyXY/s鉃xyYY'#YYz9YyypXQYoȃYYnK8bIYc) 򩁩WKxTҊ8) MKx@8yJK x0+" $1 ()Y  ~89Y.ۉYy&I)xK`))iٱI9Y Xщ8A)x)x x 8) yI)$9)Y)^9@Y9)~艼8w ~flkjihgfed R)))) I OyYK K?ЉD F) ? )Y 7)Y 0)湎 YIYx   Iyy: }yX܁YȃYYЉyȫYʬЉ) }أ) }У) }ȣ) }) }) }) }) }) }) }@q)i }||`ir }mnlyp) }^h)  }R)QYECE)7=J.'%)6Ay*Ы8T󐹈x) )8 8T)xYY$x9#)9) 8TR )1Y)x^X҉9)9)T3 )1)Y^XѹTT^YY)I̳SSډS)mS8)_U vlm |jkIbO |]cKVX7~SYy)IyiK~@X!YI32yYyyYyy%(I9Yiyy ) | | y~  YYyyYyyY9IyYyųSPxݳۮ^ҳIȫʎώ)x9)8S x^|I9z))IR)x^p)YxR) Y)IY)Im) {[Rv) FE,}PYDBYѹAyyYAI:I3 4I' {$$)8y}YYyyI)Y)) 9Y9YYȉ~쇉yyYyyȉyIY9YIȉ) ©x)Yۍy|yxy9)Yy8|Iy{)|Ye z Q)Q) zrr) zjj) zbf]YUOiIO zL|MYK8EY8680|F z1|2/+y|, z|Y  8| z) ©xY׳)9)9Y)Y񍉫9sW y֤ yY)Yэϳ)s y鸁Y)Y)s yxYg)Yf)s yn ylX)9IP})ji yBY/q $Y)F Y)a8?8 Y)28YYP+)©yYY Y xP))9Y xP)9yIs̹@Iy e y)Iyyys)yyYYI)9YYɹЉiyyOͅyPyyy1:yMyy?yYyYYy OY)̄Y)89)Y xiCS)9Y)o9Y)#9YCH)yy<)xObY))89)I x1FbOS9@) 9YYމyIy0I)9Y0 O Y)QY)9)I D wyXXiYΉiyIY) xyIĹ)I y) ♼ XN)   {? wyމhyIy0Y ) o~I)YIyIiII朅yIiiyyˮNNN׮0")u>2MMϮ:1oNq)})wF  }h))09Y@> }OY)09Y&$YZI)YxY8)@Y9i v橩 } Y)Y獉写x094 v |Y)Yx095 v |Yr)YY0a96 vw |YM)Yxv)Y_iX vS |wY))YTRى8y# v |;Y)YMY)K)8y)9yI9YY ; uMY)x-))9I | u)8)x))) 8)>,剁) 8)x)99LY)) 8ijwى8L)x8 xyIyyCp1CY {z {yYljLrY)8) )Y 1 Y u9LTY)x)9)I v0/ {@yY!L'Y)8T))Y N)鸁Y t@)89j)I  )  )K) ))y9 tģ)89)I  )K) t zФ )Y平9 8)Y平i)i9 8)YzxN)i9 hx)Y_]69 )YMK$)ق@9))ق@9)vyYY)yyyy  Y9))I)Ii9YY)xܺڹY8y߻ՙYԙIѪX)xyyyi9yy ))I)Ii9YIY} s)89)IYYui)9)O9YYXz|Rpxuh)IbYH=)294 G=- ) )9JZ)) x s(FAY4 9 yA$# x)Y平9 8)Y)i9 )Y鍉9)Xy8y 9 )  xX) i I) Zy{)Y99)9Y9)9{9))1Y9Yy 8Y)9Y :PYt\7Y$I^) r;y)999)Y9)9)9Y9I:) YX񩉃8 Iy ?й8 x)Y平9 x)Y퍉)i9 ܩ)YӍ平9 )Y)i9 wƣx)xYYXys}ysw)Q ) YF qc 8)Yki平?9 8)YVT+)i9 E)Y<:平9 x)Y'%)i9 )Y  平9 )Y)i9 w)) 8 ţ99)I9)I9)y9)y)YYX)yryxy}r` ) YU prr)J)f)bYYX_a pS v| )YYW平-9 )YDB)i9 38)Y*(平9 )Y)i98q򅉡y)yqyᑩyۑyqY oˣ)9 &)IGGF)qYȫYyzXG 8Y)8Yio oYeXF8) W) ) )8Iv9z)FͻFʳQYYY)I}FFF_)8K.-Y o)y$Y(iYIyyy艣IIyyЉ)tY 9)I.FUFTF)卉ȳYŽpުXӪXѪiyyYy̪XȪYXF.8 Y)yyy艣IIyyЉxXYy{XF8Y)nYyyyIY9yYy ny)9)IEīEÊE)p_Y_ȫY8y"Љ/XE8Y)I88x2Հ@I@@s) y@gY) )) w)U)Iι xIe))@8@9)Âx}@%Y))}y) ɝy)٣@ Y)x>)?) ))-q@x)8/) ) yIy09x ).829===uR~===u=|A|R=|eKJYƀÙ7I}IKJibٙÙi\9Y ÙYQ/Ù WIQJ)KWIfi-I1iYlÙz逆9r)P`2KK7IY؀\9 'i'' ''CY܀hrYnO9 91iY!lÙÙI299cb8rYnO9 91iỲlÙ\9iX9g\9 e%97 (CX2XX''9JY9(i8 Ù9q9`)ÙYdÙ  iÙiy)ÙKzKR ÙD nhgyPznÙ9˨Z)KKK˨9Vnh\9I2cbÙ299bgXGHiz(Giz9nGƌiz0(9z9)ibG9ighZ@9չ2BJnOGz@7YnO9Bfi2cG9BgXG9Bznn(YnOiGB2r96\\zr95 79 9>!U!w!>w>,PI%===uR0XڧPI>xวщhhщI|x>wxۄ,R0XCA>A!!U!RAxww>*,R0X9>U>>U!>>w>xwPI%===u0X!%|x>wxۄ,R!%~h~ѕ*ه0_>%~h~ѕ~~!(0Xd>!Iۍ>,w>>R|xww>ل!PP!>0XxIۍ>wIwUwP>P>I>w>,R0X;>ww%"="=RRR)I99Y9 9 99 x)I9Y9 99 99 8)I999 Y9 99 )y)<)x   щxy* 懩Y9 9999 I9 x)Y9 999 99 x)I9 9Y99 99 )8x Y9x)7ӂ v)9) xyy)0YyyY9Y)/yyi Y9091}.)292)393)494)595)696i) N)" ))щy)f)9 ) ) 8 $Y9 9 999)99)O99))x y )9I )i)Y9I )9 )i)9)99))998)9)9)9999)9))Py9i yy) ;90Y91)92;}93;r)494)595)696i) x{)ƣ) I)xI)Iy :))x  y y y  )щx9"9y))Yy*yi)xYִY 8)xFl))FzY艇y  )nyyi Y) i )Ii ) i9 Y   xIy) xyyYyy) IYyЉxi  )y):{)x  R8 8 y )nyyi Y) i  )Ii ) i9 Y y y  xIy) rxyyYyy) IYyЉx9) 9) ))x  89 gy))Y9)iyyry9) 9 09 19) 299)9)9i9Љ9)8y )y999))9)  9jyQ)ʎw)χ)9Z)  9?y()2))91щx x) %)dy))Y9)I99й `)x  88鉉x8됹 8) ~) yy0Љy'')+8_) 8\) 98)8 yy)9999)9)9Y9 Y Iy Cй8))8) ))y8`9)x ))y8K97) 7) )))8)o )8Y)y89) )8Y))P)@yy797) 7) )Y))) )i))) )) 7)I9))) )i))) ))7)I979) 76) )􇩧))) )i))) ))7`) I9 ))) )i))) ))|76) I9 6) 6) )y77 y ɇyy66yщy6y )6yy6ߎ y )yyYщx yyy6y66y66y6 )6O) 6L) y  6y6ix6~6t8Y) )Y6g6) 6) yy6]886W6RYyy6H886>6=Yyy  x6)ix6"y) ) ӂyy)0YyyY9Y)/yyY)Y9998)I9Y99x)I99Y9)5xY)@5t)@I99Y9)Y99I9)I99Y95PY)5F)5>) i)`)85,)))5) 5)@)n"5) 4) I9Y9G/)I?4) )59))͉5Yy5yY艤4yyy)x9r)4Yy4yY艤4ݓyyyy@|I)9YY)9@jI)9YY)9)ꩴ4$y)8444}k4K9x4B9))ʩ4|4{Yѹ8y4pYa4k)9Y4d)84]4XYI4S4)Y4W)))NFS10OFS00 FE))49  iy҉844%}y)` )"I)))84  iy҉833|Գy)/ i)"I3) 3) )C))3 3 03«33 13) )8 23)3)3i33>) 3;) )))  8)y йIi)ԇ)))3V)8  iy8  iy҉83+y ) I)Љ) ))  ѹ)L i) Ii2) 2) )_))  ѹ8) Iy) #YyY y) IiyY2b) 2_) )))Ȯ8y)2>)Y2v2mйx)Ȯԃx2byǤ2` )x))Y xY2R2Q1))Y9 9Y)/yyi21 йY2,y  ) 9 ) 9 )9)9)9)9) ))8)@ 1xVV )8)8xIYyI8)Yi99)x)xxI8YyI8)Yi99 ) )xI8YyI8)Yi9)9) )xIYy)PW)@)yIYyЉi9)9)XYX)XYX y9)XYX)XYX y9)i)I9) )i) I9)Y9`)/)9)9 )/ 8I   щx ~Yi 0ـx0Τ0ѣ00)< 0k) 0 щy)9)) I syU{ yYyyyi)I9I9yYyyi)yI9R999I99 X0)   ) )8/)ꙃ80I0D0-yU' yYi9 y   y0yYYyYyhyyIi /X//I/I/ہIIy/YIi)/zY)@x/ 8  )x )y)y9) y)y9xy/r 8)99)(93/b>/_@</ZBI9Dpx)(>@@@<BI9DߖE  I9 Y91:999 )/I )09)19)29)39 E)1I)@Y99)295)396:7II)y)i9798)9йygY)Y11Y:.'94 EޘIY92)xF)x. Y)x.X) 9iY)x ~ )x  ))8  ix 8II8 M i~Y9-.) )~) )-Y)~)~~i < BYx j <)9Y)F9Y)X9Y F~ӎ A<~)9Y9-i < BYx 9 <)9Y)F9Y)B9Y~  y)09Y)yY09Y)1))9YI) Iy))Q))y~oyY9 8Iyi)-) i~aI-YIi BiY8yi< Iyyy00yi )9  i y  8  Iə8ȹx  xyiGI6i M Y '%#yiGI  i I Gi MYM)90)9 MX9EK)蹃x0) Ii)iK) x))i)) <))')zo < Bx <)9Y)91 B< <) :I)i9Y<)z?)Y9)Y)&)'y9z$9IyIII9 < BYx <)9Y)9Y)9Y<)) )Xi y)2)_XyYXYYxEyQy yy0Q 8iȉȉyQy y0iQ iyixY9!)9 ))!Љ < Bx <) 9Y<))2)8yzXYy KyYyy0Y9yYyiyb)YyIЉEG)))9)9Y)ȃYYiY)yY)y9)2)8z)yy8y < BYx <9)yyiى8i)88 9iIYYY9Dݏu+y)09Y)99Љ)19u)98)38) )`9)D9)09yiY9&#$ +s) )8 8)&)8 I9& + I+y)9()&9'y") )xI))yi)IYQs 8) )i)I)x)sy)iIyIIIX9zQ9Yi90- < BY i <)9Y)F9Y)CY9Yii<3sV) yrt)i < BYx <)9Y)F9Y)^9Y<rS)ʩyrJ)i < BYx <)9Y)F9Y)]9Y<r()ʙys)x" ) )xI))8yr 8) )i)I)x)rщy)iIyIIIX9yx)9 < BY1i <)9Y)F9Y)JY9Yi<r) yy09YyY09Yyi > <@B) ) x)),)9 )9)9  )9 ) )9) )9))9 )9)9Y9 )I9 ,O)9 )9)9 ) )9 ) )9) )9)I9 )9 )9)9) )))7LJ )@8)I9 f 8Y)xa%)dY))xY yY)0yi 0Y9Y)=yyiY9  # )090)191 2 2)IiY) )gJ)1 8)J M))) 8iy)XI Iyyyy00yi)  蹊)0))XIi 90I9 i xi  ɉ8) y)yyyyxi) Y 0yyyxi) `)yyyyi )0Y))Љ9Y9 普))89 9  86YȫYYYY 9 9)5Y9I9 9 9 )5Y9 9 I9 9)5Y9 9 9I9 IY)x 8 x)5I9 Y9 9 98)5Y9 9 9 9I9Y9 *&Y)@8pYI hۂ щ)5I9 Y9 9 x)5I9 Y9 9 8)5Y9 9 9 I99 Y9)Y)@8pFI huۂ)  8 )I98 )9e99)9<)X8i щ yyyi8Y)9<)9e9 щy9i) щx))@x)1y)96Y9=9>?GIK9f9g979;I98C)e) m)Yi9eb)d 9iY9x )hxY 999 <Qx8x)-Y)) )I99 9 *)) 9Ɖx)9<)968i y999iY)8ف89Ỵ}ão') x'I9 gY)8) щ8 xi%ґI)й nn)) xy9)) Љ)8 _)IIYnpp:9)3y)*)I(Y)@nUYnw щ ~S ~oi)Y)nZ)) 889)) )8 ) щx x yɂOщ)x)8 >y8Y99I))Y 'yiI9 y  щ))Y9I)) 8)I tmө8۞mʩyۊYyyi8) )YoY)8g) xY])8A)696~S95)I9Y9= eE) 8嵣&86BkY) )x)pY ) 9) Y)#) ) I~x)܄Y)m )x)m 5)mήvx~)h V 5m)y9 lyyim i) )ˉYʩ)ei9e*Z)jRP)YY 5©xA))YYY-[Y)Y}~) )I@))e9e щ)=9Y9 ~ 9)) 8)I)ӸYY)Y}8) i)e9e}x)%©yI) } щ8y)=)yyy9  9yiՁ)8>8Y))) +8) ~Y$)ق yY)xY~288xx{)8 i)9ل ~i/)Y|~~) )~IYS)hx) 9Y ~ y) x) ) ybY^k2щ8y 8)Y8yyY999y9 yi0 y))) Y)Y)y4;"))!ƙyi"I xx+I;Y!Ι x+lIii)9)9 N) xxIt EpxIx+ IyyIk) YYyy IIyyyyYЉ ѩx 8iy j)I^r) %JIY9x),xYN) %8IY9i)xۉpxII'' ] xI2 J *dx))8V) i) Yyyy ri)))) ֖kYIY٣P)8xF)i) Yyyy Yͣ))  )i))x`)) ) i i)Ii yI|kiɂiy|D)IiyI)iII)I9YxyY)8IمyI)Iyiiy)IiHI)iHI)I9Y8iryi_))YYIXIYy'Iyy)IIYIۂ))I)Y) yo艇y)ӣy)IIYIۂ))I8)ܣYYU)y)IYщ)#b8^ZIIZSYNXI)IHyy)%tYy9#9"99 {29!YI{" ' y)9$Yy#y艇yxy)"})!z) )  v)$xIy)YģIISY)) )!Y\YY x )!\8 Fg) yi) Y)8 8)aI99D?F')I݉).Y)PY)R9)yyY9i .PR)aY9£F)9 Iiy).9Y)P9Y)R9YY999D)$IЉ8IY999D)IЉ8ЉE9D)I):9Yi9Iiy).9Y)P9Y)R9YY99D9D)IЉЉY99D9D)I8  "Y99 ))€Y9E) y YYYi9' I9Y)IiY)  I9) 9) 99D ")8Y9: Y)מYD.+ރ$ }  TߍY9)4ItT9cx)) YY ֓x ") 9Y9Ɖ )9Yy~Y'"x)) ⩣ e) @NULL)) )  IyYy))Y)@xYev  )8egYiyʼIIeXy yiYg)8 )))yʀe<I9e4)8Y9e'))x 8 )g_" Iy98yyi yYYyi) g:) y9))g.VR )>: B)GY))d)〹8=낉8ւI YߩY}Ҋ8YYĮ}ƃ ʫ8   \)yIWT YY}8 ) 9I9Y9 ƉB@9u9}e8 ĶIIlY YYR}OƁ XyuXxBt)钧I֧I):9Yu=) IIu/9N)yyʳu")y94yic)xY9)|I9YY|ނt)y9܇yi q9)|It)y9yi9tY|t)y9yi Y99Yt|t)y9PyiB9Y9)|It)y9yi9)tY|l9)|`I9YY|Wނ~ɇ=yII) щyyܹIyi 99й q)Ii v)Ii u)!Ii 9zyQ ta)"Ii a)Ii )9 I8y9 yyyiY9ުY 9 I Y9{8 9iYY{Â)YiIч))YY{)))8YY{)ʁY9.LOG.LGO.TMP))  ))y9 ))y9 ))y,yYY)y9y ))yyԹY)y9ȫY9!Yp}a ~Ya) )ݘ *ϐiY9)͉yyYyi) !9Yiyyi ԁY9)|9am)x)9) 9)xaY) 幢9):9)Y )ݘ =ii))p)9ʼn)ʼn7Ĺ'Ĺ9I9)6&9)9I9 @Y!)9I9xY9)-9`Y )9) 9`)8)9Y9y)x`)幢9);9i !)))p8Yx)yi)8X!))pY9))5I%Ii9!)))i 9Yxi))Yi ! BY)͉)8 Xy))pYyi)9)8Ĺ(Ĺ9Yx9yYyyiȉ!)9yYyyi) 8Ή1234։!"#$gy։++++))py >+9)I?+9 щ@+9IA+9) !9I9 щ!9I9)x. )Ii ))|Y)Y ) Y y YF YyiX) yi ! IY)͉)9yYyyi))YY  )ݣI9  () 9xY   )  y nI)x))!8YY)8iyIȫYYFI)Y)) x)Y)Y)Sisi)Didi)RiriљYY))Y 4))Y))Yi ')) ) Y ) ))   Y ) Y99 ) x ) 9 Y) x)p_ȃI9)9pVII ) )8Y9 I ĹI yyyiyyi y y Yi Y   8 Y) )/Yx Yt  y YiIy8 x )Y Y)IIy8 )9ooIIy1晓yoщYoII剁Y oyyi yyi)) y ) y晓yщY)9)Y 9 yyyi 9) ) xyKY 9)y x)9 ) )Y  yyyyi)) 𪋈8 )Y Y)II8 )98) 9Y9n멉)) y ~Yyщ)/)yY   yi yyi) )Y 9)Y9)) )N9 Y   )Y9)Gѹy ) x )xY+x )Y ʹ*x)*xY ʹ )Y 8i8y Yx)x))8 )  )) ))xԔ   y)x)8x)| ӣ ) ˊ)8@) y  ))6<D))x 9))  0 }0i9 s q) ʙ) ʩ))  [09 T R) ʙ))  @09 9 7) ʙ) ʙ))  !09 )  ʩ))x ) ) )) ) ) )) ) ))ʙ)ճ)ʩ)) ) )y)0BY9Yx)) )yY)YЧ٩ɂ@ 9)) yI)0IiЉ)0X)1XևypxIg) Iyy pxIy ѹpIxЉɉx ))pƉ9);oProgram requires LANG_RT: relink without SD_NO_LANG_RT.OB 4x8DOx00@0ypi0I ))ȹyIlj9  FATAL RUNTIME ERROR: TERMINATION THRU ?BOMB 0 .C$}{$n$}0 SD_LOGPRT.ST   p?BOMB/p..sc..sd_c_file_io!C.INIT pRsstrcpy pfsd_nopen ?G.IXIT 0?G.IXMT 0?G.BKPT" pLogDataLen!CTRL p}GetSw pCollectGlobalSwitches pGetArg p?NTOP p~.KILL- p&?UDP000000!.REQUIRE_LANG_RT_REV_3.10!AWOFS py?URTB p(?ZMAX p$?NMAX 0?G.UTSKG p*SC.sd_sys pReadLogData p<main p+WriteOutput pSysReturn"p$Switch"p@@LogData!AWPOS!AWATR! CON_TERMCAPS p(?ZBOT p?SBOT p?NBOT p.UKIL putoa/p..sc..sd_logprt" pSyncCount"p:LogHdr p4sd_sys" p8LogTrailer!CON_ACTIVE_PID-p&..LOW32K p?UKIL! CON_USERNAME! SD_CUR_PID pasd_nread!SD_INIT!I.INIT p sd_nclose/p..ud..sd_logprt"pOutFD"pLogFD" pReadCharCount"pLogCount!FLUSH_INTERVAL!CHARSETS!ATTRB p'sd_nwrite p)CFALT p&SFALT!AWSET!AWDSC!TIB!ACCEPT_TIMEOUT!CON_PROG!TIBATR 0?G.UKILL"pUtoaBase"pCharBase" pFunKeyName!AWBUF!TIBOFS! TIB_UPD_COUNT p/FFALT" pDisplayCount! TOP_WINDOW!FLOAT_TOP_WINDOW p.UTSK psd_nseek" pInputCount! BOTTOM_WINDOW p,IFALT 0?G.SYSCA p?UTSK!PERIODIC_INTERVAL p{.BOMB 0?G.UTSKB"p.NULLDEL!LOGOFF_INTERVAL ( .W$RbA$n$_MAKE_SD_GATES.CLI comment MAKE_SD_GATES.CLI Screen Demon rev 3.52.01 comment Copyright (C) 1993, Threshold, Inc., All Rights Reserved comment -------------------------------------------------------- [!equal,,comment] This macro assembles inner ring gate definition modules to be linked with user programs and the inner ring Screen Demon program. [!end] comment If no ring was specified, use ring 6 as the default. [!equal,,%0/ring=%] %0%/ring=6 %1-% comment If no inner ring program name was specified, comment use SCREEN_DEMON_RING_.PR as the default. [!else][!equal,,%0/ringname=%] %0%/ringname=SCREEN_DEMON_RING_%0/ring=% %1-% comment If no name was specified for the module base name, comment use as the default base. comment Both _GATES.OB and _CALLS.OB will be created. [!else][!equal,,%0/base=%] %0%/base=%0/ringname=% %1-% [!else] push prompt pop searchlist [!searchlist]& [!nequal,[!path =],[!path [!edirectory [!pathname %0\%.cli]]]]& [!edirectory [!pathname %0\%.cli]]& [!end] write write write Building gate array module %0/base=%_GATES.OB write ,,,,to be linked with Screen Demon inner ring program write ,,,,%0/ringname=%.PR write ((write x/s),x/s) & masm/ps=masm_32char.ps/ulc/o=%0/base=%_GATES%0\base\ring\ringname% & SD_GATE_ARRAY_DEFINES & SD_CALLS & %1-% & SD_GATE_ARRAY_DEFINES_END [!equal,(),([!string])] write write %0/base=%_GATES.OB can now be used by MAKE_SD_INNER_RING write,,,,to create %0/ringname=%.PR write [!end] write write write Building inner ring interface module %0/base=%_CALLS.OB write ,,,,to be linked with user programs for calling routines write ,,,,in the ring %0/ring=% program %0/ringname=%.PR write delete/2=ignore =?[!pid]ring_def.sr write/l==?[!pid]ring_def.sr SD_RING_NUMBER %0/ring=% write/l==?[!pid]ring_def.sr SD_RING_NAME %0/ringname=% ((write x/s),x/s) & masm/ps=masm_32char.ps/ulc/o=%0/base=%_CALLS%0\base\ring\ringname%& SD_GATE_CALL_DEFINES & ?[!pid]ring_def & SD_CALLS & %1-% delete/2=ignore =?[!pid]ring_def.sr [!equal,(),([!string])] write write %0/base=%_CALLS.OB is now ready to be linked with your programs. write [!end] pop [!end][!end][!end] .W$Rb$n$_%Ĕ SDWINDOW.DEF %*** SDWINDOW.DEF Screen Demon rev 3.52.01 *** Copyright (C) 1993, Threshold, Inc., All Rights Reserved *** -------------------------------------------------------- ** Structure of a SCREEN DEMON window descriptor ** * This copy file is intended to be copied after an 01 level group field * that names the window descriptor. Individual fields within the window * descriptor can be referenced via qualification if necessary. 05 SD-WINDOW-VIB-PTR PIC S9(9) COMP. 05 SD-WINDOW-ABOVE-ADDR PIC S9(9) COMP. 05 SD-WINDOW-BELOW-ADDR PIC S9(9) COMP. 05 SD-WINDOW-ACTIVE-UP-LINK PIC S9(9) COMP. 05 SD-WINDOW-ACTIVE-DOWN-LINK PIC S9(9) COMP. 05 SD-WINDOW-FLAGS PIC S9(4) COMP. 05 SD-WINDOW-RESERVED PIC X(02). 05 SD-WINDOW-TIB-LINE-OFFSET PIC S9(4) COMP. 05 SD-WINDOW-TIB-COL-OFFSET PIC S9(4) COMP. 05 SD-WINDOW-VIB-LINE-OFFSET PIC S9(4) COMP. 05 SD-WINDOW-VIB-COL-OFFSET PIC S9(4) COMP. 05 SD-WINDOW-RESERVED-2 PIC X(04). 05 SD-WINDOW-VIEW-1. 10 SD-WINDOW-VIEW1-VIB-LINE PIC S9(4) COMP. 10 SD-WINDOW-VIEW1-VIB-COL PIC S9(4) COMP. 10 SD-WINDOW-VIEW1-TIB-LINE PIC S9(4) COMP. 10 SD-WINDOW-VIEW1-TIB-COL PIC S9(4) COMP. 10 SD-WINDOW-VIEW1-HEIGHT PIC 9(4) COMP. 10 SD-WINDOW-VIEW1-WIDTH PIC 9(4) COMP. 10 SD-WINDOW-VIEW1-NEXT PIC S9(9) COMP. 10 SD-WINDOW-VIEW1-FLAGS PIC S9(4) COMP. 05 SD-WINDOW-LEFT-MARGIN PIC 9(04) COMP. 05 SD-WINDOW-RIGHT-MARGIN PIC 9(04) COMP. 05 SD-WINDOW-OLD-LEFT-MARGIN PIC 9(04) COMP. 05 SD-WINDOW-OLD-RIGHT-MARGIN PIC 9(04) COMP. 05 SD-WINDOW-RESERVED-3 PIC X(64). * End of window descriptor structure * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Descriptions for each field in the window descriptor: * *---------------------------------------------------------------------------- * * SD-WINDOW-VIB-PTR contains a byte pointer to the window's Virtual * Image Buffer. It is recommended that this field not be modified by * COBOL programs. * * SD-WINDOW-ABOVE-ADDR contains the word address of the window * descriptor for the window which is above this one in the window * stack, or zero if there are no windows above this one. Note that * if floating windows exist and this is the Top Window, this field * will point to the descriptor of the lowest floating window because * the floating windows are above all normal windows. It is recommended * that this field not be modified by COBOL programs. * * SD-WINDOW-BELOW-ADDR contains the word address of the window * descriptor for the window which is below this one in the window * stack, or zero if if there are no windows below this one. It is * recommended that this field not be modified by COBOL programs. * * SD-WINDOW-ACTIVE-UP-LINK contains the word address of the window * descriptor for the window which was active immediately after this * one was last active, or zero if this is the current active window. * It is recommended that this field not be modified by COBOL programs. * * SD-WINDOW-ACTIVE-DOWN-LINK contains the word address of the window * descriptor for the window which was active immediately before this * window was active, or zero if no windows were active before this * one was last active. It is recommended that this field not be * modified by COBOL programs. * * SD-WINDOW-FLAGS indicate certain facts about this window if set: * Bit Value Meaning * 1 VIB was allocated from available memory, * rather than provided as an argument on * the SD_NEW_WINDOW call * 2 This is a floating window * 4 Cursor wrapped on last display to this window * 8 D400-mode is on for this window * It is recommended that this field not be modified by COBOL programs. * * SD-WINDOW-RESERVED should always be filled with LOW-VALUES. * * SD-WINDOW-TIB-LINE-OFFSET specifies the number of additional lines * to add to the physical screen line number of all views belonging * to this window. This field may contain any value. A positive * number will cause all views for this window to be shifted downward * that many lines on the terminal screen, relative to the views' * normal positions. A negative number results in an upward shift. * The same effect could be produced by adding this number of lines * to the SD-VIEW-TIB-LINE in every view descriptor for this window. * * SD-WINDOW-TIB-COL-OFFSET specifies the number of additional columns * to add to the physical screen column number of all views belonging * to this window. This field may contain any value. A positive * number will cause all views for this window to be shifted to the * right that many columns on the terminal screen, relative to the * views' normal positions. A negative number results in a shift to * the left. The same effect could be produced by adding this number * of columns to the SD-VIEW-TIB-COL in every view descriptor for * this window. * * SD-WINDOW-VIB-LINE-OFFSET specifies the number of additional lines * to add to the virtual image line number of all views belonging to * this window. This field may contain any value. A positive number * will cause the contents of all views for this window to be scrolled * upward that many lines as shown on the terminal screen, relative to * the views' normal contents. A negative number results in a * downward scroll. The same effect could be produced by adding this * number of lines to the SD-VIEW-VIB-LINE in every view descriptor * for this window. * * SD-WINDOW-VIB-COL-OFFSET specifies the number of additional lines * to add to the virtual image column number of all views belonging * to this window. This field may contain any value. A positive * number will cause the contents of all views for this window to be * scrolled to the left that many columns as shown on the terminal * screen, relative to the views' normal contents. A negative number * results in a scroll to the right. The same effect could be * produced by adding this number of columns to the SD-VIEW-VIB-COL * in every view descriptor for this window. * * SD-WINDOW-VIEW-1 is the first view descriptor for this window. * It has the structure as described in SDVIEW.DEF, except that * there is no FILLER padding at the end. * * SD-WINDOW-LEFT-MARGIN contains the number of columns from the left * edge of the screen to the first column where the cursor can be * positioned. A value of zero means that there is no left margin. * * SD-WINDOW-RIGHT-MARGIN contains the number of columns from the left * edge of the screen to the last column where the cursor can be * positioned. A value of 161 means that there is no right margin. * * SD-WINDOW-OLD-LEFT-MARGIN and SD-WINDOW-OLD-RIGHT-MARGIN contain the * previous values of the above two fields whenever alternate margins * are in effect. * * SD-WINDOW-RESERVED-3 is reserved for future expansion, and its * contents are not used in revision 3.00 *** End of SDWINDOW.DEF *** .W${S $n$_pSD_GATE_CALL_DEFINES.SR p;Screen Demon rev 3.52.01 inner ring gate call definitions .TITLE SD_GATE_CALLS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; ;;; Copyright (C) 1988 - 1993, ;;; ;;; Threshold, Inc. ;;; ;;; Auburn, Alabama U.S.A. ;;; ;;; All rights reserved. ;;; ;;; ;;; ;;; SCREEN DEMON and its associated hot-key routines ;;; ;;; are proprietary property of Threshold, Inc. ;;; ;;; Except as provided for by the License Agreement; these ;;; ;;; shall not be copied, used, or disclosed for any purpose or ;;; ;;; reason in whole or in part, without the express written ;;; ;;; consent of: ;;; ;;; ;;; ;;; Threshold, Inc. ;;; ;;; 118 North Ross Street ;;; ;;; Auburn, Alabama 36830 ;;; ;;; ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; .NOLOC 1 ;List 'real' lines only .ESC ;Kill MASM's escape character ;Entry symbols defined by the Gate Calls module .ENT SD_INNER_RING_NAME ;Define the macro that declares the ring where the Screen Demon routines ; will be loaded .DUSR ?SD_RING_NUMBER = 6 ;the default .MACRO SD_RING_NUMBER .IFG .ARGCT .DUSR ?SD_RING_NUMBER = ^1 .ENDC % ;Define the macro that declares the pathname of the inner ring program ; that will contain the Screen Demon routines. .DUSR ?SD_RING_NAME_FLAG = 0 ;Name not initially defined .MACRO SD_RING_NAME .IFG .ARGCT .PART SD_SHARED_DATA_PART ALIGN=1,DATA,LONG,SHARED,NORM,GLOBAL,MESS SD_INNER_RING_NAME: .TXT "^1.PR" .DUSR ?SD_RING_NAME_FLAG = 1 ;Remember that a ; name was given .ENDC % ;Define a macro to define a gate for the specified routine. ; ; Call format: ; GATE routinename ; "routinename" is the actual entry point for the routine. .DUSR ?SD_MAX_GATES = 0 .MACRO GATE .IFG .ARGCT ;List routine as an entry symbol .ENT ^1 ;Define symbol for the routine as a gate reference .DUSR ^1 = (?SD_RING_NUMBER)S3!?SD_MAX_GATES ;Increment number of gates that have been defined .DUSR ?SD_MAX_GATES = ?SD_MAX_GATES+1 .ENDC % ;Define a macro to create a dummy slot in the gate array. ; Referencing this gate causes a dummy routine in the ; inner ring program to be called. ; ; Call format: ; DUMMY_GATE .MACRO DUMMY_GATE GATE DUMMY_GATE_CALL % ;Define the BEGIN_SD.CALLS macro referenced in the SD_CALLS.SR file ; (which will be assembled with this definition file) so that it ; does nothing, since no special initialization is needed. .MACRO BEGIN_SD.CALLS % ;Define the SD.CALL macro referenced in the SD_CALLS.SR file ; (which will be assembled with this definition file) so ; that it uses the GATE macro above to define a gate for ; a Screen Demon call. .MACRO SD.CALL GATE ^1 % ;Define the END_SD.CALLS macro referenced in the SD_CALLS.SR file ; (which will be assembled with this definition file) so that it ; leaves extra gate numbers available between the Screen Demon ; call gates and first user gates. This allows new Screen Demon ; call gates to be added in future revisions without disturbing ; user gate numbers. ; Also, define the inner ring program name as the default, ; if none was specified. .MACRO END_SD.CALLS .DO 32.-10. ;Was 32 in rev 3.00.03, but 10 new gates were added ; in rev 3.5 DUMMY_GATE .ENDC .IFE ?SD_RING_NAME_FLAG ;If no name has been given... .IFE (?SD_RING_NUMBER-6) SD_RING_NAME SCREEN_DEMON_RING_6 .ELSE .IFE (?SD_RING_NUMBER-5) SD_RING_NAME SCREEN_DEMON_RING_5 .ELSE .IFE (?SD_RING_NUMBER-4) SD_RING_NAME SCREEN_DEMON_RING_4 .ENDC .ENDC .ENDC .ENDC % ;The first gate is reserved GATE SD_SYSCALL_GATE ;Gate 0 is the special gate for the ; system call interceptor .EOF .W$G$n$_ؗSD_POSSESS_ICX_1.50.PAT ;The patches in this file activate the SCREEN DEMON routines. ; ;This file applies only to revision 1.50 of the Interactive COBOL ; interpreter running under AOS/VS, using revision 3.52.01 of SCREEN DEMON ; for Interactive COBOL. %PROGRAM ;Catch beginning of initialization routine so that SCREEN DEMON can be ; initialized also. INIT+2 [LLEF 2,SCRPK,0] [LJMP SD_ICX_INIT,1] ^+1 [] [] ^+1 [] [] ;This patch allows Screen Demon to know when ICX has an ACCEPT ; in progress, and if multiple console ?READ's are actually ; part of the same ACCEPT. RDFD [WSSVR 10] [LJMP SD_ICX_RDFD,1] ^+1 [] [] ^+1 [NLDAI -1,1] [] ^+1 [] [WADC 1,1] ;This patch causes the ICOBOL interpreter to return an ESCAPE KEY ; value of 99 if a console timeout occurs, instead of aborting ; with a "Runtime System Panic". SETDLM+1134 [NLDAI 67,1] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [SUB# 0,1,SZR] [] #SD_PATCH 0 [WSNEI 76,0] ^+1 0 [] ^+1 0 [WBR .+5] ^+1 0 [WSNEI 67,0] ^+1 0 [] ^+1 0 [ISZTS] ^+1 0 [WPOPJ] ^+1 0 [WPOP 1,1] ^+1 0 [XNLDA 1,10,2] ^+1 0 [] ^+1 0 [XWADD 1,4,2] ^+1 0 [] ^+1 0 [WSUB 0,0] ^+1 0 [WSTB 1,0] ^+1 0 [NLDAI 99.,0] ^+1 0 [] ^+1 0 [LJMP SETDLM+667,1] ^+1 0 [] ^+1 0 [] SD_PATCH #SD_PATCH\ #SD_PATCH+23\ ^+1 [] [] ;Intercept EXIT PROGRAM so that if the exiting ICOBOL program was called via ; a "hot" key, control can be returned to the original ACCEPT. A.XIT+3 [LJMP COBOL,0] [LJMP SD_ICX_EXIT_PROGRAM,1] ^+1 [] [] ^+1 [] [] ;Divert STOP RUN processing so that it can be forced to act like an ; EXIT PROGRAM if it is encountered in a program that was called ; from a hot key. OAT+232 A.STP-.\ SD_ICX_STOP_RUN_HANDLER-.\ ^+1 [] [] ;Divert CALL PROGRAM processing so that it can be forced to act like an ; EXIT PROGRAM if it is encountered in a program that was called from ; a hot key. CHNOP+13 [XJSR WUSIN,1] [LJMP SD_ICX_CALL_PROGRAM_HANDLER,1] ^+1 [] [] ^+1 [WBR CHNOP+151] [] ;Catch ICOBOL program loads so that the name of the new active program ; can be obtained and put into the SCREEN DEMON control file. ASPRG+62 [XJSR WRPGD,1] [LJMP SD_ICX_ASPRG,1] ^+1 [] [] ^+1 [WBR ASPRG+136] [] LDPRG+7 [XJSR RDPGD,1] [LJMP SD_ICX_LDPRG,1] ^+1 [] [] ^+1 [WBR LDPRG+35] [] ;Catch ICX Abort so that SCREEN DEMON can reset the window environment ; if control will return to LOGON. ; Note that the 341 in next line is actually ICX's STATUS address, ; which PATCH won't accept in the instruction format necessary. CSTOP+2 [LDA 0,341,0] [LJMP SD_ICX_CSTOP,1] ^+1 [ANDI 2,0] [] ^+1 [] [] CPERR+14 [WBR CSTOP+11] [WBR CSTOP+2] CSTOP+24 [LJSR WAIT,1] [LJMP SD_ICX_CSTOP_WAIT,1] ^+1 [] [] ^+1 [] [] ;Catch entry into the ICX Debugger so that debugger window can be activated DB0 [LDASB 3] [LPSHJ SD_ICX_ENTER_DEBUGGER,1] ^+1 [STASP 3] [] ^+1 [STAFP 3] [] SBUGG [LDASB 3] [LPSHJ SD_ICX_ENTER_DEBUGGER,1] ^+1 [STASP 3] [] ^+1 [STAFP 3] [] EBUGG [LDASB 3] [LPSHJ SD_ICX_ENTER_DEBUGGER,1] ^+1 [STASP 3] [] ^+1 [STAFP 3] [] ;Catch exit from the ICX Debugger so that debugger window can be deactivated DB0+122 [LDASB 3] [LPSHJ SD_ICX_LEAVE_DEBUGGER,1] ^+1 [STASP 3] [] ^+1 [STAFP 3] [] ;Intercept ICX's attempt to input a debugger command so that this can be done ; in a proper screenedit fashion. SCAN0+343 [XJSR RDFD,1] [LJSR SD_ICX_READ_DEBUGGER_COMMAND,1] ^+1 [] [] ^+1 [WBR SCAN0+323] [] ICX_DEBUG_RESTART_ADDR 0 SCAN0+303\ ^+1 0 [] ;********** Optional Patches ********** ;This optional patch causes Screen Demon to catch ICX-generated error ; messages displayed on line 24 so that the original contents of ; the line can be restored after showing the error message. INVAL+14 [XJSR DSPER,1] [LJMP SD_ICX_ERROR_INVAL,1] ^+1 [] [] ^+1 [XWLDA 0,-6,3] [] ^+1 [] [NOP] DSPER+104 [XJSR PWRLN,1] [LJMP SD_ICX_ERROR_MPRE,1] ^+1 [] [] ^+1 [WRTN] [] DSPER+115 [XJSR WRLN,1] [LJMP SD_ICX_ERROR_MMSG,1] ^+1 [] [] ^+1 [WRTN] [] SETDLM+1254 [XNLDA 0,2,2] {LJMP #SD_PATCH,1} ^+1 [] [] ^+1 [XNSTA 0,3,3] [] ^+1 [] [NOP] #SD_PATCH 0 [XNLDA 0,2,2] ^+1 0 [] ^+1 0 [XNSTA 0,3,3] ^+1 0 [] ^+1 0 [LJMP SETDLM+1272,1] ^+1 0 [] ^+1 0 [] SD_PATCH #SD_PATCH\ #SD_PATCH+7\ ^+1 [] [] ;The following patch is not absolutely necessary, but will improve performance ; if the advanced features of SCREEN DEMON are used. It eliminates the ; unnecessary ?LEFE system call that is always performed on returning from ; an assembler CALL routine. This does mean that any assembler routine ; that issues a ?LEFD must do its own ?LEFE before returning to ICX. CALAS+116 [XJSR @16000000006,0] [WBR .+4] ^+1 [] [NOP] ^+1 265 [NOP] ^+1 [WBR CALAS+134] [NOP] ;***** The remaining patches fix bugs in the ICX interpreter ***** ; Note that these patches are not the same ones supplied by Data General. ; The DG patches must also be applied to the new ICX interpreter. ;Fix effective address problems STBKA+21 [WADDI 2000,0] [WNADI 2000,0] ^+1 [] [] ^+1 [] [XNDSZ 2,3] ^+1 [DSZ 2,3] [] RDDD+5 [NLDAI 0,0] [WSUB 0,0] ^+1 [] [XNSTA 0,0,2] ^+1 [XNSTA 0,0,2] [] ^+1 [] [NLDAI 7,1] ^+1 [NLDAI 7,1] [] ^+1 [] [WBLM] ^+1 [WBLM] [LDAFP 3] ^+1 [LDAFP 3] [XWLDA 2,-4,3] ^+1 [XWLDA 2,-4,3] [] ^+1 [] [XLEF 3,2,3] ^+1 [LEF 3,2,3] [] GETSW+55 [BTO 2,1] [WBTO 2,1] RDSEC+410 [LDA 2,4,3] [XNLDA 2,4,3] ^+1 [ADD 1,2] [] ^+1 [NLDAI 0,1] [ADD 1,2] ^+1 [] [WSUB 1,1] CHNOP+76 [BTZ 2,1] [WBTZ 2,1] CHNOP+102 [BTO 2,1] [WBTO 2,1] ;Shutdown guard task is supposed to give the rest of the interpreter time ; to shut down by itself. However, parameters in AC0 and AC1 to its ; ?WDELAY system call are reversed, so it doesn't wait at all, which ; could result in corrupted MINISAM files. INITC+104 [NLDAI 0,0] [NLDAI 11610,0] ^+1 [] [] ^+1 [NLDAI 11610,1] [NLDAI 0,1] ^+1 [] [] ;CPLOG routine jumps into the middle of CHNOP routine, but stack frame size ; of CPLOG is zero, leaving CHNOP frame data vulnerable to subsequent ; subroutine calls. CPLOG+1 0 @(CHNOP+1) ;End of patches .W$Rb$n$_*SD_REGISTER.CLI comment SD_REGISTER.CLI Screen Demon rev 3.52.01 comment Copyright (C) 1993, Threshold, Inc., All Rights Reserved comment -------------------------------------------------------- push prompt pop searchlist [!searchlist]& [!nequal,[!path =],[!path [!edirectory [!pathname %0\%.cli]]]]& [!edirectory [!pathname %0\%.cli]]& [!end] directory/1=error/2=error :SCREEN_DEMON_3.52 X SD_REGISTER%0/quick% pop .W$Q-$n$QRSD_SL_CONFIG.SR ; SCREEN DEMON Configuration file ; ; revision 3.52.01 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; ;;; Copyright (C) 1988 - 1993, ;;; ;;; Threshold, Inc. ;;; ;;; Auburn, Alabama U.S.A. ;;; ;;; All rights reserved. ;;; ;;; ;;; ;;; SCREEN DEMON and its associated hot-key routines ;;; ;;; are proprietary property of Threshold, Inc. ;;; ;;; Except as provided for by the License Agreement; these ;;; ;;; shall not be copied, used, or disclosed for any purpose or ;;; ;;; reason in whole or in part, without the express written ;;; ;;; consent of: ;;; ;;; ;;; ;;; Threshold, Inc. ;;; ;;; 118 North Ross Street ;;; ;;; Auburn, Alabama 36830 ;;; ;;; ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;This file provides definitions for the key codes that require intervention ;by SCREEN DEMON after an input. Certain keys may be defined to cause ;a special action to occur, such as redrawing the screen. Then the ;input is restarted exactly as it was when the special key was pressed. ;A translation table may be defined so that keys that are normally ;inaccessible to COBOL (i.e., the arrow keys and C* function keys) can ;be translated to specified standard function key codes. ;Also, miscellaneous items such as the mail message string, time out values, ;note pad filename, and log file size are defined in this file. ;The following sections associates particular keys with specific routines ;that should be called whenever those keys are pressed. ;NOTE: A key that has a subroutine attached to it will never be ;seen by the host program, since the input statement where the key ;was pressed will be automatically restarted when the subroutine returns. ;Each hot key definition has the following form: ; HOT_KEY ; ,,,... ; ; ; ... ; MENU menu description <--- this line is optional ; DIRECTORY initial directory <--- this line is optional ; ACL access control list <--- this line is optional ; ; where: ; ; is one of the following special keys: ; TAB, NEW_LINE, ERASE_EOL, ERASE_PAGE, CR, ESC, DEL, ; HOME, UP, RIGHT, LEFT, DOWN, ; SHIFT_HOME, SHIFT_UP, SHIFT_RIGHT, SHIFT_LEFT, SHIFT_DOWN, ; C1, C2, C3, C4, SHIFT_C1, SHIFT_C2, SHIFT_C3, SHIFT_C4, ; CMD_SHIFT_PRINT, CMD_PRINT ; F1, F2, ..., F14, F15, ; SHIFT_F1, SHIFT_F2, ..., SHIFT_F14, SHIFT_F15, ; CTRL_F1, CTRL_F2, ..., CTRL_F14, CTRL_F15, ; CTRL_SHIFT_F1, CTRL_SHIFT_F2, ..., CTRL_SHIFT_F15, ; ; any single printable character after a quote: ; "A, "a, "*, ..., ; ; or a decimal number (1-127) representing a control character ; or printable character: ; 1 (CTRL-A), 18 (CTRL-R), 64 ("@), ... ; ; ; and ,,... are one of the following: ; LINKED Entry name ; For linked in assembler, C, PL/1, or FORTRAN sub-programs. ; ; COBOL32 Entry name ; For linked in VS/COBOL sub-programs. ; ; ICOBOL Program name ; Use only for an ICX linked with SCREEN DEMON. ; ; PR Name, arg, arg, ... ; The named program will be PROC'ed with the given ; arguments. ; ; CLI Macro name, arg, arg, ... ; CLI will be PROC'ed to execute the given macro ; with the specified arguments. ; ; LINKED_IN_ROOT Name ; For linked-in assembler, VS/COBOL, C, PL/1, ; or FORTRAN sub-programs. ; Use only when the shared library (SL) version of ; SCREEN DEMON is used. At execution time the ; SCREEN DEMON hot key handler will search for ; the specified name in the list of hot key definitions ; that were linked into the root program. A root ; linked hot key definition may be created by ; running the MAKE_SD_HKD macro. ; ; ; 's are from the following list: ; ; SAVE_SCREEN ; If the sub-routine will not make SCREEN DEMON ; calls to save and restore the screen, then include ; this flag. ; ; REDRAW ; or REDRAW IMMEDIATE ; Set if the hot key routine is PR or CLI and it will ; display characters on the screen. SCREEN DEMON ; will not know about the displayed characters so ; the screen must be redrawn. For CLI type hot keys, ; a "Press Any Key To Continue..." message will appear ; on return from the hot key call if REDRAW is ; specified. To suppress this message, use the ; IMMEDIATE option. ; ; CANCEL ; Only for ICOBOL type hot key programs. When the ; hot key is pressed, SCREEN DEMON simulates a ; CALL "program" (not a CALL PROGRAM). If file ; statuses and variables must be in their initial ; state when the program executes, then include this ; flag. ; ; ; The optional MENU clause will place an entry for the hot key ; on the Screen Demon main menu. The description shown on the ; menu will be the text specified after the keyword MENU. ; NOTE: To add a hot key to the main menu without actually ; assigning it to a particular key, do not specify ; a key name on the HOT_KEY clause. For example: ; HOT_KEY ; LINKED SD_WP_SHELL ; MENU WordPerfect Office Shell ; ; ; The optional DIRECTORY clause allows the initial working directory ; for the hot key process to be specified. This clause effects ; only PR and CLI type hot keys. If no DIRECTORY clause is supplied ; in a hot key definition, the hot key process will start in the ; current working directory. ; ; ; The optional ACL clause allows access to the hot key to be ; restricted. Following the ACL keyword should be a list of ; usernames and/or username templates, similar to an AOS/VS ; file ACL. Like an AOS/VS file ACL, `*' matches any one ; character, and `+' matches any number of characters, including ; zero. However, unlike an AOS/VS file ACL, the FIRST character ; of an individual template may be an exclamation mark (!), which ; indicates that if a match occurs on that template, access is to ; be DENIED, rather than permitted. Also, there are no privilege ; letters following each template. Whenever a particular user ; attempts to access a hot key that has an ACL (either via the ; menu or assigned key), Screen Demon will scan the ACL looking ; for a match for the current username. If no template in the list ; matches the current username, Screen Demon will silently deny the ; user access to the hot key. If a match is found, then if the ; template started with `!', access is denied; otherwise, the ; hot key routine will be called. ; ; NOTE: If there is no ACL clause specified in a particular ; hot key definition, then all users will be able to ; access that hot key routine. ; ; For example, suppose the following ACL clause was specified ; as part of a hot key definition: ; ACL FRED !MARTHA MAR+ ; This indicates that FRED may access the hot key, and anyone ; whose username begins with the letters "MAR" except MARTHA ; can access the hot key. All other users will be denied access. ; ; As another example, the ACL clause ; ACL !ACCT+ + ; means that everyone except those whose usernames begin with ; the letters "ACCT" can access the associated hot key routine. BEGIN_HOT_KEYS ;This line (and the END_HOT_KEYS below) must exist ; even if there are no hot keys defined. ; Assign the SCREEN DEMON pop-up main menu to function key 11 (F11) HOT_KEY F11 LINKED SD_MAIN_MENU ; Redraw the Screen when the Erase Page key is pressed HOT_KEY ERASE_PAGE LINKED SD_REDRAW ;Word address of Redraw routine MENU Redraw Screen ; On CMD PRINT or CMD SHIFT PRINT, call the Print Screen program HOT_KEY CMD_PRINT, CMD_SHIFT_PRINT LINKED SDSCREENPR INT ;this is a C program, not COBOL32 MENU Print Screen ; On F14, call the Calculator HOT_KEY F14 PR SDCALCULATOR MENU Calculator ; On F12, Read Mail ; You can specify SD_READ_MAIL instead of SD_MAIL_INBOX if you ; want new messages to be displayed automatically when the hot ; key is pressed. HOT_KEY F12 LINKED SD_MAIL_INBOX MENU Read Mail ; On Shift F12, Send Mail HOT_KEY SHIFT_F12 LINKED SD_INPUT_MAIL ;Word address of Input Mail Routine MENU Send Mail ; On F13, call the Notepad HOT_KEY F13 LINKED SD_NOTEPAD ;Word address of Notepad routine MENU Notepad ; On F15, call the CLI Interface HOT_KEY F15 LINKED SD_CLI_INTERFACE ;Word address of CLI Interface routine MENU Call CLI ; On Shift F11, call the SCREEN DEMON Command routine (sets Turbo level) HOT_KEY SHIFT_F11 LINKED SD_COMMAND ;Word address of Command routine MENU Turbo On/Off ; On Shift F14, call the Calendar program HOT_KEY SHIFT_F14 PR SDCALENDAR MENU Calendar ;Add more hot key routine definitions here as required... END_HOT_KEYS ;The following section is used to translate entered key codes to ;different ones. BEGIN_TRANSLATIONS ;This line is required even if there are no ;key translations specified ;For each key that is to be translated to another key, enter a line ;of the following format: ; ; TRANSLATE , ; ; where both key codes are of the form described for ; under the HOT KEY section above. ; ;For example, the following two lines (if the semicolons were removed ;to uncomment them) will translate the up and down arrow keys to F3 and F2, ;respectively: ; TRANSLATE UP,F3 ; TRANSLATE DOWN,F2 ;Insert key translations here END_TRANSLATIONS ;This line is required even if there are no ;key translations specified ;Sometimes it may be desirable to input a particular key to an application, ; even if that key has been assigned to be a hot key or is normally ; translated to appear as another key value. The following definition ; specifies an "escape" key that, if pressed, suppresses hot key processing ; and/or translation of the next key pressed. To pass the chosen "escape" ; key to the application, press it twice. If no "escape" key is desired, ; specify a value of -1. Note that the "escape" key can never be a hot key ; or be translated. HOT_ESCAPE_KEY: CTRL_SHIFT_F15 ;The standard Screen Demon hot key routines accept as the normal ; exit key. Users may be accustomed to pressing a different key to ; exit in their application programs; for example, CEO uses F11 as ; the Cancel/Exit key. To minimize user confusion, it is possible ; to designate an alternate exit key for Screen Demon hot key routines ; that will act the same as . This alternate exit key can be set ; to the same key that the user would press to exit their application ; programs. If no such alternate exit key is desired, set the answer ; to the following question to -1; otherwise, specify the key name: SD_ALTERNATE_EXIT_KEY? -1 ;none by default ;String that will be displayed whenever an input is completed to provide ; immediate feedback to the operator that the input operation is over. ; The next flush will undo whatever this string does to the screen. ; Special screen control characters can be included in the string by ; enclosing them inside <>. Predefined control character names available: ; BLINK_ON, BLINK_OFF, UNDER_ON, UNDER_OFF, DIM_ON, DIM_OFF ; ; If no such feedback is desired, set the INPUT_FEEDBACK_STRING_SIZE below ; to zero. Overall performance will be somewhat slower if the feedback ; string is output after inputs, but may make the system APPEAR faster ; to an operator. INPUT_FEEDBACK_STRING: .TXT "<13>" ;perhaps a CR ;Number of characters in the above string INPUT_FEEDBACK_STRING_SIZE: 0 ;default is no feedback string ;String that will be displayed whenever the user has unread mail. ; Special screen control characters can be included in the string by ; enclosing them inside <>. Predefined control character names available: ; BLINK_ON, BLINK_OFF, UNDER_ON, UNDER_OFF, DIM_ON, DIM_OFF ; Default is a bright, blinking `Mail' in the top right corner of the screen. MAIL_INDICATOR: .TXT "Mail" ;Number of characters in the above string MAIL_INDICATOR_SIZE: 5 ;Location and size of region of screen occupied by above mail indicator string MAIL_VIEW_LINE: 1 MAIL_VIEW_COLUMN: 77 MAIL_VIEW_HEIGHT: 1 MAIL_VIEW_WIDTH: 4 ;String that will be displayed whenever a terminal is being viewed remotely ; through the SD_SPY program. Special screen control characters can be ; included in the string by enclosing them inside <>. Predefined control ; character names available: ; BLINK_ON, BLINK_OFF, UNDER_ON, UNDER_OFF, DIM_ON, DIM_OFF ; Default is no indicator. SD_REMOTE_VIEW_INDICATOR: .TXT "Remote View" ;Number of characters in the above string, or zero if no Remote View ; indicator is desired SD_REMOTE_VIEW_INDICATOR_SIZE: 0 ;set this to 12 ; to enable indicator ; string defined above ;Location and size of region of screen occupied by above indicator string SD_REMOTE_VIEW_INDICATOR_LINE: 1 SD_REMOTE_VIEW_INDICATOR_COLUMN: 1 SD_REMOTE_VIEW_INDICATOR_HEIGHT: 1 SD_REMOTE_VIEW_INDICATOR_WIDTH: 11 ;String that will be displayed whenever terminal inputs are being handled ; remotely through the SD_SPY program. Special screen control characters ; can be included in the string by enclosing them inside <>. Predefined ; control character names available: ; BLINK_ON, BLINK_OFF, UNDER_ON, UNDER_OFF, DIM_ON, DIM_OFF ; Default is a bright, blinking `Remote Input' in the top left corner ; of the screen. SD_REMOTE_INPUT_INDICATOR: .TXT "Remote Input" ;Number of characters in the above string SD_REMOTE_INPUT_INDICATOR_SIZE: 13 ;Location and size of region of screen occupied by above indicator string SD_REMOTE_INPUT_INDICATOR_LINE: 1 SD_REMOTE_INPUT_INDICATOR_COLUMN: 1 SD_REMOTE_INPUT_INDICATOR_HEIGHT: 1 SD_REMOTE_INPUT_INDICATOR_WIDTH: 12 ;If the CEO interface is to be used, the following two fields allow the ; location of the CEO mail status indicator to be specified. ; At runtime, the optional hot key routine SD_CEO_STATUS_MOVE (see ; the CEO interface documentation) can be used to move the status ; indicator to a different position as needed. These two fields ; are ignored if the CEO interface is not installed. CEO_MAIL_VIEW_LINE: 1 ;Normal default is first line CEO_MAIL_VIEW_COLUMN: 1 ; and first column ;If the WordPerfect Library or Office interface is to be used, the ; following field allows the letter code for the "Go To CLI" ; selection on the Shell menu to be specified. SCREEN DEMON needs ; to know this in order for the SD_CLI_INTERFACE hot key to work ; when running under WP Shell. SD_WP_SHELL_CLI_LETTER: .TXT "G" ;Amount of time in seconds that may elapse during a single input before ;the list of 'periodic calls' is executed. The input is restarted after ;those functions are called. The SCREEN DEMON mail check and CEO interface ;mail check are examples of these periodic calls. PERIODIC_INTERVAL? 60 ;once per minute ;Amount of time in seconds that may elapse during a single input before ;triggering the SCREEN DEMON screen saver. This routine will completely ;blank the screen, including the cursor, to avoid burn-in. Pressing any ;key will restore the original screen contents. Set this field to -1 ;to disable the screen saver. SCREEN_SAVER_INTERVAL? -1 ;default is no screen saver ;Amount of time in seconds that may elapse while the Screen Demon Main Menu ;is waiting for a response before automatically exiting the menu. ; ;Use a value of -1 to never terminate the Main Menu because of inactivity. MAIN_MENU_TIMEOUT_INTERVAL? -1 ;default is no timeout ;Amount of time in seconds that may elapse for a single input before ;the user is terminated (via orderly shutdown: files will be closed). ; ;Use a value of -1 to disable automatic logo @ ff so that users will ; never be terminated because of inactivity. ; ;Note that specific programs can be protected against automatic logoff ; if desired. See Special Programs List below. LOGOFF_INTERVAL? -1 ;Default is to never terminate ; inactive users ;An optional time range during the day can be specified during which ; termination due to inactivity will not occur. Before and after ; this period, however, the time value specified in LOGOFF_INTERVAL ; above will apply. By default, logoff is permitted at any time, ; assuming LOGOFF_INTERVAL above is not -1. ; ; To specify a no-logoff time range, indicate the beginning and ending ; times (24-hour clock) of the protected period as follows: ; LOGOFF_OK_BEFORE hour,minute ; LOGOFF_OK_AFTER hour,minute ; ; For example, assuming that LOGOFF_INTERVAL contained an actual value, ; such as (15*60) to indicate 15 minutes, then the following statements ; would disable automatic logoffs between 8:00 am and 5:30 pm: ; LOGOFF_OK_BEFORE 8,00 ; LOGOFF_OK_AFTER 17,30 ; After 5:30 pm, users inactive for more than 15 minutes are to be logged ; off; the same applies to users inactive before 8:00 am. ;Specify optional no-logoff time period below: LOGOFF_OK_BEFORE 0,00 ;Default is LOGOFF_OK_AFTER 0,00 ; no protected period ;An optional list of users can be specified who are to be considered ; immune from automatic logoff. This list can contain exact usernames, ; username templates, or both. ; ; The NO_LOGOFF_USERS command is used to specify the list. There may ; be up to 25 usernames per NO_LOGOFF_USERS command, and there may be ; any number of NO_LOGOFF_USERS commands, provided each begins on a ; separate line. ; ; For example, ; ; NO_LOGOFF_USERS FRED MAR+ ; NO_LOGOFF_USERS ACCT+ ; ; indicates that all users whose names begin either with the letters MAR ; or ACCT should never be terminated due to inactivity, nor should the ; particular user named FRED. All other users can be terminated if ; their terminals become inactive, provided this is not prevented by ; other considerations, such as the logoff time range specified above, ; or the NO_LOGOFF special program declaration described later. ;Specify any users who should be immune from automatic logoff termination NO_LOGOFF_USERS ;no immune users by default ;The following question specifies the default value for the Turbo ; display setting. Turbo display offers two types of optimization ; of screen output: ; (1) System Call Buffering - Screen output is held until an input ; occurs, or until an specified amount of time has elapsed, ; as set with the FLUSH_INTERVAL? question below. ; (2) Discarding Redundant Characters - A given character will not ; be sent to the terminal if the screen position where it ; is to be displayed already shows that character. ; ; The allowable values for the Turbo display setting indicate what ; level of optimization is desired: ; ; Value Optimization ; ------- --------------- ; FULL Levels 1 and 2 ; PARTIAL Level 2 only ; this is equivalent to FULL with ; FLUSH_INTERVAL? set to zero, and ; is not recommended because it requires ; far more CPU resources ; OFF no optimization ; ON same as FULL ; ;Select an answer from the above list for the following question: DEFAULT_TURBO_DISPLAY_SETTING? FULL ;When running in FULL Turbo display mode, program screen output is normally ; held until the next input occurs, at which time the terminal screen ; is updated. Programs with many displays between inputs, such as a ; report program displaying a record count as it runs, need the screen ; updated more frequently. For this purpose, Screen Demon contains an ; optional Flush Timer which will force a screen update to occur if a ; specified amount of time has elapsed since the last flush, even if ; no input has occurred. ; ; The following field specifies the maximum time in seconds between ; screen updates. ; Use a value of -1 to disable the flush timer; this is equivalent ; to Full Turbo in rev 2 Screen Demon. ; Use a value of 0 to prevent buffering of program screen output; ; this is equivalent to Partial Turbo in rev 2 Screen Demon. FLUSH_INTERVAL? 10 ;flush at least once every ten seconds ;If Turbo mode is on, screen output is held until an input occurs, or ; the FLUSH_INTERVAL expires. If the screen scrolls, it may be ; desirable to update the screen at that time, rather than waiting ; for one of the other events to trigger a flush. The following ; field specifies the maximum number of scroll ups that can be ; held before forcing a flush. Set this field to -1 to prevent ; automatic flushing on scroll operations. MAX_SCROLL_BEFORE_FLUSH: 5 ;If the screen scrolls 5 lines, ; force a flush ;Miscellaneous options, answers are either YES or NO ;When Turbo mode is on, should SCREEN DEMON actually clear the screen ;whenever the host program outputs a clear screen command? ; ; Doing so is usually more efficient, and may be preferable to the ; operators. However, if the host program tends to blank the screen ; and repaint the same text a lot, it would probably be more efficient ; and would look better if SCREEN DEMON suppressed the actual clear ; screen command. PHYSICAL_SCREEN_CLEAR? YES ;Should SCREEN DEMON automatically redraw the screen whenever the ;host program returns from a call to a nonSCREEN DEMON program? ; ; When the host program calls out to a nonSCREEN DEMON program and then ; returns, SCREEN DEMON has no way to know what the nonSCREEN DEMON ; program did to the terminal screen. In order to resynchronize the ; screen with SCREEN DEMON's internal picture, a redraw is necessary. ; By default, this happens at the next flush after returning from ; the call. However, if the called program displayed some information ; that the user needs to see, an immediate redraw will clear this ; information before it can be read. In such cases, it might be ; preferable to set the following option to NO to inhibit the automatic ; redraw, and put code into the host program to call SD_REDRAW when a ; screen redraw is appropriate. Another case where it might be better ; to do the redraw under program control is when the called program ; doesn't actually affect the screen, and so a redraw is not really ; necessary. AUTO_REDRAW_AFTER_NONSD_CALL? YES ;Should SCREEN DEMON use the Line Drawing character set for boxes and ;lines on terminals that have this capability? ; ; The SCREEN DEMON calls SD_DRAW_BOX, SD_DRAW_HLINE, and SD_DRAW_VLINE ; allow the programmer to easily draw boxes and lines on the terminal. ; Boxes and lines created using the Line Drawing character set ; generally look better than the default boxes and lines created ; by using reverse video and underline screen attributes. However, ; there are some differences in the way boxes and lines must be ; built if the Line Drawing character set is used that could cause ; some incompatibilities with existing programs. The main difference ; is that horizontal lines built with Line Draw characters actually ; take up a character position, but horizontal lines created by ; underlining characters already present do not. If this is a problem, ; set the answer for one or both of the following two questions to NO. USE_LINE_DRAW_CHARSET_FOR_BOXES? YES USE_LINE_DRAW_CHARSET_FOR_LINES? YES ;Should Screen Demon turn off the /NRM characteristic so that SENDs ;are not blocked? ; ; Some programs, such as those compiled with VS/COBOL, set the ; /NRM characteristic to protect their screens. However, blocking ; SENDs altogether is not the best solution because there are ; cases when a SEND is the only way of notifying a user of some ; event. Since Screen Demon provides a Redraw Screen capability, ; an application program's screen can easily be restored after a ; SEND message appears on the terminal. Consequently, it is not `  ; necessary for a program to set the /NRM characteristic. Answering ; this question YES tells Screen Demon to keep this characteristic ; off, even if the host program tries to turn it on. FORCE_NRM_CHARACTERISTIC_OFF? YES ;Should SCREEN DEMON trim trailing spaces and underscore characters ;from the initial contents of input fields, thus permitting ^A, ^E, ;and DELETE screenedit functions to work properly? ; ; Normally, COBOL input fields start off filled with underscore ; or space characters. This means that the "go to end of field" ; and "insert" screenedit functions will not work as expected, ; since PMGR treats the trailing spaces and/or underscores as ; real characters. Also, when DEL is used, trailing underscores ; will shift to the left, shortening the apparent length of the ; input area. Screen Demon can optionally trim these characters ; when the input begins, so that PMGR doesn't know about them. ; The characters will still be displayed before the input begins ; as always. The primary drawback is that when an input restarts, ; such as after a timeout or hot key, any trailing spaces or ; underscores will vanish, which may confuse some operators. ; ; NOTE: A bug in VS/COBOL rev 3.20 and below, and in rev 3.71, ; prevents function keys from working correctly if the ; underscores are removed, so this question MUST be answered ; NO for these revisions of VS/COBOL. The default for this ; question is NO for that reason. TRIM_SPACE_UNDERSCORE_ON_INPUT? NO ;Should SCREEN DEMON ignore console interrupts (^C^A, ^C^B, and ^C^E)? ; ; One of SCREEN DEMON's tasks catches console interrupts. By default, ; it handles the interrupts the same way that the host program would ; if SCREEN DEMON were not present. If the host program contains code ; to watch for console interrupts, SCREEN DEMON will pass the interrupt ; to the host program; otherwise, SCREEN DEMON will terminate the ; process gracefully. ; ; A YES answer to the following question will cause SCREEN DEMON ; to discard any console interrupt events. They will not be passed ; to the host program, and SCREEN DEMON will not terminate the process. ; This is an easy way to prevent operators from aborting out of ; programs that cannot defend themselves. IGNORE_CONSOLE_INTERRUPTS? NO ;How should SCREEN DEMON compensate for the ^C^x character sequence ; echoed whenever the operator presses a console interrupt? ; ; The ^C^x sequence normally echoed whenever a console interrupt ; is pressed is not visible to SCREEN DEMON. Consequently, SCREEN ; DEMON does not know where those echoed characters appeared on the ; screen. By default, SCREEN DEMON will update its image buffers ; to reflect the ^C^x characters by assuming that they are located ; immediately before the cursor position. However, if a display ; was occurring at the time, it is possible for this assumption to ; be incorrect. In order to definitely resynchronize the screen ; with SCREEN DEMON's internal picture, a redraw is necessary, but ; this can be annoying if done automatically; the Redraw hot key ; is available to force a redraw only when necessary. ; ; Select one of the following choices to answer this question: ; INTR_ERASE Immediately space over the ^C^x, assuming that ; the cursor is just past the sequence, leaving ; the cursor at its original position as if ^C^x ; had never been displayed. ; ; INTR_REDRAW Redraw the screen at the next flush to remove ; the ^C^x. This was the method used by rev 2.01.05 ; ; INTR_ECHO Update the ^C^x into the internal image buffers, ; assuming that the cursor is just past the sequence, ; leaving the cursor past the sequence. ; ; INTR_NOTHING Ignore the ^C^x sequence. ; CONSOLE_INTERRUPT_HANDLING? INTR_ECHO ;NOTE: The COBOL versions of the Print Screen hot key routine do not ; use the answers to the following two SDSCREENPRINT... questions, ; but the LINKED SDSCREENPRINT version does. ;Should the SCREEN DEMON Print Screen hot key routine ask the user ;for an output filename? ; ; Answer this question YES to allow the operator to specify a ; print destination for the screen image, with the default ; shown below as SDSCREENPRINT_OUTPUT_NAME. If this question ; is answered NO, then the operator will not be asked for an ; output filename, and the screen image will be printed to the ; default output filename as specified below. SDSCREENPRINT_ASK_OUTPUT_NAME? YES ;Default output filename for the SCREEN DEMON Print Screen hot key routine: SDSCREENPRINT_OUTPUT_NAME: .TXT "@LPT" ;Should the SCREEN DEMON Read Mail hot key routine ask the user ;for an output filename when the Print option is selected? ; ; Answer this question YES to allow the operator to specify a ; print destination for the printed message, with the default ; shown below as SD_READ_MAIL_OUTPUT_NAME. If this question ; is answered NO, then the operator will not be asked for an ; output filename, and the message will be printed to the ; default output filename as specified below. SD_READ_MAIL_ASK_OUTPUT_NAME? YES ;Default output filename for the SCREEN DEMON Read Mail hot key routine ; when the Print option is selected: SD_READ_MAIL_OUTPUT_NAME: .TXT "@LPT" ;Should SCREEN DEMON mail messages be deleted automatically after ;the operator has read them? ; ; Answer this question YES to force mail messages to be deleted ; automatically after the operator has acknowledged reading them. ; If this question is answered NO, previously read messages will ; remain in a user's inbox until deleted by the user. SD_READ_MAIL_AUTO_DELETE? NO ;Should SCREEN DEMON mail messages always be delivered immediately, ;whether or not they are marked as Urgent? ; ; Answer this question YES to force mail messages to appear ; immediately on the recipient's screen, even messages that ; are not Urgent. If this question is answered NO, only ; Urgent messages will appear immediately. Normal messages ; will simply trigger the Mail Indicator; the user must press ; the Read Mail hot key to view these messages. SD_IMMEDIATE_MAIL_DELIVERY? NO ;Declare the default sizes returned by the SD_GET_IMAGE and ; SD_GET_IMAGE_BELOW_FLOAT calls. ; ; Previous revisions of Screen Demon returned a 24 line by 80 column ; image, followed by 4 more bytes containing the cursor offset and ; global attribute settings. For rev 3.00, the internal screen images ; are 24x162, and there are a number of additional fields following the ; image. Existing programs will be expecting the smaller image style ; if they are simply relinked with rev 3.00 Screen Demon. However, if ; a program is recompiled, it may or may not want the older image format. ; If the program defines its image buffer using the SDIMAGE.DEF or ; SCREEN_DEMON.H include files, then a recompile without source code ; changes results in the program expecting the new larger image format. ; However, if the image definition is hard-coded, then the program will ; still expect the older image format even after recompilation. Thus, ; this configuration file option is provided to allow the system ; manager to decide which is the most appropriate default behavior for ; the Get Image calls. Note that a specific Get Image call can declare ; the actual size of image buffer it wants; this overrides the default ; setting defined here. ;Default number of lines in returned image buffers SD_GET_IMAGE_DEFAULT_LINES? 24 ;Default number of columns in returned image buffers ; For rev 3.00 compatibility, specify 162 ; For rev 2.01 (and before) compatibility, specify 80 ; SD_GET_IMAGE_DEFAULT_COLUMNS? 162 ;Default size in bytes of additional parameters returned ; following the image characters and attributes ; For rev 3.00 compatibility, specify 14 ; For rev 2.01 (and before) compatibility, specify 4 ; ;Default additional parameters return size in bytes SD_GET_IMAGE_DEFAULT_PARAMS? 14 ; The functional ity of the SD_RETURN_INPUT call was enhanced in ; revision 3.51. In previous revisions, this call functioned only ; in a program or subroutine invoked by pressing a hot key; the string ; of characters specified with this call was returned to the input field ; where the hot key was pressed. ; ; Beginning with revision 3.51, the specified string will be placed in the ; next encountered input field, whether or not a hot key is active. In ; addition, the string can contain multiple fields, separated by delimiters. ; At an input, the next chunk of the return input string will be loaded into ; the field as if the operator had entered it. If a delimiter follows the ; chunk, the input will be terminated as if the operator had pressed that ; key. This process is repeated at subsequent inputs until the contents of ; the return input string have been exhausted. ; ; Since this new functionality is potentially incompatible with that of ; older revisions, a configuration option is provided to allow the desired ; mode of operation to be specified. The new method will be incorrect in ; the situation where a hot key program calls SD_RETURN_INPUT, but then ; does an input before exiting. With the old method, this input would be ; unaffected by the SD_RETURN_INPUT call. With the new method, the returned ; characters would appear at that input, rather than the input field where ; the hot key was pressed. If you have programs that exhibit this behavior, ; you will need to modify them or set the following configuration option to ; "hot key only" mode. Otherwise, the new method should be satifactory. ; ; Choose the answer to the following question from this list of options: ; RI_HOT_ONLY SD_RETURN_INPUT valid only in hot key ; routines; the returned string is loaded ; into the field where the hot key was pressed. ; (Pre-revision 3.51 functionality) ; ; RI_ANY_INPUT SD_RETURN_INPUT works at any time; the ; returned string is loaded into the next ; encountered input field(s), and multiple ; input fields can be returned. ; (revision 3.51 functionality) ; ; Should the SD_RETURN_INPUT call function only to return input information ; from a hot key call to the input field where the hot key was pressed, or ; should return strings declared with this call be available at the next ; encountered input field(s)? SD_RETURN_INPUT_MODE? RI_ANY_INPUT ;default is new method ;If multiple character sets are to be used by programs running under ; SCREEN DEMON, a character set palette must be specified that ; lists the particular character sets to be used. SCREEN DEMON ; supports up to 8 simultaneously displayed character sets. ; Note that only some DG terminals support multiple character sets. ; ; Specify the character sets that will be invoked by listing their ; two-character codes, which can be found in the terminal's programming ; manual. The first code in the list should be the standard primary ; character set to be used (the code 00 is suggested, which is the set ; of the keyboard attached to the terminal). The order of the remaining ; codes is unimportant. If less than eight codes are listed, the default ; settings will be used for the unspecified palette slots. ; ; For example, (this is also the default palette) ; ; CHAR_SET_PALETTE 00,10,11,0>,01,02,13,20 ; ; specifies that the following character sets are available: ; '00' char set #0 (primary) is Keyboard set ; '10' char set #1 is Word Processing set ; '11' char set #2 is Line Drawing set ; '0>' char set #3 is DG International set ; '01' char set #4 is U.S. set ; '02' char set #5 is United Kingdom set ; '13' char set #6 is DG Special Graphics set ; '20' char set #7 is DLL set 0 ;Indicate your desired character set palette here: CHAR_SET_PALETTE 00,10,11,0>,01,02,13,20 ;Which of the sets listed in the palette above should be the default ; primary set? DEFAULT_PRIMARY_CHAR_SET? 00 ;Which of the sets listed in the palette above should be the default ; alternate set? DEFAULT_ALTERNATE_CHAR_SET? 10 ;For terminals that support selectable 7/8 bit mode, what should be ; the default character length? ; ; Most Data General terminals that support multiple character sets ; also support either 7 or 8 bit mode. When in 7-bit mode, the high ; bit is a parity bit, so the terminal only looks at the lower 7 bits ; when determining what character to display, and the character is ; always selected from the currently active character set. When in ; 8-bit mode, all bits are significant. If the high bit for a received ; character is set, the terminal will display the character from the ; current alternate character set even if the primary set is active ; at the time. ; ; This question allows the default setting for this parameter to be ; specified. Screen Demon will force the terminal into this state ; on start-up. ; ; This question should be answered with a value of either 7 or 8. DEFAULT_7_OR_8_BIT_MODE? 7 ;For terminals that support selectable keyboard language, what should be ; the default setting? ; ; When the terminal is operating in 7-bit mode (see above), this ; parameter is ignored, and the keyboard language matches the ; keyboard hardware. When in 8-bit mode, the keyboard language ; can also be set to be the US ASCII character set for 7-bit ; characters, and the DG International character set for 8-bit ; characters. This may be necessary if the SPCL key is to be ; used to generate particular 8-bit characters. ; ; Select one of the following choices to answer this question: ; KEYBD_LANG_HARDWARE Matches the keyboard hardware ; KEYBD_LANG_INTERNATIONAL US ASCII in K0, DG International in K1 DEFAULT_KEYBOARD_LANGUAGE? KEYBD_LANG_HARDWARE ;For terminals that support variable cursor types, what should be ; the default cursor type? ; ; The more advanced Data General terminals support different cursor ; types. On newer terminals, the default cursor type can be adjusted ; in the set-up screens. There is also a local cursor type key on ; the keyboard. Screen Demon cannot determine the current cursor type ; of the terminal, so it must force the cursor to a particular type ; when a Redraw occurs. The desired default cursor type can be ; indicated here. ; ; Select one of the following choices to answer this question: ; CURSOR_INVISIBLE No cursor ; ; CURSOR_BLINK_UNDERSCORE Cursor is a blinking underscore ; ; CURSOR_BLOCK Cursor is a reverse video block ; ; CURSOR_BLINK_BLOCK Cursor is a blinking reverse ; video block ; ; CURSOR_UNDERSCORE Cursor is a nonblinking underscore ; (not supported on older terminals) ; DEFAULT_CURSOR_TYPE? CURSOR_BLOCK ;For terminals that support adjustable scroll rates, what should be ; the default scroll rate? ; ; The more advanced Data General terminals support different scroll ; rates. On newer terminals, the default scroll rate can be adjusted ; in the set-up screens. There is also a local scroll rate key on ; the keyboard. Screen Demon cannot determine the current scroll rate ; of the terminal, so it must force the scroll rate to a particular ; setting when a Redraw occurs. The desired default scroll rate can be ; indicated here. ; ; Select one of the following choices to answer this question: ; SCROLL_JUMP As fast as new lines are received ; ; SCROLL_SMOOTH_SLOW Smooth scroll, 5 lines per second ; ; SCROLL_SMOOTH_FAST Smooth scroll, 10 lines per second ; DEFAULT_SCROLL_RATE? SCROLL_JUMP ;Initial command string for SD_CLI_INTERFACE hot key routine: ; (can be changed at runtime using the SD_SET_CLI_INIT_CMD call) SD_DEFAULT_CLI_INIT_CMD: .TXT "PREFIX,SCREEN,DEMON,CLI[!ASC 251]" ;Pathname of the CLI program to be called for CLI interface. ; If CLI32 is available, you may wish to change the pathname ; below to call that instead. Alternatively, you may want ; to call SD_CLI, if you have created a Screen Demon possessed ; version of CLI32. SD_CLI_PATHNAME: .TXT ":CLI" ;Screen Demon can maintain a list of the most recent ly entered ; input strings. This is similar to the HISTORY feature in CLI32, ; but Screen Demon's input history works at all input fields in ; any program. A separate input history is kept for each process. ; ; The input history is accessed via two hot key routines, which ; can be assigned to any two different keys on the keyboard. ; The hot key routine SD_GET_PREV_FROM_INPUT_HISTORY moves backward ; in the history list, displaying the input strings in the current ; input field each time the hot key is pressed. The hot key routine ; SD_GET_NEXT_FROM_INPUT_HISTORY works the same way, except that it ; moves forward through the history list. Both routines wrap around ; to the other end of the list when necessary. ; ; To maintain the input history, a buffer must be allocated where ; the input strings can be stored. Obviously, a larger buffer means ; more available input history. Unlike CLI32 HISTORY, where the ; history size is specified in lines, for Screen Demon's input history ; buffer, the size is specified in characters. If the input history ; feature is not desired, set the buffer size to zero. INPUT_HISTORY_BUFFER_SIZE? 0 ;default is no history ;Screen Demon can maintain a copy of text that has recently been scrolled ; off the top of the screen, or cleared because of a form feed command. ; These lines are kept in a "scrollback" buffer. When the buffer becomes ; full, the oldest lines are discarded to make room for new additions. ; ; The scrollback buffer can be examined via the hot key routine ; SD_SHOW_SCROLLBACK_BUFFER, which can be assigned to any key on ; the keyboard. While viewing the scrollback buffer, press UP ARROW ; to move upward and see earlier lines, or press DOWN ARROW to move ; downward and see text that scrolled off more recently. ; ; The scrollback buffer will be allocated at runtime. The size ; of this buffer is declared in characters. Screen Demon will keep ; as many complete scrollback lines in this buffer as will fit; ; the actual number of lines stored will depend on the average line ; length. If the scrollback feature is not desired, set the buffer ; size to zero. SCROLLBACK_BUFFER_SIZE? 0 ;default is no scrollback buf ;First part of pathname to user notepad files. A complete pathname to a ;user's notepad file is formed by taking the prefix string specified here ;(usually a directory pathname), appending the user's name, and then the ;string given below under PAD_PATH_SUFFIX. PAD_PATH_PREFIX: .TXT ":UDD:" ;Name extension of notepad file ready to be appended to Prefix/Username ;combination as described above. PAD_PATH_SUFFIX: .TXT ":NOTEPAD" ;Maximum size, in bytes, of a console logging file. MAX_CONLOG_SIZE? 65536 ;If Screen Demon should maintain a clock on the screen to display ; the current date, time, etc., describe the position, size, ; and format of this clock below. If no clock format string ; is specified, Screen Demon will not link the clock routine ; into your programs. ; ; ;Format string definitions: ; ; SD_FLOAT_CLOCK_FORMAT: ; .TXT "string" ; ; The text in the given string is displayed exactly except for ; constructs beginning with a percent sign (%). The character ; or characters following the percent sign indicate what parameter ; is to be displayed in place of the construct. In the list below, ; the examples of what would be displayed are based on the example ; point in history of 18-DEC-90 at 3:05 pm ; ; %% display a single percent sign ; % display a space. Use this in order to ; specify sequences of more than one SPACE, ; because " " looks like only one SPACE ; to the config file builder, but "% % % " ; will be seen as three consecutive SPACE ; characters. ; %cn display the upper two digits of complete year ; (e.g., 19) ; %yr display the lower two digits of complete year ; (e.g., 90) ; %mo display the month number within the year (e.g., 12) ; %nm display the full name of the month (e.g., December) ; %am display the abbreviated month name (e.g., Dec) ; %da display the day number within the month (e.g., 18) ; %nd display the full name of the day (e.g., Tuesday) ; %ad display the abbreviated day name (e.g., Tue) ; %hr display the hour in 12-hour format (e.g., 3) ; %mh display the hour in 24-hour format (e.g., 15) ; %mi display the minutes within the hour (e.g., 5) ; %ap display appropriate am/pm indicator (e.g., pm) ; ; ; For names, abbreviations, and the am/pm indicator, the case of ; the first character of the format specifier indicates the case ; of the first character of the displayed string. The case of the ; second character of the format specifier indicates the case of ; the remaining characters of the displayed string. ; e.g. %nm --> december ; %Nm --> December ; %NM --> DECEMBER ; ; For format specifiers that result in numeric displays, the case ; of the specifier is ignored. However, for these specifiers, ; a `0' character can be placed between the `%' character and the ; two-character code; this indicates that a leading zero should be ; included if necessary to pad the number out to two digits. ; e.g. %hr:%mi %ap --> 3:5 pm ; %hr:%0mi %ap --> 3:05 pm ; %0mh%0mi --> 1505 ; ; ; Note that screen control characters can be included in the ; format string if desired. See MAIL_INDICATOR above for ; information about these characters. ; ; As a more complex example, the format string ; "% It is now %hr:%0mi %ap on %Nd % %Nm %da, %cn%yr" ; would display the following underlined clock output: ; It is now 3:05 pm on Tuesday December 18, 1990 ; which would be updated at each input, and periodically ; during an input based on the time value indicated for ; the PERIODIC_INTERVAL? question above. ; ; ;Describe your desired clock format below. ; Leave this question blank if you do not want Screen Demon ; to display a clock. Otherwise, specify a format string ; of the form ; .TXT "string" ; following the label below: SD_FLOAT_CLOCK_FORMAT: ;default is no clock ;Specify the position and size of the clock on the screen. Note that ; the answers to the next four questions are ignored if the answer ; to the SD_FLOAT_CLOCK_FORMAT: question above is blank. The values ; shown here would match a Clock Format of "%mh:%0mi" SD_FLOAT_CLOCK_LINE: 1 SD_FLOAT_CLOCK_COLUMN: 76 SD_FLOAT_CLOCK_HEIGHT: 1 ;height in lines SD_FLOAT_CLOCK_WIDTH: 5 ;width in columns ;The names used by Screen Demon for months and weekdays are listed below. ; These lists can be modified to support languages other than English. ; Note that each of the two lists must appear on a single line, all ; names must be specified in uppercase, and there must be a vertical ; bar character (|) following each name in each of the lists. SD_MONTH_NAMES: .TXT "JANUARY|FEBRUARY|MARCH|APRIL|MAY|JUNE|JULY|AUGUST|SEPTEMBER|OCTOBER|NOVEMBER|DECEMBER|" SD_WEEKDAY_NAMES: .TXT "SUNDAY|MONDAY|TUESDAY|WEDNESDAY|THURSDAY|FRIDAY|SATURDAY|" ;Under either the Interactive COBOL or Shared Library versions ; of SCREEN DEMON, all user programs will access the same copy ; of SCREEN DEMON, causing all programs to be treated alike. ; Since there will probably be some programs that should not ; be run with full Turbo Display, for example, this ; configuration file allows "special" programs to be declared. ; In this way, programs with special requirements will be ; automatically recognized and handled appropriately by SCREEN ; DEMON when they execute; all other programs will run normally. ; ; One of the special requirements that may be declared is Turbo ; Display level. While the majority of user programs will perform ; best with Full Turbo, there may be a few situations where ; No Turbo might need to be selected. For compatibility with ; Screen Demon rev 2.01, Partial Turbo is still available, but ; is strongly discouraged because of the performance penalty. ; ; Also, if the automatic logoff feature is enabled (see ; LOGOFF_INTERVAL above), there may be critical pro grams that ; shouldn't be terminated, no matter how long an operator lets ; them remain idle. These programs can be declared in the ; Special Programs list below to protect them from the automatic ; logoff handler. ; ; In rare cases, it may be appropriate to have SCREEN DEMON turn ; itself off while a particular program runs. This can be ; accomplished by declaring these programs as BYPASS in the ; Special Programs list. ; ; There may be some programs where hot keys are not desirable, ; such as a logon program. Since hot keys could allow access ; to application programs before a user had entered a name and ; password, it might be wise to disable hot keys while the ; logon program is running. This can be accomplished by declaring ; such programs as NO_HOT_KEYS in the Special Programs list. ; ; By listing a program in the Special Programs list with the LOG ; option, console event logging will automatically activate whenever ; that program is running. This eliminates the need to use SPY to ; watch for someone to run the program, and then manually start ; Logging on that console. ; ; ; Entries in the Special Programs list are lines of the form: ; Keyword programname1,programname2,...,programnameN ; ; The possible Keywords are ; PARTIAL_TURBO ; NO_TURBO ; NO_LOGOFF ; BYPASS ; LOG ; NO_HOT_KEYS ; ; There may be any number of entries in the list. A program ; can appear in more than one entry if it has more than one ; special attribute. The only restrictions are that each line ; must begin with one of the above keywords, and that the program ; names must be simple filenames without the .PR or .PD extension ; (pathnames or pathname fragments are not allowed). ; ; For example, ; BEGIN_SPECIAL_PROGRAMS ; PARTIAL_TURBO CSMNUPRT,CSOPRPRT ; NO_TURBO CSDBFM4 ; PARTIAL_TURBO CSLOGUPD ; NO_LOGOFF CSLOGUPD, CSDBFM4 ; NO_HOT_KEYS CSLOGON ; END_SPECIAL_PROGRAMS ; declares that the programs called CSMNUPRT, CSOPRPRT, and ; CSLOGUPD are to be run in Partial Turbo, while the program ; called CSDBFM4 must be run with Turbo Display completely off. ; All other programs run at the default Turbo setting, probably ; Full. In addition, the programs called CSLOGUPD and CSDBFM4 ; are immune to automatic logoff, and while the program CSLOGON ; is running, hot keys are disabled. BEGIN_SPECIAL_PROGRAMS ;This line (and the END_SPECIAL_PROGRAMS below) must ; exist even if there are no special programs defined. ;Put special program declarations here END_SPECIAL_PROGRAMS ;Titles used for the various Screen Demon pop-up functions. Note that ; control characters cannot be included in these title strings. ;Main menu - SD_MAIN_MENU: SD_MAIN_MENU_TITLE: .TXT " SCREEN DEMON Menu " ;Note: The <60> and <62> characters in the string below are `<' and `>', ; respectively. They must be expressed in numeric form because these ; are special characters for the .TXT assembler pseudo-op. SD_MAIN_MENU_FOOTER: .TXT " <60>NL<62> to select" ;Notepad - SD_NOTEPAD: SD_NOTEPAD_TITLE: .TXT " SCREEN DEMON Notepad " ;Print Screen - SDSCREENPRINT: SDSCREENPRINT_TITLE: .TXT " SCREEN DEMON Screen Print " ;Calculator - SDCALCULATOR ; There are two title lines for the calculator, each of which ; may be up to 16 characters long. SDCALCULATOR_TITLE_ONE: .TXT "SCREEN DEMON" SDCALCULATOR_TITLE_TWO: .TXT " Calculator" ;Also store these titles in PutValue space so that COBOL programs ; can get to them: PUT_VALUE SDCALCULATOR_TITLE_ONE PUT_VALUE SDCALCULATOR_TITLE_TWO ;Calendar - SDCALENDAR: SDCALENDAR_TITLE: .TXT " SCREEN DEMON Calendar " ;Also store this title in PutValue space so that COBOL programs ; can get to it: PUT_VALUE SDCALENDAR_TITLE ;Read Mail - SD_READ_MAIL: SD_READ_MAIL_TITLE: .TXT " SCREEN DEMON Read Mail " ;Input (Send) Mail - SD_INPUT_MAIL: SD_INPUT_MAIL_TITLE: .TXT " SCREEN DEMON Send Mail " ;Turbo Control - SD_COMMAND: SD_COMMAND_TITLE: .TXT " SCREEN DEMON Turbo Control " ;Request a chunk of unshared memory of a specified size in pages (2 KB) ; to be reserved for initial Screen Demon memory allocation operations. ; Screen Demon will use memory from this chunk until it is exhausted, ; and only then will it resort to a temporary shared memory file. The ; default size of 24 is sufficient for program start-up needs and the ; initial window, but not for additional pop-up windows. Note that ; excessively large values for this parameter may require that a ; larger KTOP or MTOP be declared at LINK time. This parameter can ; be set to zero to save space in the .PR file, at the expense of ; increased program start-up time. ; ; NOTE: This parameter should be set to zero for ICOBOL revision 1.60 ; and below; unpredictable errors may occur otherwise. ;Default SD_MEM initial chunk size in pages: SD_MEM_SIZE 24 ;The following section applies primarily to CEO environments, but may ; be applicable to other shared console / multiple program situations. ; ; If some of the CEO programs, such as CEO_CP, have been possessed ; with Screen Demon, but others, such as CEO_WP, have not, then special ; handling is required to keep the terminal screen up-to-date. ; In this situation, the integrated programs transfer control of the ; console between each other by means of IPC messages. Screen Demon ; will need to monitor these messages, since the console parameters ; (characteristics, etc.) may need to be reset and the screen redrawn ; when an IPC message is received from a non-Screen Demon process to ; return control of the console to a Screen Demon program. However, ; there is other IPC message traffic to/from the CEO agents, such as ; CEO_POA, that can be safely ignored, since these processes will not ; affect the console. ; ; When running in a shared console environment, such as CEO, what ; special handling, if any, needs to occur for IPC messages? ; ; Possible answers to this question are ; SHCON_IPC_IGNORE No special handling ; SHCON_IPC_FLUSH Flush to make sure screen is up-to-date ; before processing the message ; SHCON_IPC_RESET Flush before processing the message, and ; reset console environment (characteristics, ; etc.) after a message is received ; SHCON_IPC_REDRAW Same as RESET plus redraw the screen after ; a message is received ; ; The SHCON_IPC_REDRAW answer is suggested in the CEO environment as ; described above. The IGNORE response should be used if your application ; runs in a shared console environment, and uses IPC messages, but not for ; the purpose of transferring control of the console between processes. ; Screen Demon rev 3.00.03 always used the RESET option. ; ; Answer the following question with one of the above responses: SHARED_CONSOLE_IPC_HANDLING? SHCON_IPC_RESET ;Default is same as rev 3.00.03 ;If IPC messages are not ignored in this situation (i.e., the above question ; was not answered with SHCON_IPC_IGNORE), then you may wish to specify the ; names of server processes that will not affect the console. IPC traffic ; to/from these processes can be ignored. ; ; Determine the full process names for each of the processes that are to ; be ignored. A full process name consists of a username, followed by a ; colon character, followed by the simple process name. The CLI WHO command ; shows this information. For example: ; ) WHO 15 ; PID: 15 CEO_MGR CEO_POA :UTIL:CEO_DIR:CEO_POA.PR ; ^ ^ ; | | ; username simple process name ; ; Declare that IPC messages to/from a process are to be ignored using ; the SHCON_IPC_IGNORE_IF_FROM command. For example, the following ; is suggested if your CEO environment is as described previously: ; ; SHCON_IPC_IGNORE_IF_FROM CEO_MGR:CEO_POA ; SHCON_IPC_IGNORE_IF_FROM CEO_MGR:CEO_FSA ; SHCON_IPC_IGNORE_IF_FROM CEO_MGR:CEO_CSA ; SHCON_IPC_IGNORE_IF_FROM CEO_MGR:CEO_QMA ; SHCON_IPC_IGNORE_IF_FROM CEO_MGR:CEO_NSA ; SHCON_IPC_IGNORE_IF_FROM CEO_MGR:CEO_LOG ; SHCON_IPC_IGNORE_IF_FROM CEO_MGR:CEO_OP ; SHCON_IPC_IGNORE_IF_FROM CEO_MGR:CEO_GPN_1 ; ; There may be any number of these commands, but only one process na me can ; be specified per command. You do not need to specify any of these commands ; if this situation does not apply to your system. ; ; Specify any processes whose IPC messages are to be ignored when running ; in a shared console environment: ;none by default ; Custom user configuration data can also be stored in this file. There ; is no limit to the amount or type of information that can be included. ; User programs can retrieve this data using the SD_GET_VALUE call. ; ; The general format of user-defined configuration options is as follows: ; ; label: ; .TXT "value" ; ; PUT_VALUE label ; ; ; where 'label' is an identifier for the data item, and 'value' is the ; actual data itself. ; ; 'label' must consist only of letters, digits, and the special characters ; underscore (_), question mark (?), period (.), and dollar sign ($). ; The first character cannot be a digit. The exact name of 'label' must ; be known to a user program in order to retrieve the 'value' using ; SD_GET_VALUE. ; ; 'value' can be any string of ASCII characters. Control characters can ; be included by enclosing their decimal value within <>. ; ; For examples, see the declarations of the SDCALCULATOR and SDCALENDAR ; title strings elsewhere in this configuration file. ; ; Include any custom configuration options here: ;The following must be the last statement in this file (except for the .END) END_CONFIGURATION .END .W$Rb$n$` ;SDATTRIBUTES.WS *** SDATTRIBUTES.WS Screen Demon rev 3.52.01 *** Copyright (C) 1993, Threshold, Inc., All Rights Reserved *** -------------------------------------------------------- ** Structure of Screen Demon screen attribute settings. ** The current attributes of a window image are contained ** in the SD-IMAGE-CURRENT-ATTRIBUTES field (see SDIMAGE.DEF), ** which is a full 16 bit value. ** Attributes of individual characters in the image also follow ** the same structure, but the first 8 bits are not used, since ** the character attribute fields are only one byte in size. ** This copy file is intended to be used to examine the bits in ** the attribute setttings via the SD_BITS_TO_DIGITS call. 01 SD-ATTRIBUTE-BITS-GROUP. *** Attribute bits found only in Window Current Attributes, not for * each character in the image. 05 SD-ATTRIB-PAGE-MODE-BIT PIC X. 05 SD-ATTRIB-ALT-CHAR-SETS-BIT PIC X. 05 SD-ATTRIB-ALT-MARGINS-BIT PIC X. 05 SD-ATTRIB-NO-HORIZ-SCROLL-BIT PIC X. 05 SD-ATTRIB-PROTECT-ENABLED-BIT PIC X. 05 SD-ATTRIB-BLINK-DISABLED-BIT PIC X. 05 SD-ATTRIB-EIGHT-BIT-MODE-BIT PIC X. 05 SD-ATTRIB-RESERVED-BITS PIC X(1). *** Attributes for each character in image *** 05 SD-ATTRIB-PROTECT-BIT PIC X. 05 SD-ATTRIB-CHAR-SET-NUM-BITS PIC X(3). 88 SD-ATTRIB-CHAR-SET-NUM-IS-0 VALUE IS "000". 88 SD-ATTRIB-CHAR-SET-NUM-IS-1 VALUE IS "001". 88 SD-ATTRIB-CHAR-SET-NUM-IS-2 VALUE IS "010". 88 SD-ATTRIB-CHAR-SET-NUM-IS-3 VALUE IS "011". 88 SD-ATTRIB-CHAR-SET-NUM-IS-4 VALUE IS "100". 88 SD-ATTRIB-CHAR-SET-NUM-IS-5 VALUE IS "101". 88 SD-ATTRIB-CHAR-SET-NUM-IS-6 VALUE IS "110". 88 SD-ATTRIB-CHAR-SET-NUM-IS-7 VALUE IS "111". 05 SD-ATTRIB-REVERSE-VIDEO-BIT PIC X. 05 SD-ATTRIB-UNDERLINE-BIT PIC X. 05 SD-ATTRIB-BLINK-BIT PIC X. 05 SD-ATTRIB-DIM-BIT PIC X. *** These first 8 bits are found only in the global window attributes * field SD-IMAGE-CURRENT-ATTRIBUTES (see SDIMAGE.DEF): * SD-ATTRIB-PAGE-MODE-BIT Page mode (no scrolling) is on * SD-ATTRIB-ALT-CHAR-SETS-BIT The alternate character set indicated by * by SD-IMAGE-ALT-CHAR-SET-NUM (see SDIMAGE.DEF) * is active, rather than the primary char set * SD-ATTRIB-ALT-MARGINS-BIT Alternate margins are in effect. The old * primary margins can be found in the window * descriptor fields SD-WINDOW-OLD-LEFT-MARGIN * and SD-WINDOW-OLD-RIGHT-MARGIN (see SDWINDOW.DEF) * SD-ATTRIB-NO-HORIZ-SCROLL-BIT Horizontal scrolling is disabled * SD-ATTRIB-PROTECT-ENABLED-BIT Protect mode is enabled. All chars * marked as protected (see PROTECT-BIT) * will be unaffected by some terminal * commands. * SD-ATTRIB-BLINK-DISABLED-BIT Blink mode is DISabled. No characters * will blink even if they have the * blink attribute (BLINK-BIT). * SD-ATTRIB-EIGHT-BIT-MODE-BIT Window is in eight-bit mode. High bit * of characters placed into image is * significant. * SD-ATTRIB-RESERVED-BITS Undefined *** The last group of bits also applies to the attribute bytes * of individual characters in an image buffer: * SD-ATTRIB-PROTECT-BIT Character is protected. If Protect Mode is * enabled (see PROTECT-ENABLED-BIT above), * character cannot be erased by an Erase To * End of Screen terminal command. * SD-ATTRIB-CHAR-SET-NUM-BITS A 3-bit field, representing a value of 0 - 7, * indicating which slot in the character set * palette (defined in the configuration file) * contains the character set code * SD-ATTRIB-REVERSE-VIDEO-BIT Reverse video * SD-ATTRIB-UNDERLINE-BIT Underline * SD-ATTRIB-BLINK-BIT Blinking * SD-ATTRIB-DIM-BIT Dim *** End of SDATTRIBUTES.WS *** .W$Rb$n$` SDTERMCAPS.WS *** SDTERMCAPS.WS Screen Demon rev 3.52.01 *** Copyright (C) 1993, Threshold, Inc., All Rights Reserved *** -------------------------------------------------------- ** Structure of the Screen Demon terminal capabilities word, which ** can be obtained using the SD_GET_TERMCAPS call. ** This copy file is intended to be used to examine the bits ** in the capabilities word via the SD_BITS_TO_DIGITS call. 01 SD-TERMCAPS-BITS-GROUP. 05 SD-TERMCAPS-RESERVED-BITS PIC X(6). 05 SD-TERMCAPS-INS-DEL-LINE-BIT PIC X. 05 SD-TERMCAPS-INS-DEL-CHAR-BIT PIC X. 05 SD-TERMCAPS-MARGINS-BIT PIC X. 05 SD-TERMCAPS-HORIZ-SCROLL-BIT PIC X. 05 SD-TERMCAPS-VERT-SCROLL-BIT PIC X. 05 SD-TERMCAPS-HARDWARE-WIND-BIT PIC X. 05 SD-TERMCAPS-COMPRESS-BIT PIC X. 05 SD-TERMCAPS-ALT-CHAR-SETS-BIT PIC X. 05 SD-TERMCAPS-REVERSE-VIDEO-BIT PIC X. 05 SD-TERMCAPS-UNDERLINE-BIT PIC X. ******************************************************************** * SD-TERMCAPS-RESERVED-BITS Undefined * SD-TERMCAPS-INS-DEL-LINE-BIT Terminal can insert a blank line at * the cursor, shifting the remainder * of the screen down. Also can delete * the line containing the cursor by * shifting the remainder of the screen up. * SD-TERMCAPS-INS-DEL-CHAR-BIT Terminal can insert a blank space at the * cursor, shifting the remainder of the line * to the right. Also can delete the character * at the cursor by shifting the remainder * of the line to the left. * SD-TERMCAPS-MARGINS-BIT Terminal can set left and right margins, and * internally stores 162 characters per line. * SD-TERMCAPS-HORIZ-SCROLL-BIT Terminal can shift the contents of the screen * to the left or right. * SD-TERMCAPS-VERT-SCROLL-BIT Terminal can shift the contents of the screen * upward or downward. Not the same thing as * the scroll caused by a on last line. * SD-TERMCAPS-HARDWARE-WIND-BIT Terminal can divide the screen into * multiple independently scrollable regions. * SD-TERMCAPS-COMPRESS-BIT Terminal can alternate between showing * 81 columns or 135 columns at a time. * SD-TERMCAPS-ALT-CHAR-SETS-BIT Terminal supports alternate character * sets, such as Line Drawing character set. * SD-TERMCAPS-REVERSE-VIDEO-BIT Terminal can display characters * in reverse video. * SD-TERMCAPS-UNDERLINE-BIT Terminal can display underlined characters. *** End of SDTERMCAPS.WS *** .@$`%ym$b *SDCALCULATOR.DD 00000000000000000000000000SDCALCULATOR  -32  P Calculator Help| F000000000000000000N 00 RE+-x/=* 1240+0000000000000000000000000000000{000000000000000{000000000000000{ 000000000000000{00 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000  16SDCALCULATOR_TITLE_ONE SDCALCULATOR_TITLE_TWO SD_ALT_EXIT_KEY DESCEDTABEDDELEDCR ED EDClrEDMemED ^ ED x ED< ED+|-ED >EDFrMED v ED / ED1ED2ED3ED4ED5ED6ED7ED8ED9ED0 ED- ED= ED+ ED.ED EM Press DSPACEE for HelpDSPACEEClear FunctionsEntering DataMemory FunctionsDshiftEMoving the CalculatorMath FunctionsLeaving the Calculator!!!%Exit!%Tape Clear!%Delete Digit!%Return Result48<48<48<48<ACEGACEGACEGAEG4!!1! F! [! v! < 4 8 < 4 8 < 4 +8 9< GAUCaEmGyACEGACEGA EG4444 (F3E3 13E3 M44444444 4 4 4 H 4 The Calculator is controlled from the numeric and cursor keypads. Thesematch the key layout shown on the Calculator, where each key is labeledwith its function. Other keys and their functions are listed to the left.To perform a function, press the indicated key or type the first letter ofthe function name. The Calculator operates like an ordinary hand-heldcalculator, which is somewhat different from a desk-type calculator. See the additional help for the math functions (+ - x / =) for details. For additional information about a particular key, press that key now. Otherwise, press  to return to the Calculator...    When pressed once, this key clears the calculatordisplay. If pressed a second time, the automaticconstant is also cleared, which prepares the calculator for a new calculation.  Pressing this key deletes the last entered digit or decimal point from the display. This key clears all results from the tape display.None of these functions affect Memory. Memories can becan be cleared by storing zero into them.Press any key to return to Main Help screen... +  C   r  Use the numeric keys to enter the digits of  numbers to be used in calculations. Excess digits  will be ignored. If the period (.) key is pressed,   subsequently entered digits will be placed to the right of the decimal point in the display.  Pressing this key causes the sign of the number currently in the display to be changed. Positivenumbers will become negative, and negative numberswill become positive; zero is always positive.Press any key to return to Main Help screen...     H T`    There are ten separate memories, numbered 0 through 9. Copies the number currently in the display into memory number 0. An ( will appear in the display whenever this memory contains a nonzero value.  Copies the number currently in memory number 0 into the display. Same as unshifted versions, except after pressing either of these keys, press a digit from 0 through 9to specify which of the ten memories to access.Press any key to return to Main Help screen... 5 &  3 C   The arrow keys in the cursor keypad can be used to move calculator to a different location on the screen. This may be necessary if a value needed for a calculation was covered up by the calculator when it appeared. The unshifted arrow keys move the entire calculator one position in the direction of the arrow. The shifted arrow keys move the entire calculator several positions in the direction of the arrow. You may move the calculator partially or even completely off the screen if desired.Press any key to return to Main Help screen..."',16 All math functions take two numbers and produce a result. The first number is entered, then the proper math key is pressed, then the second number is entered. The second number isn't known to be complete until another math key is pressed. Then the calculator has the two numbers it needs to evaluate the first math function, and it places the result into the display. The second math function will use this result as its first number, but must wait for its second number to be entered, which means waiting until yet another math key is pressed, and so on. This cycle continues until the special math key 9 is pressed, which completes the pending math function, but doesn't actually perform a function of its own.Press any key to return to Main Help screen...",'9, F1 T6b6 When you exit from the calculator, the calculator will be removed from the screen, and you will be returned to the input field where you originally pressed the Hot Key that accessed the calculator. There are two ways to do this:  Normal exit. Restarts the interrupted input with the contents of the input field unchanged.Return result. Restarts the interrupted input,but the number currently shown in the calculatordisplay is placed into the input field at theposition of the cursor at the time that thecalculator Hot Key was originally pressed.Press any key to return to Main Help screen...   uMMMMMMMMMMMM#.####YRE=+-x/123456789101112SD_SET_SECONDARY_PROGRAM_NAMESD_TURBO_FULLSD_GET_VALUE0SCREEN DEMON Calculator SD_NEW_WINDOWSD_DRAW_BOXSD_GET_WINDOW_VIEWSD_PUT_WINDOW_VIEWSD_NEW_WINDOW_VIEWSD_REMOVE_WINDOWSD_TURBO_RESETN.*X,erDdCcTt|MmFfSD_MOVE_WINDOW_UPSD_MOVE_WINDOW_DOWNSD_MOVE_WINDOW_RIGHTSD_MOV *E_WINDOW_LEFTHhSD_RETURN_INPUTSD_READ_CHAR .J $kt%IQ$k}\ SD_PLAY.PR 4/_p*YpR80&0&0&00p02000>02000> @pnpx&pkLpkpkL,/))x)4)5)6Y)@@`y?00000_SD_PLAY.TMPpx<  @-(pB@4P kcc Fatal Screen Demon error at PC = 00000000000 0 =HNNNYNWWMSG.00000@jD VYYNYNWWY Select recipient: select, exitVYYNYNWW`HNNYYNWW pGppppp pp    1pi DDDDDDDDDDDDDDDDDDDDDDDSDDSDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDSDDSDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDSDSDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDHNNYYNWW  HNNYYNWW ppqasIApDLU|  _______________ . . . |_______________| |_______________| |_______________| | escape | _______________ _______________ _______________ | | . . . | c1 | | ^ | | c2 | | EXIT | | | | | | | | | | . . . | FAST | | STATUS LINE | | FAST | |_______________| | BACKWARD | | UP | | FORWARD | . . . . . . . . . |_______________| |_______________| |_______________| _______________ _______________ _______________ . . . . . . . . . | <-- | | home | | --> | | BACKWARD | | PAUSE | | FORWARD | SCREEN DEMON . . . | - - - - - - - | | - - - - - - - | | - - - - - - - | Console Event | JUMP BACKWARD | | AUTO-PAUSE | | JUMP FORWARD | Playback Control . . . |_________shift_| |_________shift_| |_________shift_| _______________ _______________ _______________ _______________ . . . | c3 | | | | | c4 | | space | | | | V | | | | | . . . | SLOW | | STATUS LINE | | SLOW | | PAUSE | | BACKWARD | | DOWN | | FORWARD | | | . . . |_______________| |_______________| |_______________| |_______________| auto- last pause console username date time event delim speed direction at status ======================[status line format shown above]==========================  2  pXpp8pApppѼp8 MailMRemote View Remote Input  G@LPT@LPTPREFIX,SCREEN,DEMON,CLI[!ASC 251]:CLI:UDD::NOTEPADLJANUARY|FEBRUARY|MARCH|APRIL|MAY|JUNE|JULY|AUGUST|SEPTEMBER|OCTOBER|NOVEMBER|DECEMBER|SUNDAY|MONDAY|TUESDAY|WEDNESDAY|THURSDAY|FRIDAY|SATURDAY|SDCALCULATOR_TITLE_ONEp*SDCALCULATOR_TITLE_TWOpp* SCREEN DEMON Calendar SDCALENDAR_TITLEpp* SCREEN DEMON Read Mail SCREEN DEMON Send Mail SCREEN DEMON Turbo Control ))SD_ALT_EXIT_KEYpp*+[SD_HOT_TIMEOUT_INTERVALp&p*;0010110>01021320pT` Unable to find directory called :SCREEN_DEMON_3.52:SCREEN_DEMON_3.00.VM+>?>CONBATCHNOCON@VCON@WCON@PCCON :MEM:?SD_VM. + @OUTPUT@INPUT<@o  ,!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~!ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~ hjiLC8v#d Ex7@"pBpdrpcmpb1@INPUTo?   !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !!##%%''))++--//1133557799;;==??AACCEEGGIIKKMMOOQQSSUUWWYY[[]]__aacceeggiikkmmooqqssuuwwyy{{}}  SCREEN DEMON: Copyright (C) 1988-1993, Threshold, Inc., Auburn, Alabama. All Rights Reserved.ppe@OUTPUT  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ >G]ZE6<<Pi@e@ʟ7?~š Ȯ G[ǫ^/~u+.Ur ġŐ0&4' &)}26F0~]Yq_]ӝŠ͜Å訠Ԡ젬ɮ㠠҇.3250.161A-GU9-3Π򠠠ƠĠϬ㍐ɠΠҠ卐̳Ş宮G=?b[n7:H)/4eKa'Lxvd;| &Er+@A~Jyĵ"p.m% ! ݪ8Y6$Бl c9u0q-SȩF`ឧ̝jCUBQN 3(,}#XVD51w\ziotR ^g]*ٶ_{PWIfOԅkP ( ++++-||-+|--||-:++++-||-+|--/cTRCG ++++-||-+|--||-:++++-||-+|--/cTRCG  0@INPUTqrstuvwxabcdefgh12345678!"#$%&'(yz{|}~pijklmn`9:;<=>0)*+,-. \]^_ 8`@     Press any key to continue... @SD_COMMAND%Turbo Display% Screen Update Interval seconds% Use arrow keys to specify desired% settings. Then press DNEW LINEE to %accept values as shown, or press %DESCE to exit without making changes.# )ON |OFF|| Hppp:SD_POST_OFFICE+.BOXSD_STAMP_DEPTSD_PO_USERS_LISTMTo:,Urgent? N9Acknowledgement? N. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..L..L..L. .L . .L . .L . .L . .L ..L..L..L..L..L..L..L.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .DESCE=Exit DF1E=List of Users DESCE=Start over DF1E=Send this messageLDF1EL BCSendingCMessageLCP.O.DirCCleanupL Urgent: Ack: From: To: No Post Office box exists for that username.You are denied access to that user's P.O. box.There is no mailing list file with that name.!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~!ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~ PSD_NOTEPADD DESCE=Exit DC2E=Prev Page DC4E=Next PageBPage !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ o? XSD_CLI_INTERFACE    :UTIL:SD_CLI_ACCESS.ACLp2p" ` Select: to select hDDDDDDDDSDSDDSDDDDDDDDDPNPNADDDDNDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDZ  -  Z  "  Z  p:CONLOGSD_+ x Error!Press any key to continue... Yes|No|| %'))&(%%)))&)&)')')))))(()))))))))))'&'&)&'))%%((%))())5799685599969697979999988999999999997676967995588599899  >u  (@Y  Redraw Screen|Print Screen|Calculator|Read Mail|Send Mail|Notepad|Call CLI|Turbo On/Off|Calendar|| SDCALCULATORSDCALENDAR  SCREEN DEMON Menu to select SCREEN DEMON Notepad SCREEN DEMON Screen Print SCREEN DEMON Calculator)lIa ʣ)UM)V)7I~bI):9YsIi )9IY9y ]NJx)9Q)9Yy Eǂ+89Iϐ HNo console log files found for specified console!9I 'Error on open of temporary playback file:9I  Error on allocation of memory for log screen image:FA}8e9)IGuq)8y)Ii ԸdL)99)99)9)9h7ɞgƉ@ Yy h@89I' nError starting display task:)8Ȑg)8pgkZYIYBe)@))y)9)9W) )QҮgVk&)YIY))ߠ99") )$g!x )8 ¸)))))))x))8I)8I)8I)8I)㖣㘳㖑I㔎0 J㌅)yㄎD ;j))xY))Y8)99x)9)98Y9) ™ ~6 /)ƉYy x*ffƚfj,IEE@ݩݠYyy FA)yyuYY bX i)xi % 4⼩Yyⷮ U ⧎ ⠫➉8Y⥴⥣⒁xف n) j)IiY}}ǂ)⡥f8_)Ydd2is {\8)n8xF6)9 )viF zhgY)Yi- 5Y  9) 3Eњ)%)) )ȭy909$)E 90))xᷩxᨂyᙫᢉYљi)iᙣXљiIእYܫy) Yy aIYɣf) ףa8hy)IiQOMLI|@x0) hK ~Sy\9nb9o"9rsG9uQp9 @?np9vY wI9yY7I2O)9i) Yy 8)nY9i Yy’Ii)n)r s)u)YYYy҂y)vY9Фͫ̉ǂI YYbÂyDy)i9 YYFxI)I 9Y9Y/y }Y9Y҂yYdb`) i989Yyy yYYyyԹyyЉ9)yyiԤ98*/) 9يx)xy񁸣쁹扉8 t)IiYuISD_.LGO.LOGyi ߈)IiIl %߃)!Ii) n9ߛ)nyyi) |ߊ) ) i9 ) 9 ) 9 )9)9)9)9)9)9  ) Ii | 8 L y) -yyYyy) IYyЉ Ix)y9&)P)y)Y0)PyyyY9Yi)Qyyxi9))IY`yyY95)096)294yI99) 9Yyxª)Ƥ)x) x) x x) Y99YyK“x9) IY)ޚ)ދވIYކނ) = :8kg8cY tye VUO9) 9Y9Y҂Y )9yy) wIY9i- YY8z Y8Iyx 9YYy]Dݜ<ݔ)9)9)99)9)99|)VAv) 񸮣wBIii`aߥ) ™(yY9ХI)yE5y9Ҽ9ģ@y)y3:yy;9ŹI)y CyyT YIyYyiY򀹃x)YyyixYYڂy))-9Yy)i9ZIyy) 9Yy˩YYقyĩ)):9Y)):9Y)iּ9 ŹI)y܊(yi)γɐxǁ89xܾܺxܼ89xh)Y9)WJyiP.)9 ܈iIyy D EJANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDECSync Disp InFld InChr At BegAt EndPausedSlow FastJumpForward Backward Input Step null ^A ^B ^C ^D ^E ^F ^G home tab nl ^K ^L cr ^N ^O ^P ^Q ^R ^S ^T ^U ^V up right left down escape^\ ^] ^^ ^_ space ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ deleteTimOutcmshPr<202> <203> <204> <205> <206> <207> shHome<211> <212> <213> <214> <215> <216> <217> <220> cmPrnt<222> <223> <224> <225> <226> shUp shRghtshLeftshDown<233> <234> <235> <236> <237> ^shF15^shF1 ^shF2 ^shF3 ^shF4 ^shF5 ^shF6 ^shF7 ^shF8 ^shF9 ^shF10^shF11^shF12^shF13^shF14<257> ^F15 ^F1 ^F2 ^F3 ^F4 ^F5 ^F6 ^F7 ^F8 ^F9 ^F10 ^F11 ^F12 ^F13 ^F14 <277> <300> <301> <302> <303> <304> <305> <306> <307> <310> <311> <312> <313> <314> <315> <316> <317> <320> <321> <322> <323> <324> <325> <326> <327> shC1 shC2 shC3 shC4 C1 C2 C3 C4 shF15 shF1 shF2 shF3 shF4 shF5 shF6 shF7 shF8 shF9 shF10 shF11 shF12 shF13 shF14 <357> F15 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 y*)9ؿIYSش9xC5YNy؝)8yYyy󸠉y؇)yYYkK)yYYXJ )) ) L^)RQ)^pD))Ԯ5))%y0ix8 D:Y)xAx00))  YyX@x&)  z/9Yy;@8YY1U̸v)9)-x98); Unable to start Screen Demon auxiliary tasks!Unable to allocate memory for Screen Demon auxiliary tasks!9 )T Cannot open SCREEN DEMON control file :SCREEN_DEMON_3.52:SCREEN_DEMON_3.00.VM )du)vIIivII38;5vfIYR )9 )d =ACL of SCREEN DEMON control file :SCREEN_DEMON_3.52:SCREEN_DEMON_3.00.VM must be set to +  ,WAR 9 )V Cannot read SCREEN DEMON control file :SCREEN_DEMON_3.52:SCREEN_DEMON_3.00.VM ΩY)R⸣Ť;4)˪IYSIӸ Y9999I۩Y)IĩY99IYW9 :k9)9Y99y)9ϣ9ˣm)kIYSiY  )Y99DX)xyȉ yyy9tYi8) @CONSOLEױ)♻׮) i )9)99)Y999y>ظ8))@8׃)8I9)89)r`) oIo) oIY9ix9()@9\)Iyiny YYYyqyiկ)ժYYUq̎ԁ ))8ʙ)⩻) 8~)yYYU)9qZ)yyiqJIx9 ){ NConsole name not found in Console Types table or out of range! Correct SCREEN_DEMON.CONTYPES and then MAKE_SCREEN_DEMON.VM 8n$i  )`Ii8[) })YYUIY99U)c)8$x889%y) YYyi9Y5)ʙ) ΚY)ʙ*) ʩԖ)ԒIYS{) ʩ)ʩ)ˉkY)ʩ) ʙ) ʩ)@ʙ7?)I M) ʩۄY)ʙ) ʩ)ʙo@) yyzL)0YyylY9)/yYyiYB))Y9)3)-)096)294)095Y9Y)!Iiݤy)9999)99)99)99)O99) YyyiYͼS!՛y>)nyyՓՎՓix)nyyi9y)v y)R8)P).yyYyl YYyyiY96))I߫)9v6YYE5)xJ)IixIY9Ya:!)"YYPU    jIA6[6P聩IIݫ6@؁8xρ8ʂI 6, 6"69)@9Y99y)Ytsp\MiY s)I Y9Y)Ii )99(YYo)5) 5g)dYYU i  )Ii  )Ii<)IIjS3YY_UxY=U88 9x))) yxЁ) ) x) ^C^@)yI2s129) Iȶ) )8@) 7)/&e)8%)Џ88) t΢8YΘYSxΌщ8xYI  F  86Y))8)_щ!).3x).ϧ) >x) )8@W)tbυY)x{Y)لY) TN9*) Hخ0{Y9)EConsole Interrupt¿ هy֤yIYy͛)АIYyщYͼ ΉQ͂y){Y)y幥)t)YYg)W)xε)2NΉ))@xʄY)˸ P8Y) 8%08Y)`xΪ)ES_{ sy )x.fY:Ny΂))⹂)8@q)8l)⹁xW`)[)⹁S)MIP)S!<)©5x)@)&)ꙻ Y)8)x)x)xRσ80x0ϔiyy忁8y IyY)艆Yɇ))8 ) /)YeOIyYyi )eD/),깁Y9Yi ) e3IY9/m)YYY))͎)C)) )y 9)Y9)I9) ^P) ݧIiY9)xyYyyycѹpx֑IybII)) YY))y晅y)y˩Hxˡ)y˛x󸀉y Y) ≃8i ˃ɂYi )II)y)8Ήp7 x։p$ p8' IxYI9YY8 8 iI)y9^)xy) )IIyiɂ)恉x);QiyI IމYYxYiY)$7xi 幥pi =x);8yI IމYYxYiiY$ m 幥 pi)ʅ8x  9Ypv08  )I9x)Y9晁)Y9yщx )I  I x))ZY9!x) yxxy  yi) YYxyɂ  i)I))3)Y)\ IIi Iy,℩)).9Y)T9Y)M9Y)P9YY9i )@9IY999 fT9)9[[II38s[lYyt8x ) 9<I9Y99 9[I h9)Tx9f)`9ȂCannot create temporary memory allocation file in directory :SCREEN_DEMON_3.52:MEM Cannot open temporary memory allocation file in directory :SCREEN_DEMON_:SCREEN_DEMON_3.52:MEM )O ˙8XIO IIYyUX)# ȿI)8Ȣʩ%x"Ț IIIYSȊ)˙)YY{x)ʩyYomY)Ix9Y) I)IIѹIyyIy߇)I٩|Y)8)xأ£գ)ȺXȶȪXȩ) ȞӤm 4) ʱjʣdʩ^) mNlXhaḣV8XU I 9) `rIY9Yyi9Yx)x),9iY) `TIY9Yi9YƁx)x"_xș 0lgF))))G9)|*M[IУ9) YgYd!8) IM3 l)ǟƱǜI lqxF  WARNING: You are about to be logged off due to inactivity!  Press any key to clear this message and avoid logoff...)L Y'8X g?) yi) Y) )) )IyǧY) )@ǘ) ;ߣǏ8@ Nj I I IљIx*ΉxpY8؉y)ZyIљYiF) 󉈹8E9Oy)iy,)w8!)Yw  YY)*vf♻*p9)9))I9 Y99)*O82Y5)8!y)Vsƾ)xII}+y PiYYDx))*mbƍ♻)9)9))I9 Y99))́YY )[)9ɇyDY)8~ΎK؎Љy2'Y)ȉy#ѹy)ΉxȩYy xYIi ى8)Iy)XΉxjYixى8)I) yyW)IyN)IyŮY)i )IƳi)Iyѹy(ΉΉ@- xى8)Iy(ΉtΉ@ nى8)IN))) yy)I)) y)IyBѹy(ΉΉ x'ى8)Iy(eΉΉى8)I)) ̬Y)&9YNY (9)P99$) 9Y9999   I9) yxـ [9J)='Ή)%} ) 9^xUo8O8#IḄ ~y^?yS98yH)9/)8&x,Y)'Ή)L|YxYV) )XXɇ)9$YY9‚xI9xCy) z.yI)Iy)i)II}ςiy)Iǻc>Yx1) ) )fy*)x9)) 9)x9)<9Y Y^^*'끹X)ۣكr) xk) [̣)W)f D EFEFQ0 ))5Y)Y 9x&Y) u)yy )x #)xI)i0ieix@yyy @sF N@yyyyy )\y[ 8eI ߍY9)MI#g9c) ♈f yy/ły) ⩣ i)x) yyyy@y Ŏ y ߍY9)I#9cY̎)  yyֱyyyy@y x yl))) x蹈^)8PD)nyyxVr)) Y;3) X  ;yy ~͛yyyy@y  Fy) @ 3؀ r yy ~9WyĎ !e[y}ͤ9v) Y) "8ѩxcY)9̮!˴)Y9*) ȂIyIcELOGOFF-TERMyyyy@yY8!ቓxyy ~1yyI)Iy!Y9Nyy)cr YYyY)IxW* dy89L) x:Y) !ѩxY)|92!;eĂIyI]c癝yY) x)DzYܣ) )Dḍ|) yy }yyyy@yhx  8\) xyy }f # yy8yyyy@y  )♻" yy) xy)9)9)9 Y99i))xy bZYybdщyĻ)IЉ)) b>YybHщy׻)I  Fyy |؛yyyy@y)⹂xyy |y " ⩁YYA!Y)X xixx iΎ ؉yy |yy |~yyyy@y)xNY)8J)b=yI yѣ8͑I)8)YYI8Iȉy yKtիnxɘ)dY)8yJI)nyy)?:?)Љ))x)y 998yy)9)9Љ8yy)9)9y)8Y)Ȃ9Љ)) !8)9)Ky  y))x )))IY99Y8yy)y  y)) y9yy)IY 78)>xЉOgcI ߀Y) 8I 8⩻⹁㉁Byy zЉyay%! YyY) 8WI 8N⩻l⹁i㉁SByy zY9)ay)) yYIIy9Y99))8 yy)y) a)y))y  y)) yyYق))8 yy)))Y8Y)y  yY9YF^ZڀY) 8I 8⩻⹁㉁Byy yYy\  YyY) 8RI 8I⩻g⹁d㉁NByy yy+9Y$ީ2)IyyW8։)>Ii)I9III)Iy)0Iy iy)))))))0I)I yx)y) yy艇yyyy@y 8h)⹀ )dy^XxƂ)NY)8yDz3)nyy))$))Љ)) x))x)yIY)ǻ)`Y)8؀)Wy  yy)))@yy)) yYI YyIY))i~ŷ)`8N)xY) 8Yř)?t3xyy x4yy x(i9)) y))yKY)Ȃ9ЉY|]yy wyy wyyyy@y8x8㉉byy wü93yy wyyyy@yIxyyyy@yYy|8x8㉓@)8qyyyIyyy wc9㸎ӂyy wN)a wGyyyy@yIxyyyy@yYy8e㉓@x)฻yyāIyyy v9j8yy vyyyy@y8x8㉋@)yLIyy v9븎*yy vyyyy@yxx㉙88[Yy[щy8e@)Iyy vf9xւyy vRyy@y/)IYyU)©Yyyy v&yyyy@y))YyݠU)©Yyyy uȉXyy uyyyy@y0cy8zzPyy[N8ycک=کЉxyy uyLک&کЉayy umy)YY8yyyy@yˎy YN.yy ucBN uZ<)8))xyyyy@y;ڎyyܿ8o u" u!Y)x)Y8yyyy@yV;ayy t t)8+8)8yyyy@y%X;sl0yyUbx: t ty3)x)A)xy)♀)88*)xY8ɇy)^)♣)Q) ))){)>) ♠y1)8IY t;)M t1 t-) )x) tȉێyy tyyyy@yWyA8{yyۆK8yکhکЉGyy syyکQکЉ0yy s#yy syyyy@y.y偸G^yy s) syyyy@yԎyI) IyIЉ#YY9YY@Y#yy sY xYyy sH)Y) Y9999Iںۂ)ʇ)ڭQYx Y9999Iڕۂ)xYY~U))I~IIdSyi) YOہx)yyX)YI9>I؉ yI   Y!?؉y)@y)yIi8 Yy1)…yIixB) @CONSOLEI/)yIi#Y))8xII)@Iy)ޮٷyYYٯYYY8I)yIiY)8)9II)@Iy)dvyYYnYY 2IYYUxIxydܩYYDYy遉y8IIyI)@I&yx)yY)I8:PER:yIiYƉxy58IiIyIYYy y    I  Y Y   yI ѩx  Y  Y y Y y y y U))2ЂI9=9K)2ŁY9=I9K)2Y9=9KyY9e)) )Y)8)i UT)INfHiI9eiYI OGۂȉ'IY9Y9L9"9#9$9(9;9<dS YMYK9 9)9II9YϳIy?)I9)i) 4)ۉYiکi),)Y>Yi9$ )Y٣ڂIӣYgأ dM)=I9yYR))y)))@yi9Y9)Y)0yy   Xyi9 9 |))x x))x)xi)9I9"9#) i yX8iI9")iG̹yII9) y4yi/9 MX y')))I9) 8yY)ȂYY )) )ۉYiک))Y>Yii9$Љ))x x)iyy))Yy>Yii9$)y))IIa89Yȹ9 `  )i))I9)f 9iwܕy)yi^9999X7yE +y)I)y yYW YY#iY$%)x )iY)) 8Q<xi)$i -)@8i)$| +y)I) yXi Mщyyyx~IyYyYyyyiY)IH9!)щ  iIXZYYYiXYYȢ光)ȫYXI )XՑY)xYyYXYȃY)ȫYЉxY)ȫYY)X XѹY)I)I)YYi)=3Y칤9 BH^(*)i9 ))IYeY`YiXȫY)IɹY)X ѩY9')ɹy )=Y)InIYY9!Y)8λD&s) xyi) S9)''D) aGYU Y@9Y8 9Yyyi++I)9Y9)))XXi%Y)I )5))')8I9(9)'8h)`ˣd)ʣ65Y'].)Nx)Ox)> )xG()=8)X2)響I)@I) x)(/ C)@Y8 ) p) Ip)I9;YN))?%|Lyyi )O Sb_[WyLyyiB Y9;) )ˉYʩiߣ# )Q)Yy{™x))YYjY) )=)IY0Y b)}8)Bx)IYY9)9)Ra[iӸY/d) i>YxG) d)il)=8x |3) %{Zy)=xLOH) F@:) HP*Fy݄Y)xY)@))D80yǁ8W-EYyi)=x)Y)əy9y))9yy8i)yY9y))9 ) yY9&x>R9&_ 8>y=n Yy4i0= x!I9x8*)x9& I)<¹ ~y9&9%)щ  ) )<);8Y)%i ))$Iȭ8iyyIyiЉ)0I) )) Y9YYi)ՉI5t))(@)Ic)& )(щY9(y9)nѩ̹#)cyyYi9y))9) )i9 i)=)%Y _)88yY9))9)!X XIXљI‰8y)yYYyy)$i)<8xY)ȫYYi) iX)InYXiIXȫYفY)<);щIi)%y) );)<)йx.)8)%yilyIii y.+)I)9 )9 ) 9 ) 9 Y9)9)09x)))ȫY) )x)YȫYp Y8i)9)9)iiI ))8)Iyi9y)7)Iy)yi9))9))X Y S)))9 )) 9)) x I8Y9999 wxXY)I)X) I99)ȫY9)))XXYi9 B)Hy))=8)Ix)x)!yi)=)l)YXiYiYYȳfȫYaXI)I  YI)ݾC>C)܆Ii)PYXKYixYY)ȫY)XI)I  YI@)%8}))x)sx)Kй8g89) wXQ) Mщ)")#A)8)xx)79L88۬Y)x)79L) ʎX)x)79L Y))=щ  ;xYIYBy;{ Y)x9I)й ;g ` S(F)) 8')8i= )9)Y* <Any)%g>,yyiΣq9G)jH)Gaݣ Y 8ov)橩 _HYy>=yIyX2FYY I8)Yx)Y8y=Lyy;)@Yi9Jy9x)y98Yy9YXi)QԥYyyiF)ՉI0I9)>)?)@ E)As)Bm Cey&)yY)éYй8xYЉ艇yxxi)%)yOYJxi)%)y?Y:x61)Jy ) )ۉ)I) y)Ii)  ) I)IY9)yΉYYi)i)i))Ii Yxo8oYy )9  ) yyyYyi  Y9xy)%̹yIIy,9)9)99)%9yy9 ^yi )ڀYiI))d84y6ꁹ,xmmmmy9")դm|6® y8C#Y&)QY ŹR9)9Y99yǞ)Q)Y8)ʙ) )9Y9yk)8 Y99yUi ))qx)YY<y)pTΉ)! &Ky53xkkkkҮy9")ڤk5Ӯ ))8Ňy8A"Y%y)ѣYƫNʩYYơUy)8 XYƌNi)Yԣ[9&9%%) IYeS)"I͉Y9Yyyi )   ) )%N)Ox)> |9Yt` p)Iq))i)) )[)) H9))8=YY 9) 9))~i<Y5Y普85qIxyipщ8)%8)8yf_yY[P YYȹ8yYxi)%IDYF9:5YyyyY9Y'*y%40)Y8x𸙃8詓ੀyyYZ Yݼڤ٫ȩ8YyIYyЉILJ3x)8虑8虂่xYZ~ YyYZm YxupYyyIYyЉIf)Ya`))ԚYI ix))ԆYtr B >e:%6!4,$Ƴ)i))5_98) Y    0)մ 1 2гi98) )))йIYI i))ӺIY x))ӨY 98) ڙ[WS OME(5&=+*9x) )`D)oj) y'i,'y )) i  YYXǣ٣ՎYګَ)x)x  )щ)XyKYXyXcYȃYyyYYəy~)F8Y)PY)0NHVUf_IayXGBQYMH鉃xy@YY'#YY(29YyyXYȃYYK8IY) 򩁩KxҊ8) Kx㒉8yJ xӳΑŪÍǎ1 )Yë ~89Y~Yy&I)xK[)g)i|I9Y Xtщ8<)x)x x 8) yI)$9)Y)^9@Y9)JI~艼A@8G ~ lkjihgfed R)))) I OyYK K?ЉD F) ? )Y 7)Y 0)湎 YIYx   Iyy: }yXYȃYYЉyȫYmЉ) }أ{) }Уs) }ȣk) }c) }[) }S) }K) }C) };) }3@)i$ }|i }mny) }^ )  }R)QY桙)ڣJюʪȍ̎6䇩yƫ8Kx) )8 8O)xYY$x9#)4) 8 )1Y)xw^Xt҉9)9) )1)YW^XTѹ.+YY)I̳ډu)8")'.  |jO |]KXڎ~SYy)Iyi~XāYIֳձyYyyYyy˱I9Yiyy) | | y~ YYyyYyyY9IyYyhxb~./uSIkmώ )x9)88簹xJFN-E;I;39z)1)I+j)x-)Yx) Y)IY)I) {[=) FE,}PYYѹyyYI݉I֎ I {$)8y}YYyyI)Y)) 9Y9YYȉ~쇉yyYyyȉyIY9YIȉ) ©x)Y~|y|yxb`yE9)YXVy8|4I1y)|Y z e)\) zr) zj ) zb YiI zL|MY8Y۲ٱ8ӎ|F z1|2Ғ΍y|, z|Y8| z) ©xYz)9)9Y)Y9CR y֤W yYL)YtrK)C| y鸁Y+)YSQ*)C yxY )Y20 )C yn yl)9ID)  yBYңA Y)F Y)a8?8 Y)28YY)©yYYY x))9Y x)9yIC̹@Iy e y)IyyyC)yyYYI)9YYɹЉiyyyyZyy1:yMyy1yYyYYy bY)DŽY)89)Y xiC)9Y)o9Y)#9Y>)yy߅)x)Y))89)I x1Fb9@) 9YYމyIy0I)9Y0 Y)LY)9)I D wyXXiYΉiyIY) xyIĹ)I y) ♼XF) {? wyމhyIy0Y ) o~I)YIyIiIIyIiiyyƮa[,׮0")u 2:Ԯ8)})wF  }h̕)09Y㍉ }OY)09YɍǁY)I)YxY8)@Y9i v橩 } Y_)Yx0N94 v |Y:)Yecx0)95 v |Y)Y@>Y096 vw |Y)Y)Yi vS |wY)Yى8yƣ v |;Y)YY)F)8y)9yI9YY ; uǬY)x()g)9I | u)8)x))) 8),剁) 8)x=)99Y)) 8ى8r)x38 xyIyy1Y  {yY 9Y)8) )Y Զ Y u9Y)x|)9)I vӫҩ {@yYč«Y)8O))Y N)鸁Yw t;)89j)I g ) u )) ))y9 tģ)89)I P )) t zФ )YPN平"9 8)Y97平 )i9 &8)Y)i9  x)Y9 )Yǧ)ق@9))ق@9)vyYY)yyyy Y9))I)Ii9YYz)x}Y8yxYwItXp)xyyyi9yy   G))I)Ii9YNIY s)89)IYYu )(9)O"9YYXxu )IY)294 G= ) )9!)) x s(FAY׳9 yAǫƤ x)Y󻍉平9 8)Y󦍉)ix9 󕩹)Y󌍉c9^)pXy8y 9= )  xX.X) iIN) Zy)Y99)9%Y9)99))1Y9Yy 8Y)9 :Yt\7Yǣ%) r;y)999)Y9)9)9Y9) Y쮫X򔩉8 Iy ?й8 x)Y򥍉平y9 x)Y򐍉e)i9 )Yvt平J9 )Ya_5)i9 wƣBx):x/-YYX*,ys}ys) ) Y qc 8)Y 平9 8)Y)i9 詹)Yߍ平9 x)Yʍ)i9 񹩹)Y񰍉平9 )Y񛍉񙆙o)i9 w)Tq) 8 hf9b9)I9)I9)y9)yI)CYYXAC)yryx&y r ) Y pr)) )YYX pS v| )Y平9 )Y獉)i9 ֩8)Y͍平9 )Y𸍉𶆙)i98q𕅉y)yqyy~yqYQ oˣ)9 &)Iݫ܊)qYTȫY-yz$XӀ8Y)81Yio oY=X8) ) ) )8I9z) YY)I}kj&)ێѫY o)yYiYIyyy艣￑IIyyЉ)tT 9)I.)ȳYepުXvXtiywyYyoXkYFX8Y)yyy艣VIIyyЉxHXDYyX8Y)nYyyy-IY9yYy ny)9)IF)p_YȫYۭy"ЉңX8Y)Y n8qӎ n/yչIꉃxYyyy艣ȑIIyyY)sW 9)I1)oyȳYlXX}iyyIyxXtYOX8Y)yyy艣_IIyyЉxQXMYy'X8Y)wYyyy6IY9yYy m 3x)Y*(幣 )YiY)x))Q))yyY)IyY9 )  ) m# sL ҩ8)Yɍ幣흤 x)Y튌i횄Y))YYY9g ) ) lԣw) ḷo) lģg) ʤ xi)Ydb平89 x)YOM$)i9 >)Y53平 9 )Y )i9 r)y9)ɩxYY))Q))yy9ȡ8)))x))XYY9n)yyn ) ) Ys kτY)0)@89)I- kFO)9J)I抉)m_ZȫYQ0X8Y)iX Yyyyy艣5IIyyY9 k)9)IO)mh ȫYݻX8Y)-YYYyy艣IIyyY9 k5FKFJFHF[FIF\JKHI) k) kyYy봳 ) ) lyYY)Ix8s 넀낫뀳ibwiIty)@8Fع) Y)x)8)Oy.ىx)HIщIѹ I8 8щxyII88x2ՀaI[:) y.Y) ~)) w$P)Iι xIe))@8@9)Âx}Y))}y) ɝy)٣ԄY)x~9)) ))j )8l) ) y Iy09x  `).829===uR~===u=|A|R=|eKJYƀÙ7I}IKJibٙÙi\9Y ÙYQ/Ù WIQJ)KWIfi-I1iYlÙz逆9r)P`2KK7IY؀\9 'i'' ''CY܀hrYnO9 91iY!lÙÙI299cb8rYnO9 91iỲlÙ\9iX9g\9 e%97 (CX2XX''9JY9(i8 Ù9q9`)ÙYdÙiÙiy)ÙKzKR ÙD nhgyPznÙ9˨Z)KKK˨9Vnh\9I2cbÙ299bgXGHiz(Giz9nGƌiz0(9z9)ibG9ighZ@9չ2BJnOGz@7YnO9Bfi2cG9BgXG9Bznn(YnOiGB2r96\\zr95 79 9>!U!w!>w>,PI%===uR0XڧPI>xวщhhщI|x>wxۄ,R0XCA>A!!U!RAxww>*,R0X9>U>>U!>>w>xwPI%===u0X!%|x>wxۄ,R!%~h~ѕ*ه0_>%~h~ѕ~~!(0Xd>!Iۍ>,w>>R|xww>ل!PP!>0XxIۍ>wIwUwP>P>I>w>,R0X;>ww%"="=RRR)I99Y9 9 99 x)I9Y9 99 99 8)I999 Y9 99 )y))x   щxy* 懩Y9 9999 I9 x)Y9 999 99 x)I9 9Y99 99 )8x Y9x)7ӂ v)9) xyy)0YyyY9Y)/yyi Y9091i))292)393)494)595)696i) N)" ))щy)f)9 ) ) 8 $Y9 9 999)99)O99))x y )9I )i)Y9I )9 )i)9)99))998)9)9)9999)9))Py9i yy) L90Y91)92D939)494)595)696i) x{)ƣ) I)xI)Iy :))  x  y y y  )щx9"9y))Yyl9yi)xYxѴY 8)x))Y艇y  )nyyi Y) i )Ii ) i9 Y   xIy) xyyYyy) IYyЉxi  )y)B)x  R8 8 y )nyyi Y) i  )Ii ) i9 Y y y  xIy) rxyyYyy) IYyЉxz) w) ))x  8 gy))Y)iyyry)  0 1) 2}))i}Љo)8y )y_Z_))J)  1yQ)ʎw)χ)!)  y()2))~щx x) %)dy))Y9)I9~й `)x  ~~x~ 8) ~) yy0Љy'')+~&) ~#) 98)8 yy)9999)9)9Y9 Y Iy Cй8))8) ))y~'9)x ))y~9}) }) )))8)o )8Y)y}9) )8Y))Pu)@yy}9}e) }b) )Y))) )i))) )) })I9))) )i))) ))}b)I9}) |) )􇩧))) )i))) ))}') I9 ))) )i))) ))||) I9 |) |) )y|գ|y ɇyy||yщy|y )|yy| y )yyYщx yyy|y||~y|y|ry|k )|) |) y  |Ry|Mix|E|;8Y) )Y|.{) {) yy|$88||Yyy|88||Yyy  x{ix{y) ) ӂyźy)0YyyY9Y)/yyYqq)Y9998)I9Y99x)I99Y9){?Y)@{;)@I99Y9)Y99I9)I99Y9{Y){ ){) d)`)8|n0)))z) z)@)dsz) z) I9Y9qB/)Iq:z) )z9)r)͉zYyzyY艤zēyyyr)x9r)zYyzyY艤zyyyypI)9YY)9pI)9YY)9p)ꩴzty)8zezbzcxrfz9xz 9))ʩzCzBYѹ8yz7Yaz2)9Yz+)8z$zYIzy)Yz)))NFS10OFS00 FE))z  iy҉8yy}y)` )"I)))8y  iy҉8yy|Գy)/ i)"IyO) yL) )C))y y 0yyy 1y) )8 2yx)yw)ysiypy) y) )))  8)y йIi)ԇ)))y)8  iy8  iy҉8xy ) I)Љ) ))  ѹ)L i) Iixk) xh) )_))  ѹ8) Iy) #YyY y) IiyYx)) x&) )))Ȯ8y)x)Yx=x4йx)Ȯԃxx)yǤx' )x))Y xYxxw))Y9 9Y)/yyiw йYw󀹓y  ) 9 ) 9 )9)9)9)9) ))8o)@ wx&& )8)8xIYyI8)Yi99)x)xxI8YyI8)Yi99 ) )xI8YyI8)Yi9)9) )xIYy)PoR)@)yIYyЉi9)9)XYX)XYX y9)XYX)XYX y9)i)I9) )i) I9)Y9`)/)9)9 )/ 8I   щx ~Yi vxvvvv~)< v2) vo щy)9)) I sy%v yYyyyi)I9I9yYyyi)yI9R999I99 Xu)   ) )8u)ꙃ8vv uy%" yYi9 y   yuͩyYYyYyhyyIi uXuuIuIuIIyuYIi)uAY)@xuw 8  )x )y)y9) y)y9xyu9 8)99)(93u)>u&@<u!BI9Dfx)(>@@@<BI9DE  I9 Y91:999 )/I )09)19)29)39 E)1I)@Y99)295)396 II)y)i9798)9йyOlbY)Y11Y:s94 EIY92)xlA)xsӄY)xt) k4iY)x ~ )xk  ))8  ix 8II8 M ijY9-s) )j) )s~Y)j)jji < BYx j <)9Y)F9Y)X9Y FjΎ A<j)9Y9si < BYx 9 <)9Y)F9Y)B9Yj  y)09Y)yY09Y)1))9YI) Iy))Q))yjjyY9 8Iyi)-) ij\I-YIi BiY8yi< ى8i)88 9iIYYY9Dݏa&y)09Y)99Љ)19a$98)38) )`9)D9)09yiY9&h +_) )8 8)&)8 I9& + I+y)9()&9'yh) )xI))yi)IYQ_ 8) )i)I)x)_y)iIyIIIX9zQ9Yi90- < BY i <)9Y)F9Y)CY9Yii<3_Q) y^o)i < BYx <)9Y)F9Y)^9Y<^N)ʩy^E)i < BYx <)9Y)F9Y)]9Y<^#)ʙy_)xg) )xI))8y^ 8) )i)I)x)^̉y)iIyIIIX9yx)9 < BY1i <)9Y)F9Y)JY9Yi<^) yy09YyY09Yyi > <@B)f) x)))9 )9)9  )9 ) )9) )9))9 )9)9Y9 )I9 )9 )9)9 ) )9 ) )9) )9)I9 )9 )9)9) )))7LJe)@8)I9 \ 8eÄY)xM )deY)e)xY yY)0yi 0Y9Y)=yyiY9 e )090)191e 2 2)IiYe) )gJ)1 8)J M))) 8iy)XI Iyyyy00yi)  eu蹊)0))XIi 90I9 i xi  ɉ8) y)yyyyxi) Y 0yyyxi) `)yyyyi )0Y))Љ9Y9 普))8e 98dYȫYYYY 9 9)5Y9I9 9 9 )5Y9 9 I9 9)5Y9 9 9I9 IY)x 8 x)5I9 Y9 9 98)5Y9 9 9 9I9Y9 Y)@8\YI hۂ щ)5I9 Y9 9 x)5I9 Y9 9 8)5Y9 9 9 I99 Y9dY)@8\AI huۂ)  8 )I98 )9e99)9<)X8i щ yyyi8Y)9<)9e9 щy9i) щx))@x)1y)96Y9=9>?GIK9f9g979;I98C)e) c4)Yi9ec))d 9iY9cxb)hxY 999 <Qx8x)bY)) n)I99 9 *)) 9Ɖx)9<)968i y999ibY)8b86YbfZn") xI9 gbY)8) щ8 xiI)й nZ)bW) xy9))FЉc)8I)IIYZ\\b9)ay)a)IY)@Z}UYZr щ ~S ~oiaY)ZU)a) 889))F7c)8H ) щx x yɂbщ)x)8 by8Y99I))Y ayiI9 y  щ))Y9I)) 8)I tYΩ8YũyYyyi8) )Ya6Y)8a.) xYla$)81A)69695)I9Y9= eE) 8嵣`큉8ЮkY`) `)x)lkY `) 9) `Y)l) `) Ių`y)`Y)  Y)x)Y 5)Yɮvx`E)h V 5Y)y9 byyiY i) `^)ˉYʩ)ei9e*`!)j``)YY 5©x`))YYY_`"Y)Ykky) )I`))e9e щ)=9Y9 ~ 9)) 8)I_)ӸY__٬Y)Yػk3) i)e9e}x_)EyI) } щ8y)=)yyy9  9yiՁ)8>8_Y))k ) +8) ~Y$)ق y_YY)xYj288xx_B)8 i)9ل ~i^)Y&jj~) )j^IYS^)hx) 9Y ~ y) x^) `aR`SR`YR^) y_)Y_%W-щ8y 8)Y8yyY999y9 yi^ y)^|)) ^rY)^nY)y4_Q))ƙyiI xxI;YΙ xbIii)9)9 ^) xxo EpxYIxIyyf) YYyy IIyyyyYЉ ѩx 8iy V)ITh) EIY9x),xYD) 3IY9i)xۉpxYI"' ] x- J *Pݻx]\))82L) i) Yyyy ri)))2) ֖kYIY٣])8x] )i) Yyyy Yͣ\) \)i))x`)\) ) i U)Ii^EO yIhfUĂiyh?)IUyI)iII)I9Yxy\Y)8IمyI)IyUiy)IUI)i I)I9Y8UmyUZ))YYIXIYy~Iyy)IIYIۂ))I)Y\\\\}) yo艇y)ӣ\jy)IIYIۂ))I\T8\P)ܣ\IYYU)y)IYщ)#\)8\%\!IIZSY\X\)IHyy)%tYy9#[9"Z9Z9 g-9!Y[mIZƣZģg ' d9$Y^y艇yxy)"[D)!f) Z)Z  v)$4Iy)Y[[[IISY[y)) )!Y\YYL9x )!\8 b) yi) Y)8 8)aI99D")I݉).Y)PY)R9)yyY9i .PR)aY9£)9 Iiy).9Y)P9Y)R9YY999D)$IЉ8IY999D)IЉ8Љ9DxT)I):9Yi9Iiy).9Y)P9Y)R9YY99D9D)IЉЉY99D9D)I8  "Y99 ))€Y9{) y YYYi9' I9Y)IiY)  I9) 9) 99D "Y)8Y9:[PLYY)מYZ YYރY @f}  @ߍY9)4IN@9cd)) YY ֓x ") 9Y9Ɖ )9Yy~Y'"d)) ⩣ZLlQ) @NULL)) ) IyYyad Printing |SDSCREENPRINTOutput FilenameESC to exit without printing)   y   y)xM))0 yp88y)3 9 ) 8Y 9 9ȩ8))*Jxi))))#y2VY   8 )9yyyi  )X x9) 9) 9 Yy) y*x p8 y+u2 xYi) .!))Ю0 y,+zԂ zĮ2V ) )J)4)yyy2  ̹)N)cyyy&j  ̹ )6yyy&X  )yyy&E  y)yy ~zxy y y ~  yy)y/_  ฮ2yz y ~bxy/@ y-F y0')-X) Wo Wh)I), ،-r-j-b-ZԾ)ޤ,jU09)))W-9--uuWy2\zW9t)乣VޣV٤VޣVz) YIY>8牉 8 x)8NInIx) YȫY809xcظY) ȫYI)硩y9:V!Vi9V0iV )Tl)H|)XVdy))物y))V7) 9Yc8) 9Y 89Y)V)nU) )V 9 )yyNONE  2KT4%IU:MSG.rdOpening the message fileadOpening the output fileReading the message file Printing |Writing the output file Print Message|Output FilenameESC to exit without printingYes |No || OK to delete? Urgent!#Acknowledgement of message # A copy of that message is attached: ----------------------------------- Error accessing the message file:select:|Delete |Next |Print |Menu |Exit ||Choose one of the selections shown|Delete this message|Read the next message|Print this message|Go to the Inbox Menu|Exit the mail system|| ERROR accessing the associated message file!YN*- Inbox MenuNew Msg No Date Time FromAll/new |Read |Print |Delete |Exit ||New/all |Read |Print |Delete |Exit ||Alternate between all messages or just the new ones|Read the selected message|Print the selected message|Delete the selected message|Exit the mail system||There are no new messages in your Post Office box.There are no messages in your Post Office box.Press 'A' to see all messages, any other key to exit.Press any key to exit...Unable to access your SCREEN DEMON Post Office BoxSD_READ_MAIL)  )Y )))ɮ,)   y   y"Z/))Y)0)y yy)*fµy y,) ) y ))#-)YY))Y Y  )Y?  Y9 n)Y)K8)P YYY YP9 )(Y y), 9 ) 8Y 9 9ȩ8 y \8i9v 8))"8i9f 8) y#b8i9H)Z)  ))#y*p   ) yN"8i9) Ny#8I 8 N8 y# y#+! 8Y)k ɢk+A  )  ) )P)4)yyy*_  ̹)4)cyyy  ̹ )yyy  )yyy  j)yy }j x)j y ~  y yy'  8*])j4 y ~d ̹ y yy')P 8 )I9J I9K)9L))*S9)N9yy)i)t%xI) y }q9Y)))) }Y3Y x  ')Y? 8YY Yr t r)Y t9 YYx Y9 ۫Yx }5Y yIIIIIIIII)? 􈹁Y9 ) 븁Y)LY y |8i 8) y! 8i  9 IY9 9 I)Y8 򩉁8)yDY8 򩉁8)yy))c)%y)))3y) ))4y9 y)y) )y x):))Z)T) ).)() 8) y ] 8i  9 IY9) )%)yT )F9 y)( 8) y  8iY     ) y 8i x  9  Y9) y(5 9 IY9 ) )J)yy    8 8) y z))c))y) )J)y y  ))Y)x9v9d99æ)N))y&)J))y k)y d ? @yy })c9#) x ?y z ?᪈x))x)qx 򁉁8))I98 򁉁8))cI9 򁉁8))cI9)c9x)c9884 y |)c98Y98)9 y {)c9)9x)9)c P/ x y |<&o)).Y RT yIIIIIIIIIT R)  x x)Y 8 iy  )  x  yIIIIIIIIIyT RI9Y Ry y 8i 8)$ yxi89$IY9)@ yIIIIIIIII.)$)% x)$ ytxix9$IY9)I yIIIIIIIII9Z9$ Zy% 8)$ y48i 8)$ yxi89$IY9)_ yIIIIIIIII)$)>%_ 8 yIIIIIIIIIY)0Z)y y6)&y Z)%2 yIIIIIIIII\<)> y x yN )  2I)9)I9 Y $    )Yx))@  ȹ8)Y yIIIy)  ) )? ?y } yIIIyI9 yIIIy I9 I9 I9 YI9 ) y))Y89~9z y))y y)Kx y)F)) y y yII>Iy) yyIIIIIIIII> y))c) yy  yIIIIIIIII y)>)c) yy Yx  ~   I9y8 yyIIYáI yY9  8 I9Y) y))Y X 8))@8Yѩ𸇩)|zѹ X)ϙx 􁉁x ѩ ])UYOxLG)2)r)#))F))y"8))c))y)B)yY)%9霤<9鸬99ΤZE99)өY¬ )9) Y y }m 88ѹx8y ~)yYyy }A鸩 ))  )9)y) )y!r )N)6) ) yx)`)6)) y))) ) :<щ8)YxYй̹ @щY x))?yy :7yZx))?yyj :'yADyu) < :ʸa8A )98x))!B8yIIIy))Ɂx8 ?))I ))I ))x) ))9x9)BYyyi)DY ۂx))888) y }8 }8, y }uY 8)x IYx)ϙ8)# y vL) y x ? yy uQ ~ Z)))Y YY 8 )Y) K8) )@  YoY x)Yyy xx)U)Y )  I9Vvy38)) y))yYχĮ晤-YY9y)iyYyi) )娮v)KxM) I |)Y 8 |݅y y) vY\)Y WA)I J)) ) )  yx)  y)޾)  y)D Y)񁩁 x倹WWйȮtēy9)mNdx)F9C) ™C) ™@W)8C)xщ8)8Y9C) ™C) ™ )k85Vف)Cl) )YVƳNѩ8YHY)ѹ 9 ).ĢVCϤN@IIh3YVCCh08CΉCC)@9Yyh89F) *lYCɇ8YyҎhqIƇWARNING: Unable to set SCREEN DEMON `@ON Ready For Mail' flag))YyhQqY)MHħI IY9iLL)h,II):9YY9ɇ)C 9)9Yyh ɇ)BY9yg)E))N )))N )) )@ lY wIx9 * 99) x9o) Y9i)) y) 7) 燩 x9Y99)) x9)9 8x)) y) 8) ѧ)E) + !889) ) Unable find SCREEN DEMON Post Office directory 'SD_POST_OFFICE' in the SCREEN_DEMON directory. The SD_INIT_MAIL macro will create this directory.KY IY9iJdIIf39) ( GUnable to open SCREEN DEMON Stamp file SD_STAMP_DEPTYPmAAf092) (oYyᎩfqI WUnable to read SCREEN DEMON Stamp file WIrIIfs3x9V) (. '~B8P Y  @ 8 ?xY9Yx #x븴98) 'O䆩Yyf)%cA~Unable to obtain a message number from SCREEN DEMON Stamp DeptOYye%.@}Y&O@ͳ@Ȯe089*) 'Yy eq Unable to access recipient's SCREEN DEMON Post Office Box)$@G )@j)D@Iye Ȅ)湁Y9(1HXYħIY9i)9) 9Y9YyW) 9YyV) yyyiY9)N)8 )Y)9yЉ9Y) 9Y)yyiy)Ny)8)YyЉ9Y) 9Y9@ )@ k9)yy)Ii) 9YQ89)yyi) Ii) 9Y796) &Yy?d y9>) &w pUnable to write message to message text fileUnable to create message text file )@8By?|) Y?xi)@?lYy?fdb8) Y Y9i?Q9?L Y )@IYYd4?099?-)?+)?Yy?d‚)?yx)?Yy?c)>Dj>9)+9YY9Y)9YY9D@9YcLYy>Ӯc {9) % sUnable to obtain use of recipient's SCREEN DEMON Post Office BoxMM))8))@)Yy)?IIi9i)9IyiIiM#)@)i9)YYi9M YycUP>B{IYyc@q)A8B9)c.I8x)yйxzӂxɳҬCYI9IiY9ɇ.BOX)yYyyb!yy))-9Yy)i9pIyy)-9Y)) 9Y9YYyyybyĩ)):9Y)):9Y)yiJANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDECYy=bÇɇSD_INPUT_MAIL)i)H)n)F.)3ox9) $, )Can't allocate memory for message line inputͮ v wNYO (6)~I9h)"Y9yYyi)N)) )eY9yYyi)8lY9h)")ѮX98)y88Ѡ8 T9x9h)"9)9Y)9Y)9YjIyYiyi9)%)  mx ! $\9hy)ޤ@yIiih@¹x9h~x?(IYaNRxx Jf) I#) I#Y ?9iy) Y9yix 4Ή@ONΉ@ALL9i9)a ID) "2)8n#PYIYyN8Yny8У ~ -' t)Y)N)4yIΉy)PYIY֚yN8Yny86 ~. 3%-HD)Y)N)J )9ӁY  )K)Ѯ}9)y)yx8̈ } i ~ Ϲ8 } OI)ӋyY9 K )Ӌyx9 )KY u )ӆ8Y)i9ӁY K Z ,`)YIYՆ8xx }$%8 -)8s%C)V)I ) 9Yi)y Ky)II) 9YK8Y9ih@ 9hYIx9 S) 89))))))9)򈸣~9y)" yYyyix)x9)%&)) ͅy) v |e89))))))Y99))x9ǣ/9y)" yYyyi)ȁ98) )) ͅy)h v]  r sm ͮlܾ)F+*)Hj)9`r¤9Grʤ9CY9߂I9b9 Y)Rk6Y9  YP Xy普kyy  Yyyi lsIy) )йxx8) <9 )J )|9Yi x 89hIx)|98)Y)щYqq> 2)" Y9i ) l No Post Office boxes found)yyI9,)i8i 9)i8i@ON@ALL)@)@Y9y)IY9i8 9 )@9I9y] xɀ8txY996p)Ii IY9i7y\x))79)@9)9Yy\x )79Yy\)75 bY9)9I9y\x)I):9)y 9Y9rY \hY) y) Y9i )y%5IY\A387/9Ή)9YY\,)Y)\q)T")v+ Y999 I99)9) 942 y[9) 8Unable to open Post Office directory! Stamp Department cannot be rebuilt!ERY9Y)Ii Y9996906)+9Y) [wYx)9:yEiEYy[aPYy [X&)#) g)'yYF %o pA@)hVI9 q Unable to allocate memory for notepad page!F 6Y9)YIi 6):9)D9)9I9)x Yx F£)IHIIY9Yi6 F 6  YyZ)`9)9 4) y )F| 4Y)9i)99)0Y)) F)yy 9)Y@8t) Y F)@y)@ Y9Yyyixx8݃ߊ8ˈ m S 44 J 4aY4 =i ~8 ɝx | UoO"UfyxY[\@W WNyxCD)@Y> >5xY) i(Y%%@   ~m) 44Yy 6Y= F8g %m nT)&) eyi 6 F 4 YyY‚)8Px F?)yyV) YY9YyYYy@xyi F: 4@lyI) Fyii F?) )9@Yy 6XÂyi F)Y9yYy)ދ)>y Yyy ))eIYXR8Z)`9$أ)I)Y)Y3)x),9Y5IY9Y9i)$)d)3>3{8f) y) Yyye;xyyyyyY93S)23L98Y3B3BD  f\fT09fB f2x38II))3~)2)1#Y9 )098 cYѩ8ȩYiy0 9Ky  Y҉Yiyy8 0X Y x 0V 𨹁8) y9 Xx  yy   )9)LJ) 􅉁IyIIIIIIII򅉃I1111) 􁹇  )X YHr y Yi 𑹀 􅉁IyIIIIIIII1H 𩙩Y yyyyi x  0x9y)YyIyi 1  q)).8)yI9 ).) `  I9 ) 򉹋y I9 ) y I9))8)))Y)))) y )IyIIIIIIII)I] 00 )YY)Y)YIyIIIIIIII 8 9yi ) YyIyi x)Y)YIyIIIIIIII x9y)YyIyi)Y)YIyIIIIIIII 0, )9))Y)Y  9yy)YyIyi )Y)Y x9y)YyIyi)Y)Y / 3    ))˸)Y ) I9 8I9 )N)) 𬹫I9Y9 YF  y YiI9) 9 I9 I9 /lYI9 Y/bY9 9y)Y9)Y/L+wt82) Y9 9 9 I9 9999  ) )=8)♰8) y) Y9 ) Yh9 ) Y9 x) y) Y89 8) Y9 )♑) Y9 )♊) Y@9 ) Y@9 x) Y@9 ) 8) ϙx) Y@9 Y )))xi) ) I9 Y9  I9Y99 )))îYxi)) I9 Y9  I9Y99 )))®8)/8Y xi)) I9 Y) Y9 Y999I  )))Үx 8 򁉉89 )))Ү i) I9Y )))i) I9 I9 I9 I9)x999 9 yi  y999 9 y yi  y) I9 I9 I9999 yi y) I9 I9 I9999 yi y4) 􅹅y) 􅹅yG) 9yY y ) 􅹮Š) 􅹮H)9y))) YB  y YiIx Iy9 y)) YB  y YiIx Iy9 y)) YB  y YiIx Iy9 y)) 8)& I99y))) 8) I99y)) I99yc))x)8 YB y YiI9 I9)89 y79) y() I9)9 ys89 y yc8Y9)))R) 􅹅y) I99y)9y))) 9yIY89y Yӈ89 y  )) Y) y\) ^))8 YA  y YiI9 I99 yi yd)))9 I999 yi  y')x)))) 􍹭y8x  yyxY ))) 􍹭y8x  yyx   yy8   yi  y88   yi   y   y  y yyxY)8  y晓y) )) I9 I9)x y[99 yi yF99 y yi y.) I9 I9)x y99 yi y99 y yi y) I9 I9)x y99 yi y))8 IYE) I 8  i  &))xY I998 y yx I9 I999 x yi   yy8 y yi  y ye)) 99y) I99yd2)9yB)Y)9yi)Y)9y)Y)9y%)Y)9yW)Y)9y))  yY)Y)9) yydpydj)Y))x I9 I9 I9 I999 9 9 yi y8 I9 I9 I9 I999 9 9 y yi yxY9 y ))x I9 I9 I9 I999 9 9 yi yr8 I9 I9 I9 I999 9 9 y yi y<x7Y9 y9 ))x I9 I9 I9 I999 9 9 yi yZ8 I9 I9 I9 I999 9 9 y yi y$xY9 y )) 9yɂ򇉧))  Ii 9 Y))9 <8 X yyYIi xY9)R) n 9F )9Y99 99I9 )VY9)YN9)YN9)WW9)9)9)999&i)  ) 99F)IyYy)4I9Qy)4Y9) # Q8 x )Y i )Y i )Yi8 )Yix )Yi))&NYy$Gyi96YY 9))y)P%Nx$)yi97YY9))$H8)y9)y9 yL N))y9V))y9W)I9X)#ԁyyi9S) )y#ġyi9TY9U9:99<9F)| Q )8Y)YY Y92 )y 2y iη yٹyYiX28)y9)I9)I 22 h):Ii^9Y9:۸ Q щx))|8Y)YY ):92n # 2 yyiX29=Y2 h):XI)=9)Uy9U x Q)8@Y Q):) g$Hxi)9)i)y)y99)щ C9495)q Q%Nx$ 84My "y" yY YYyi)595 Q 84(y "y"h yY^ YYyi)595 Q)8"JX4YY)&NYyi96)x)PX5YY)y97&N < y)j)h)n)l)Yy k Q щxy)6)74!Ȁy "Y!!4Ii Q)6& Nx)78)5XY7йY99 Q&N8$Hxi)Xѹ)X҉89)8i9ixi):Xѹ)X҉89)8i9ii9B9A!yȳY!i?)!liI!hI)9 Q$Hx ?)?!QI)9 ) 9 Ɖ^v<> ;)w)y)10Yx)Y) i9 ) i9 Ɖefdb i ?)Y)yi)  yGYyyyIY8i) y I9YyyЉ I8iY9;)<9 h\IZ ?8X yY ȃYY Q$VxXA) x)BYy \) Q$Hx)Fx);<< ~)9=y 8 \ yi ~8))VI)Wi9)=yyYyi d)= Q$Hy 8C \I8;X)\\)<;):x 8 pi)< Q$H8 ?9x)?9 I) 9)<;):8 Q$H)?9x)C9I) 9)9E ?8Y9GH Q)Y )FX<9F8)x);x9F)F)Ex˂ Nщx)x)x% NщY9|)X|  8 LI)DY t LI) I)azx)|!~x):9 Z)EI ^ɹ h )az|8 x y hY)<;X))O\)8YY>)OYZ9.LOG.LGO.TMP)NYJyCyII ))Y9 )) y II8 )i )iIi  ާ))  )IY)i )i )i )I)i9Y9:щxyyy)I)|Y)|)|9Yxi)|9Y ) >ɁYIY999:)Nx))Y94))I9 I))Y9 IY`I8 )i )iIi x )Y9@檉)I9Y3 )Y9( I89 9 9) ) i)) Y9)J) 8)PY9)$))y9 )))y IY9 9 сIȣƣ19)y) y9 i) )| 8¹ ~Yi Y iyX) y9 ) )x ) 8 x|!~YxY)i I8y)y Yyi) y9 ) I) )YY9 ) )PYY9 )xY IyY))))칭y{) I) Ii) Ii yi) )| 8¹ ~Yi Y iyyX  ĻXx) ) 8 ) 8 x|!~Y8Y)iv8)xzXon) x1YY\Iή)0όi쇩L IX;YȃYYY!)칉IO乂Y.$' щ89۸)98)9) ))yy9 ))y걩y ))yYXyiI9Iw. ǁY9)-9))8)9Y9)8))䁙幢9);9i I)y)8Y))p89Ii))i 9Y8) 9x))  M9 ))y=y9 ))y-YXy ))yyiI9Ivq Y9)|9))x)9) 9)8))&幢9):9)y )))p89ñI)9YI8O) 9x#))  ))y9 ))y9 ))y{yYY)y9y ))ydyԹY)y9TȫY9BI!Yu AB ~Y 3) )ݘ *iY9)͉yyYyi) ! 9Yiyyi ԁY9)|9 )x)9) 9 )x )幢9):9)Y )ݘ =i))p)9ʼn)ʼn7Ĺ'Ĺ9I9)6&9)9I9Y!)9I9xY9)-9 wY )9) 9 g)8)9Y9)x T)幢N9);F9i !)))p8Yx)yi)8X!))pY9))5I%Ii9!)))i 9Yxi))Yi !ر BY)͉)8 Xy))pYyi)9)8Ĺ(Ĺ9Yx9yYyyiȉ!)9yYyyi) 8Ή1234։!"#$y։++++))py >+9)I?+9 щ@+9IA+9) !9I9 щ!9I9)xt )Ii ))|Y)Y )#Y y Y YyiX) yi !IY)͉)9yYyyi))YY )+I9 w) 9xKYӣϣ) ɇyI)x))!8YY)8iyIȫYYLI)Y)) x)Y)Y)Sisi)Didi)RiriљYY))Yc))Y))YiV)) )JY )?)) 2 Y+) Y99 ) x ) 9  Y) x)w=ȃI9)9w4II ) )8Y9 I ĹI yyyiyyi y y Yi Y   8 Y) )/Yx Y'~  y YiIy8 x )Y Y)IIy8 )9vvIIyB晓yvщYvII剁Y vwyyi yyi)) y ) yB~晓yщY)9)Y 9 yyyi 9) ) xyCY 9)yB> x)9 ) )Y  yyyyi)) 𪋈8 )Y Y)II8 )98) 9Y9uɩ)) y ~Yyщ)/)yY   yi yyi) )Y 9)Y9)) )N9 Y   )Y9)ѹy ) x )xY+x )Y ʹ*x)*xY ʹ )Y 8i8y Yx)x))8 )SQ)) ))x964y)x)8x)!))8GLJ) y))FGH<))x 9))  0 0i9  ) ʙ) ʩ))  09  ) ʙ))  09  ) ʙ) ʙ))  o09 h)  cʩ))x ) R) )) )  C) )) ) ) 0 .)ʙ) # !)ʩ)) ) )y)0BY9Yx)) )yY)YЧ٩ɂ@ 9)) y6)0IiЉ)0\)1XypxCI ) Iyy px,Iy ѹpIxЉɉx ))p"Ɖ9);.Program requires LANG_RT: relink without SD_NO_LANG_RT.OB 4x8DOx00@0ypBi0I ))ȹyIlj9  FATAL RUNTIME ERROR: TERMINATION THRU ?BOMB 0 .@$a%Om$~WSD_ICX_INTF.OB  SD_ICX_INTF4C&(!9 !NSD_SHARED_DATA_PARTSD_UNSHARED_DATA_PARTSD_UNINITIALIZED_DATA_PARTk #(-27=BGLQUX]bglqvz~ /? P]d r|  $ 4 >KPUZ _hp     ".UKILWRLNPWRLNSCRSRRDFDINVALDSPERBLDPCSTOPUSTOPINITINITCCOBOLCHNOPCLLOPA.XITA.STPABORTWUSINGETSWASPRGLDPRGRDPGDWRPGDCNPRSFNPRGGETPDSTATUSC.CCABINPKSCRPKDLMTB..PCDCT..DSA..FCA..ESC..AFC..REF..CUR..DR..P1..P2..RIP..MSKSWTCHINMAP..T0..T1..T2..T3..T4..T5..T6..T7..T8..T9..T10..T11LNBFINIFN..EXC..BAT..KTOSD_MONITOR_STRINGSD_FLUSHSD_NEW_WINDOWSD_REMOVE_WINDOWSD_REMOVE_WINDOW_NO_FLUSHSD_ACTIVE_WINDOWSD_SUSPEND_WINDOWSD_TOP_WINDOWSD_INITSD_INPUT_FIELDSD_GETCHARSD_GETCHAR_ONLYSD_CONSOLE_SET_VIRTUAL_DELIM_TBLHANDLE_SPECIAL_TURBO_SETTINGSD_DISABLESWITCH_TO_SCREEN_DEMON_STACKSD_ABORT_ALL_LOCKSSD_ABORT_HOT_KEY_HOLDSCTRLICTRLICTRL2FLOAT_TOP_WINDOWTOP_WINDOWBOTTOM_WINDOWAWDSCAWOFSAWBUFAWPOSPID_FLAGSCON_PROGCON_PROG_END_PTRNONFN_TBLNONFNB_TBLNONPRT_TBLNULL_TBLACCEPT_TIMEOUTACCEPT_TIMEOUT_RESETINPUT_ERROR_WINDOWSD_WORK_DIR_PATHVIRTUAL_CON_CHARACTERISTICSUPPERCASE_XLAT_TBLCONSOLE_CHANSD.SYSCALL+ #  1<(Uh 0  F  6.VCX*tL      2CWfz     SD_LINKED_WITH_ICX_FLAGcurrent_opcodeSD_ICX_RDFDSD_CALL_ICOBOL_SUBPROGRAMSD_ICX_EXIT_PROGRAMSD_ICX_CALL_PROGRAM_HANDLERSD_ICX_STOP_RUN_HANDLERSD_ICX_ASPRGSD_ICX_LDPRGSD_ICX_ERROR_INVALSD_ICX_ERROR_MPRESD_ICX_ERROR_MMSGSD_ICX_CSTOPSD_ICX_CSTOP_WAITSD_ICX_INITSD_ICX_TERMINATESD_ICX_INTERRUPTSD_ICX_ENTER_DEBUGGERSD_ICX_LEAVE_DEBUGGERSD_ICX_READ_DEBUGGER_COMMANDSD_ICX_VIEW_PROGRAM_SCREENSD_ICX_UPDATE_..KTODEBUG_WINDOWICX_CALL_PROG_WUSIN_OKICX_CALL_PROG_WUSIN_ERRICX_CLLOP_LOADICX_INVAL_CONTINUEICX_CSTOP_CONTINUEICX_CSTOP_AFTER_WAITICX_USTOP_CONTINUEICX_INIT_CONTINUEICX_ASPRG_SUCCESSFULICX_ASPRG_ERRORICX_LDPRG_SUCCESSFULICX_LDPRG_ERRORICX_INITC_FAKE_CTRL_C_CTRL_BICX_ABORTICX_..KTOICX_DEBUG_RESTART_ADDRSD.SD_ICX_INTFUD.SD_ICX_INTFUI.SD_ICX_INTFSC.SD_ICX_INTF [&i 5^ @INPUT    J    ) I)I)%)B Ii) HIi) VIinp9r9stvxz|~) Ii) IiD)ʩY )y yiY)/yy Yyi  Yyyi9I)xi9P)I):9Yi IiY9y9PY9)8i MiyIyyIYyy))  ـI Y yY )8 )xxYʙ X )B Ii) HIi) VIi n p)r)s v t x z | ~ ) Ii) Ii yiDG8 Dy)#xY)WN8 "8ــ)x8y)x ـIY ـyx)x8nono&-+2'9FB'KER4W5\6a7f-k.p/u0z123))H8+ '6j8m8_Hjq _&H7<_F[G^%dGg9j$o;r;v#|+ 'F'E4567.-/0123))H8+ L '+.1]8L< ADHIM]TY\` cMgcjpnr wzQI]  Mcp L yx)x8I#)8ـ yYIYـ IYـy 8y ɉyIyЉ8Y)™  ـy){9y)ցxـ@y 9m) yY8؉Љ y9LYYւxYYւx8iɇSD_ICDEB.PR))) hـ )YN)ـ*8ــyYyI)@I։)I8ــyyy) yY)DY)PxY).YY YyY),9YyyY9YyY8)ЉIYyyyIй9f)ɀx)9) ɀyY)ȋi) Interactive COBOL Debugger   (Use VIEW command provided by SCREEN DEMON to see COBOL program's screen) ЉIYyyyYщY9) ) ɀY)ȋi)9 9 2)92)9)94Y9 9  9399I9 I ?UBLPR? ?PRIPR@ ?SGNLA ?GUNMB ?GSHPTC ?GHRZD ?DIRE ?INITF ?FSTATG ?RELEASEH ?SLISTI ?GLISTJ  ?SYLOGK ?GBIASL ?SBIASM ?IHISTN ?KHISTO $?GNAMEP (?GCPNQ ,?SUSERR 0?SACLS 4?GACLT 8?PNAMEU  4?IDPRI? 8?IDGOTO@ 9YY8y)yyŹy098   (o-o 5o7oDoFoRoTolq  27 Y5y)9 pY9  Y8 8Iy)9 pY9  Y8 8Iy)9 pIY9  Y8 8Iy YY8Iy)I $I):9Y) LII P)yyYYy) 9Yi9Y9YY #2 N] z     <<;;;;| 0 .@$c%Om$~Z>rSD_NO_LANG_RT.OB > SD_NO_LANG_RT  SD.SYSCALL@8Qjp.REQUIRE_LANG_RT_REV_2.30.REQUIRE_LANG_RT_REV_3.10I.INITSC.SD_NO_LANG_RT9.Ɖ9);Program requires LANG_RT: relink without SD_NO_LANG_RT.OB  .@$f?$n$~{rSD_SWAT_INTF.OB r SD_SWAT_INTF%C!/ SD_SHARED_DATA_PARTSD_UNINITIALIZED_DATA_PARTDSh x  +SD_MEM_ALLOCATESD_NEW_WINDOW_NO_INITSD_REMOVE_WINDOWSD_GETCHARSD_SET_SECONDARY_PROGRAM_NAMESD_GET_HOT_CALLED_FROM_NAMESD_RETURN_INPUTSWITCH_TO_SCREEN_DEMON_STACKRESTORE_USER_STACKSD_FLUSH_IF_NEEDED_JSRICTRLCON_FLAGSTIBTIB_UPD_COUNTEXTC_SD_INIT_CALLS=8M\ kSD_VIEW_TARGET_SCREENSD.SD_SWAT_INTFUI.SD_SWAT_INTFSC.SD_SWAT_INTF x)Y  Y y)xb8֐ـ?Qb8Ciɇ)) xx@yƉYxy@y)♀y@y)♣8щƉ yy)♀) 8 ))<yYIY)X SD_VIEW_TARGET_SCREEN 9$y9)yYx)     * 0 8; > J U Z b g poruowz }           .@$~%Om$~' NAMTB.OB   NAMTB# #&NAMTB_PARTNAMTB_NAMES_PARTe     '7Nf w      (0K\j   ": LY hs z  + 9 COg y   )D[p+? P ] j v ?CBADDR?CBBADDR?CBPEEK?CBPOKE?CBSYSSD_ACTIVE_WINDOWSD_BITS_TO_DIGITSSD_BYPASS_OFFSD_BYPASS_ONSD_CLI_CMDSD_CLI_INTERFACESD_COMMANDSD_CONTROLSD_CREATE_WINDOWSD_CREATE_WINDOW_NO_BOXSD_CREATE_WINDOW_NO_INITSD_DIGITS_TO_BITSSD_DISABLESD_DISABLE_HOT_KEYSSD_DISCARD_TYPE_AHEADSD_DISPLAYSD_DISPLAY_INTO_STRINGSD_DRAW_BOXSD_DRAW_HLINESD_DRAW_VLINESD_ENABLESD_ENABLE_HOT_KEYSSD_ERROR_MESSAGESD_FLOAT_WINDOWSD_FLUSHSD_GET_ACCEPT_CURSOR_OFFSETSD_GET_ACCEPT_POSSD_GET_CONTROLSD_GET_CONSOLE_DEVICE_NAMESD_GET_CONSOLE_STATUSSD_GET_HOT_CALLED_FROM_NAMESD_GET_IMAGESD_GET_IMAGE_BELOW_FLOATSD_GET_NEXT_WINDOW_VIEWSD_GET_POSSD_GET_TERMCAPSSD_GET_USER_IDSD_GET_VALUESD_GET_WINDOW_DESCRIPTORSD_GET_WINDOW_VIEWSD_INPUT_MAILSD_INPUT_STRINGSD_LOAD_TIBSD_MENUSD_MESSAGESD_MESSAGE_ONLYSD_MOVE_WINDOW_DOWNSD_MOVE_WINDOW_LEFTSD_MOVE_WINDOW_RIGHTSD_MOVE_WINDOW_UPSD_NEW_WINDOWSD_NEW_WINDOW_NO_INITSD_NEW_WINDOW_VIEWSD_NOTEPADSD_OBTAIN_INPUTSD_POP_UP_MENUSD_PROC_PRSD_PUT_VALUESD_PUT_WINDOW_DESCRIPTORSD_PUT_WINDOW_VIEWSD_READ_CHARSD_READ_CHAR_ONLYSD_READ_MAILSD_REDRAWSD_REMOVE_WINDOWSD_RETURN_INPUTSD_SCROLL_WINDOW_DOWNSD_SCROLL_WINDOW_LEFTSD_SCROLL_WINDOW_RIGHTSD_SCROLL_WINDOW_UPSD_SEND_MAILSD_SET_ACCEPT_CURSOR_OFFSETSD_SET_ACCEPT_LOWERCASESD_SET_ACCEPT_TIMEOUTSD_SET_ACCEPT_UPPERCASESD_SET_AND_LOCK_USER_IDSD_SET_CLI_INIT_CMDSD_SET_LOGOFF_INTERVALSD_SET_SECONDARY_PROGRAM_NAMESD_SET_USER_IDSD_SET_WINDOW_POSITIONSD_SET_WINDOW_SIZESD_SUSPEND_WINDOWSD_SYS_ERROR_MESSAGESD_TEMPLATE_MATCHSD_TOP_WINDOWSD_TURBO_FULLSD_TURBO_OFFSD_TURBO_ONSD_TURBO_PARTIALSD_TURBO_RESETSD_UNLOCK_USER_IDSD_USER_IDSD_RING_7_SYSCALL_OKSD_RING_7_SYSCALL_ERRORSD_DIRECT_OUTPUTp ,;WlSD_CLONE_WINDOWSD_RESTORE_WINDOW_FROM_CLONESD_SET_LINEDRAW_STYLESD_SET_BOX_FILL_STYLESD_GET_DELIMITER_TABLESD_SET_DELIMITER_TABLESD_EXTENDED_READ_CHARSD_ASK_QUESTIONWHO_LOCKED_IT? NAMTB  ?CBADDR   ?CBBADDR     ?CBPEEK     ?CBPOKE     ?CBSYS"  SD_ACTIVE_WINDOW*  SD_BITS_TO_DIGITS<  'SD_BYPASS_OFFN  .SD_BYPASS_ON \  5SD_CLI_CMD$j  ;SD_CLI_INTERFACE(v  DSD_COMMAND,  JSD_CONTROL 0 ! PSD_CREATE_WINDOW"4 # YSD_CREATE_WINDOW_NO_BOX$8 % eSD_CREATE_WINDOW_NO_INIT&< ' rSD_DIGITS_TO_BITS(@ ) {SD_DISABLE*D + SD_DISABLE_HOT_KEYS,H - SD_DISCARD_TYPE_AHEAD.L / SD_DISPLAY0P, 1 SD_DISPLAY_INTO_STRING2T8 3 SD_DRAW_BOX4XP  5 SD_DRAW_HLINE6\\ !7 SD_DRAW_VLINE8`j "9  SD_ENABLE:dx #; SD_ENABLE_HOT_KEYS<h $= SD_ERROR_MESSAGE>l %? SD_FLOAT_WINDOW@p &A  SD_FLUSHBt 'C SD_GET_ACCEPT_CURSOR_OFFSETDx (E SD_GET_ACCEPT_POSF| )G SD_GET_CONTROLH *I SD_GET_CONSOLE_DEVICE_NAMEJ +K SD_GET_CONSOLE_STATUSL ,M SD_GET_HOT_CALLED_FROM_NAMEN2 -O 'SD_GET_IMAGEPN .Q .SD_GET_IMAGE_BELOW_FLOATR\ /S ;SD_GET_NEXT_WINDOW_VIEWTv 0U GSD_GET_POSV 1W MSD_GET_TERMCAPSX 2Y USD_GET_USER_IDZ 3[ ]SD_GET_VALUE\ 4] dSD_GET_WINDOW_DESCRIPTOR^ 5_ qSD_GET_WINDOW_VIEW` 6a {SD_INPUT_MAILb 7c SD_INPUT_STRINGd 8e SD_LOAD_TIBf 9g  SD_MENUh  :i SD_MESSAGEj( ;k SD_MESSAGE_ONLYl4 <m SD_MOVE_WINDOW_DOWNnD =o SD_MOVE_WINDOW_LEFTpX >q SD_MOVE_WINDOW_RIGHTrl ?s SD_MOVE_WINDOW_UPt @u SD_NEW_WINDOWv Aw SD_NEW_WINDOW_NO_INITx By SD_NEW_WINDOW_VIEWz C{ SD_NOTEPAD| D} SD_OBTAIN_INPUT~ E SD_POP_UP_MENU F SD_PROC_PR G SD_PUT_VALUE H  SD_PUT_WINDOW_DESCRIPTOR I SD_PUT_WINDOW_VIEW, J  SD_READ_CHAR@ K 'SD_READ_CHAR_ONLYN L 0SD_READ_MAIL ` M  7SD_REDRAWn N `+I`, P`-Z`.i`/|`0`1`2 `3`4`5 `6`7`8 `9 `:%`;=`< O`=[`> l`? x`@`A`B`C`D`E`F `GSD_INNER_RING_NAMESD_SYSCALL_GATESD_ACTIVE_WINDOWSD_BITS_TO_DIGITSSD_BYPASS_OFFSD_BYPASS_ONSD_CLI_CMDSD_CLI_INTERFACESD_COMMANDSD_CONTROLSD_CREATE_WINDOWSD_CREATE_WINDOW_NO_BOXSD_CREATE_WINDOW_NO_INITSD_DIGITS_TO_BITSSD_DISABLESD_DISABLE_HOT_KEYSSD_DISCARD_TYPE_AHEADSD_DISPLAYSD_DISPLAY_INTO_STRINGSD_DRAW_BOXSD_DRAW_HLINESD_DRAW_VLINESD_ENABLESD_ENABLE_HOT_KEYSSD_ERROR_MESSAGESD_FLOAT_WINDOWSD_FLUSHSD_GET_ACCEPT_CURSOR_OFFSETSD_GET_ACCEPT_POSSD_GET_CONTROLSD_GET_CONSOLE_DEVICE_NAMESD_GET_CONSOLE_STATUSSD_GET_HOT_CALLED_FROM_NAMESD_GET_IMAGESD_GET_IMAGE_BELOW_FLOATSD_GET_NEXT_WINDOW_VIEWSD_GET_POSSD_GET_TERMCAPSSD_GET_USER_IDSD_GET_VALUESD_GET_WINDOW_DESCRIPTORSD_GET_WINDOW_VIEWSD_INPUT_MAILSD_INPUT_STRINGSD_LOAD_TIBSD_MENUSD_MESSAGESD_MESSAGE_ONLYSD_MOVE_WINDOW_DOWNSD_MOVE_WINDOW_LEFTSD_MOVE_WINDOW_RIGHTSD_MOVE_WINDOW_UPSD_NEW_WINDOWSD_NEW_WINDOW_NO_INITSD_NEW_WINDOW_VIEWSD_NOTEPADSD_OBTAIN_INPUTSD_POP_UP_MENUSD_PROC_PRSD_PUT_VALUESD_PUT_WINDOW_DESCRIPTORSD_PUT_WINDOW_VIEWSD_READ_CHARSD_READ_CHAR_ONLYSD_READ_MAILSD_REDRAWSD_REMOVE_WINDOWSD_RETURN_INPUTSD_SCROLL_WINDOW_DOWNSD_SCROLL_WINDOW_LEFTSD_SCROLL_WINDOW_RIGHTSD_SCROLL_WINDOW_UPSD_SEND_MAIL#`H`I`J`K `L!`M4`gJ`Og`Pu`Q`R`S`T`U `V `W `X `Y`Z`["`\ 3`]=`^Q`_h``x`a`b`c`d`e`f`h`i`j+`SD_SET_ACCEPT_CURSOR_OFFSETSD_SET_ACCEPT_LOWERCASESD_SET_ACCEPT_TIMEOUTSD_SET_ACCEPT_UPPERCASESD_SET_AND_LOCK_USER_IDSD_SET_CLI_INIT_CMDSD_SET_LOGOFF_INTERVALSD_SET_SECONDARY_PROGRAM_NAMESD_SET_USER_IDSD_SET_WINDOW_POSITIONSD_SET_WINDOW_SIZESD_SUSPEND_WINDOWSD_SYS_ERROR_MESSAGESD_TEMPLATE_MATCHSD_TOP_WINDOWSD_TURBO_FULLSD_TURBO_OFFSD_TURBO_ONSD_TURBO_PARTIALSD_TURBO_RESETSD_UNLOCK_USER_IDSD_USER_IDSD_RING_7_SYSCALL_OKSD_RING_7_SYSCALL_ERRORSD_DIRECT_OUTPUTSD_CLONE_WINDOWSD_RESTORE_WINDOW_FROM_CLONESD_SET_LINEDRAW_STYLESD_SET_BOX_FILL_STYLESD_GET_DELIMITER_TABLESD_SET_DELIMITER_TABLESD_EXTENDED_READ_CHARSD_ASK_QUESTIONWHO_LOCKED_IT?DUMMY_GATE_CALL SCREEN_DEMON_RING_6.PR .W$TT$n$_ APPLY_SD_UPDATE.CLI comment APPLY_SD_UPDATE.CLI Screen Demon rev 3.52.01 comment Copyright (C) 1993, Threshold, Inc., All Rights Reserved comment -------------------------------------------------------- comment apply_sd_update.cli push prompt pop searchlist [!searchlist]& [!nequal,[!path =],[!path [!edirectory [!pathname %0\%.cli]]]]& [!edirectory [!pathname %0\%.cli]]& [!end] defacl +,oware write write Screen Demon update installation write ================================ write push [!equal,,[!path :screen_demon_3.52]] write No SCREEN_DEMON_3.52 directory found in : - creating one. create/directory/max=999999999 :screen_demon_3.52 write [!end] write directory :screen_demon_3.52 directory/1=error/2=error :screen_demon_3.52 comment If there is no MEM subdirectory, create it [!equal,,[!path =mem]] write Creating MEM subdirectory in [!path =] create/directory/max=999999999 mem [!end] [!equal,,[!path =conlog]] write Creating CONLOG subdirectory in [!path =] create/directory/max=999999999 conlog [!end] comment Set proper ACL's for the Screen Demon subdirectories acl :screen_demon_3.52 [!user],oware +,re acl :screen_demon_3.52:(mem,conlog) +,ware acl/2=ignore :screen_demon_3.52:sd_post_office +,ware comment If standard Screen Demon inner ring program and shared library comment are not in the Screen Demon directory, create links for them [!equal,,[!path =SCREEN_DEMON_RING_6.PR]] [!nequal,,[!path SCREEN_DEMON_RING_6.PR]] ((write,),)create/link SCREEN_DEMON_RING_6.PR & [!path SCREEN_DEMON_RING_6.PR] [!end] [!end] [!equal,,[!path =SCREEN_DEMON.SL]] [!nequal,,[!path SCREEN_DEMON.SL]] ((write,),)create/link SCREEN_DEMON.SL [!path SCREEN_DEMON.SL] [!end] [!end] comment Now return to the original directory where this macro was executed pop comment Flag set if any update patches are installed var0 0 write Patching main library SCREEN_DEMON.LB... [!equal,,[!path LB.PATCH_LIST]] write ,,,,No patches required for SCREEN_DEMON.LB [!else] xeq patch/t=[!path SCREEN_DEMON.LB]/p=([LB.PATCH_LIST])/yes var0 1 [!end] write write Patching inner ring interface module SD_INTERFACE_IR.OB... [!equal,,[!path IR.PATCH_LIST]] write ,,,,No patches required for SD_INTERFACE_IR.OB [!else] x patch/t=[!path sd_interface_ir.ob]/p=([ir.patch_list])/yes var0 1 [!end] write write Patching CEO interface module SD_CEO_INTERFACE.OB... [!equal,,[!path CEO.PATCH_LIST]] write ,,,,No patches required for SD_CEO_INTERFACE.OB [!else] x patch/t=[!path sd_ceo_interface.ob]/p=([CEO.PATCH_LIST])/yes var0 1 [!end] write write Patching WordPerfect interface module SD_WP_SHELL.OB... [!equal,,[!path WP.PATCH_LIST]] write ,,,,No patches required for SD_WP_SHELL.OB [!else] x patch/t=[!path sd_wp_shell.ob]/p=([WP.PATCH_LIST])/yes var0 1 [!end] write write Patching Screen Demon registration program SD_REGISTER.PR... [!equal,,[!path REG.PATCH_LIST]] write ,,,,No patches required for SD_REGISTER.PR [!else] x patch/t=[!path sd_register.pr]/p=([REG.PATCH_LIST])/yes [!end] comment Rebuild things only if any patches were installed above [!nequal,0,[!var0]] write write Rebuilding SD_SPY.PR program... make_sd_spy write write Rebuilding SD_PLAY.PR program... make_sd_play write write Rebuilding default inner ring program SCREEN_DEMON_RING_6.PR... make_sd_inner_ring write write Rebuilding default shared library SCREEN_DEMON.SL... make_screen_demon.sl [!end] write write Screen Demon update installation complete! pop .W$Rb>$n$_|MAKE_PRISWI_CONFIG.CLI comment MAKE_PRISWI_CONFIG.CLI Screen Demon rev 3.52.01 comment Copyright (C) 1993, Threshold, Inc., All Rights Reserved comment -------------------------------------------------------- [!equal,,comment] This macro creates a customized SD_PRISWI_CONFIG file which will be accessed at runtime by Screen Demon's SD_PRISWI print file redirector routine. [!end] push prompt pop searchlist [!searchlist]& [!nequal,[!path =],[!path [!edirectory [!pathname %0\%.cli]]]]& [!edirectory [!pathname %0\%.cli]]& [!end] ((write x/s),x/s) & masm/ps=masm_32char.ps/o=SD_PRISWI_CONFIG%0/% & SD_PRISWI_DEFINES SD_PRISWI_CONFIG [!equal,(),([!string])] ((write x/s),x/s) link/supst/nbot=0/udf/elementsize=4 SD_PRISWI_CONFIG [!equal,(),([!string])] delete/2=ignore SD_PRISWI_CONFIG ((write renamed),rename) SD_PRISWI_CONFIG.PR SD_PRISWI_CONFIG ((write deleted),delete) SD_PRISWI_CONFIG.OB [!end] [!end] pop .W$Rb?$n$_MAKE_SCREEN_DEMON.VM.CLI comment MAKE_SCREEN_DEMON.VM.CLI Screen Demon rev 3.52.01 comment Copyright (C) 1993, Threshold, Inc., All Rights Reserved comment -------------------------------------------------------- [!equal,,COMMENT] This macro creates a new SCREEN_DEMON_3.00.VM file. This file is used by Screen Demon revision 3.00 thru 3.52. It expects to find the console type assignments in the file SCREEN_DEMON.CONTYPES [!end] push prompt pop directory/1=error/2=error :screen_demon_3.52 searchlist [!searchlist]& [!nequal,[!path =],[!path [!edirectory [!pathname %0\%.cli]]]]& [!edirectory [!pathname %0\%.cli]]& [!end] defacl +,ware comment If there is no MEM subdirectory, create it [!equal,,[!path =mem]] write No [!path =]:MEM subdirectory found - creating one. create/directory/max=999999999 mem [!end] comment If there is no CONLOG subdirectory, create it [!equal,,[!path =conlog]] write No [!path =]:CONLOG subdirectory found - creating one. create/directory/max=999999999 conlog [!end] write x/s masm/ps=masm_32char.ps/o=SCREEN_DEMON_3.00.VM & SD_VM_DEFINES SD_TERMCAPS SCREEN_DEMON.CONTYPES [!equal,(),([!string])] x/s link/udf/supst/overwrite/nbot=512/elementsize=20 SCREEN_DEMON_3.00.VM [!equal,(),([!string])] delete/2=ignore SCREEN_DEMON_3.00.VM.bu rename/2=ignore SCREEN_DEMON_3.00.VM<,.bu> rename SCREEN_DEMON_3.00.VM<.pr,> acl SCREEN_DEMON_3.00.VM +,WARE delete/2=ignore SCREEN_DEMON_3.00.VM. write write SCREEN_DEMON_3.00.VM is ready for use write [!end] [!end] pop .W$Rb@$n$_ MAKE_SD_B32_USERSUBS.CLI comment MAKE_SD_B32_USERSUBS.CLI Screen Demon rev 3.52.01 comment Copyright (C) 1993, Threshold, Inc., All Rights Reserved comment -------------------------------------------------------- [!equal,,comment] This macro creates the Screen Demon interface module for B32. Usage: MAKE_SD_B32_USERSUBS{/O=modulename}{/L=listfile} {other source files} The interface module should be linked with the B32 interpreter to allow B32 programs to call Screen Demon routines. The filename of this module can be specified with the /O= global switch. If no /O= global switch is given, the filename will be SD_B32_USERSUBS.OB This macro will also create a text file containing a list of all Screen Demon routines and their corresponding UCALL numbers. The name for this file can be specified with the /L= global switch. If no /L= switch is given, the filename will be SD_B32_UCALLS.LS Additional global switches for MASM can be included if needed. Additional source files can be included if desired as command line arguments. If present, these files must end with .EOF, not .END!!! NOTE: The MASM phase can be skipped if just the UCALL listing is desired by including the /NOMASM global switch. The UCALL listing phase can be suppressed by including the /NOLIST global switch. [!end] push prompt pop searchlist [!searchlist]& [!nequal,[!path =],[!path [!edirectory [!pathname %0\%.cli]]]]& [!edirectory [!pathname %0\%.cli]]& [!end] string/k [!equal,,%0/nomasm%] ((write x/s),x/s) & masm/ps=masm_32char.ps/o=[!equal,,%0/o=%]SD_B32_USERSUBS[!else]%0/o=%[!end]%0\nolist% & SD_B32_DEFINES SD_B32_UCALLS %1-% SD_B32_USERSUBS [!equal,(),([!string])] write [!equal,,%0/o=%]SD_B32_USERSUBS[!else]%0/o=%[!end].OB created write [!end] [!end] comment If the MASM was successful, create the SCREEN DEMON UCALL listing comment by executing the UCALL declarations file as a CLI macro. [!equal,(),([!string]%0/nolist%)] write Building Screen Demon UCALL listing file... string [!nequal,,%0/l=%]%0/l=%[!else]SD_B32_UCALLS.LS[!end] delete/2=ignore [!string] write/l=[!string] Screen Demon UCALL Routines for B32 write/l=[!string] write/l=[!string] Screen Demon routine name[!ascii 11]UCALL[!ascii 11]Argument types delete/2=ignore ?<,?rtn>.tmp write/l=?narrow.tmp num-expr[!ascii 46] write/l=?wide.tmp num-expr[!ascii 46] write/l=?string.tmp string-expr[!ascii 46] write/l=?narrow?rtn.tmp num-var[!ascii 46] write/l=?wide?rtn.tmp num-var[!ascii 46] write/l=?string?rtn.tmp string-var[!ascii 46] comment Initialize beginning SD UCALL number var0 1 [sd_b32_ucalls.sr] delete/2=ignore ?<,?rtn>.tmp [!end] pop .W$RbE$n$_*MAKE_SD_INNER_RING.CLI comment MAKE_SD_INNER_RING.CLI Screen Demon rev 3.52.01 comment Copyright (C) 1993, Threshold, Inc., All Rights Reserved comment -------------------------------------------------------- [!equal,,comment] This macro rebuilds the SCREEN DEMON Inner Ring subroutine program. Optional global switches: /RING=ring# Specifies the ring in which the Screen Demon inner ring program will be loaded. The default is ring 6. /CONFIG=filename Specifies an alternate configuration file to use instead of SD_SL_CONFIG. /O=inner_ring_filename Specifies an alternate filename to use for the inner ring program instead of SCREEN_DEMON_RING_.PR, where is the ring number specified by the /RING= switch. /COB32 Indicates that 32-bit VS/COBOL programs are also being linked into the inner ring program, and so will require the COBOL.LB and LANG_RT libaries. /PRISWI Causes the Printer Switcher routine to be linked with the inner ring program. The SD_PRISWI_CONFIG file must be available at runtime. /LANG_RT Indicates that the Common Language Runtime library is to be linked with the inner ring program. This switch is not necessary if the /COB32 switch is specified. /PID_SIZE= Allows a type other than HYBRID to be specified for the inner ring program. This may be necessary on AOS/VS II systems where an ANYPID type program cannot ringload a HYBRID. In that case, use /PID_SIZE=ANYPID when creating the inner ring program if the ring 7 program that will be using the inner ring program is an ANYPID type. /GATES=gate-array-module-name Specifies an alternate gate array definition .OB module that declares the gates which will be used to access the new inner ring program. A gate array module is created using the MAKE_SD_GATES.CLI macro. If this switch is not supplied, the default is to use _GATES.OB if it exists; otherwise, the default SCREEN_DEMON_RING_6_GATES.OB will be used. /WP Causes the interface routines for WordPerfect Library/Office Shell to be linked with the new inner ring program. The SHELLCOM.32.OB file provided by WordPerfect must be available. /CEO Includes an interface to CEO Mail and to the CEO Interrupt Menu. This interface uses routines from CEO Toolkit, which must be available on your system. /NOVM Causes the resulting inner ring program to run outside of the SCREEN_DEMON_3.00.VM file. This means that programs using this inner ring program will not be visible to SD_SPY, and will be unable to pass the screen image across program calls. /NOMODELID Prevents programs that use this inner ring program from querying the terminal for its model id on startup. The program will assume it is running on a D210 terminal. This switch is often used with /NOVM. Additional object modules may be included by listing them on the command line. Optional patches will be installed if they are placed in a file called SCREEN_DEMON.PAT. See the SCREEN_DEMON.OPTIONAL.PAT file for instructions on creating a SCREEN_DEMON.PAT file. Also, all available fix patches, as specified in the NONICX.PATCH_LIST file, will be installed. [!end] push prompt pop Comment Adjust the following SEARCHLIST command to fit your file system: searchlist [!searchlist]& & [!nequal,,%0/cob32/infos/lang_rt%]& [!nequal,,%0/cob32%]& :util:cobol& [!end]& [!nequal,,%0/cob32/lang_rt%]& :util:lang_rt& [!end]& [!end]& & [!nequal,[!path =],[!path [!edirectory [!pathname %0\%.cli]]]]& [!edirectory [!pathname %0\%.cli]]& [!end] Comment If required switches were not supplied, recurse with defaults [!equal,,%0/$setup%] %0\%%0\config\o\ring%/$setup& & /config=[!equal,,%0/config=%]SD_SL_CONFIG[!else]%0/config=%[!end]& & /ring=[!equal,,%0/ring=%]6[!else]%0/ring=%[!end]& & /o=[!equal,,%0/o=%][!path =]:SCREEN_DEMON_RING_[!equal,,%0/ring=%]6[!else]%0/ring=%[!end]& [!else][!equal,,[!edirectory %0/o=%]][!path =][!else][!path [!edirectory %0/o=%]][!end]:[!efile %0/o=%][!end] %-% [!else] [!equal,,[!path %0/config=%.OB]] write ERROR: cannot find configuration file %0/config=%.OB [!else] write write ,,,,Using configuration file [!path %0/config=%.OB] write ,,,,,,,,,to create %0/o=%.PR write ((write x/s),x/s) & link/stacksize=8192/tasks=32& /o=[!edirectory %0/o=%]:?[!pid]_sd_ir& [!equal,,%0/mtop=%]/mtop=1[!end]& [!equal,,%0/pid_size=%]/pid_size=[!equal,[!system],AOS/VS]HYBRID[!else]ANYPID[!end][!end]& %0\$setup\o\config\gates\priswi\cob32\infos\lang_rt\ceo\wp% & & [!nequal,,%0/gates=%]& %0/gates=%& [!else][!nequal,,[!path %0/o=%_GATES.OB]]& %0/o=%_GATES& [!else][!nequal,,[!path [!ename %0/o=%]_GATES.OB]]& [!ename %0/o=%]_GATES& [!else]& screen_demon_ring_6_gates& [!end][!end][!end]& & %0/config=% & & %1-% & & sd_interface_ir& & [!nequal,,%0/wp%]& sd_wp_shell& [!nequal,,[!path :wpoffice:wpoexe:shellcom.32.ob]]& :wpoffice:wpoexe:shellcom.32& [!else][!nequal,,[!path :wpml:shellcom.32.ob]]& :wpml:shellcom.32& [!else]& shellcom.32.ob& [!end][!end]& [!end]& & [!nequal,,%0/ceo%]& sd_ceo_interface& :util:ceo_dir:it_lib.lb/multiple& [!end]& & [!nequal,,%0/priswi%]& sd_priswi& [!end]& & [!nequal,,%0/novm%]& sd_init_no_vm& [!equal,,%0/nomodelid%]& sd_no_vm_termcaps_tbl& [!end]& [!end]& & [!nequal,,%0/nomodelid%]& sd_no_model_id& [!end]& & screen_demon.lb& & [!nequal,,%0/cob32%]& cfalt ffalt cobol.lb& [!end]& & [!nequal,,%0/infos%]& [!equal,,%0/infos=%]& icall32& [!else]& dummyicall32& [!end]& [!end]& & [!nequal,,%0/cob32/lang_rt%]& .STKSIZE/value=8192& multitasking no_queued_task_mgr inner.lb lang_rt.lb& [!else]& sd_no_lang_rt& [!end] [!nequal,(),([!string])] write [!ascii 207] write Errors prevent creation of new inner ring program! [!else] comment Install optional patches to the inner ring program [!nequal,,[!path SCREEN_DEMON.PAT]] x patch/t=[!edirectory %0/o=%]:?[!pid]_sd_ir.PR/p=SCREEN_DEMON.PAT/yes [!end] comment Install fix patches if available [!nequal,,[!path NONICX.PATCH_LIST]] x patch/t=[!edirectory %0/o=%]:?[!pid]_sd_ir.PR/p=([NONICX.PATCH_LIST])/yes [!end] [!equal,,comment] Now that the new inner ring program is ready for use, rename it to the desired name. Waiting until this point prevents users from accessing a partially-patched version. [!end] delete/2=ignore [!edirectory %0/o=%]:[!efile %0/o=%.PR] delete/2=ignore [!edirectory %0/o=%]:[!efile %0/o=%.ST] delete/2=ignore [!edirectory %0/o=%]:[!efile %0/o=%.PR.PH] write Renaming [!path [!edirectory %0/o=%]:?[!pid]_sd_ir.PR]& to [!efile %0/o=%.PR] rename [!path [!edirectory %0/o=%]:?[!pid]_sd_ir.PR]& [!efile %0/o=%.PR] write Renaming [!path [!edirectory %0/o=%]:?[!pid]_sd_ir.ST]& to [!efile %0/o=%.ST] rename [!path [!edirectory %0/o=%]:?[!pid]_sd_ir.ST]& [!efile %0/o=%.ST] [!nequal,,[!path [!edirectory %0/o=%]:?[!pid]_sd_ir.PR.PH]] write Renaming [!path [!edirectory %0/o=%]:?[!pid]_sd_ir.PR.PH]& to [!efile %0/o=%.PR.PH] rename [!path [!edirectory %0/o=%]:?[!pid]_sd_ir.PR.PH]& [!efile %0/o=%.PR.PH] [!end] write write [!path %0/o=%.PR] is now ready for use [!end] [!end] [!end] pop .W$RbF%?H$_-MAKE_SD_PLAY.CLI -comment MAKE_SD_PLAY.CLI Screen Demon rev 3.52.01 comment Copyright (C) 1993, Threshold, Inc., All Rights Reserved comment -------------------------------------------------------- [!equal,,comment] This macro creates a new version of the SD_PLAY program, so that its Screen Demon configuration options can be changed. Optional global switches: /CONFIG=filename specifies an alternate configuration file to use instead of SD_SL_CONFIG. /O=programname specifies an alternate program name to create instead of the default name SD_PLAY.PR /COB32 indicates that 32-bit VS/COBOL programs are also being linked with SD_PLAY, and so will require the COBOL.LB and LANG_RT libaries. /LANG_RT indicates that the Common Language Runtime library is to be linked with the new SD_PLAY program. This switch is not necessary if the /COB32 switch is specified. The /PRISWI global switch causes the Printer Switcher routine to be linked with the new version of SD_PLAY. The SD_PRISWI_CONFIG file must be available at runtime. /WP causes the interface routines for WordPerfect Library/Office Shell to be linked with the new SD_PLAY program. The SHELLCOM.32.OB file provided by WordPerfect must be available at link time. /CEO includes an interface to CEO Mail and to the CEO Interrupt Menu. This interface uses routines from CEO Toolkit, which must be available on your system at link time. /NOMODELID prevents the resulting Play from querying the terminal for its model id on startup. Play will assume it is running on a D210 terminal. Additional object modules may be included by listing them on the command line. Optional patches will be installed if they are placed in a file called SCREEN_DEMON.PAT. See the SCREEN_DEMON.OPTIONAL.PAT file for instructions on creating a SCREEN_DEMON.PAT file. Also, all available fix patches, as specified in the NONICX.PATCH_LIST file, will be installed. [!end] push prompt pop Comment Adjust the following SEARCHLIST command to fit your file system: searchlist [!searchlist]& & [!nequal,,%0/cob32/infos/ceo/lang_rt%] [!nequal,,%0/cob32%]& :util:cobol& [!end]& [!nequal,,%0/cob32/ceo/lang_rt%]& :util:lang_rt& [!end]& [!end]& & [!nequal,[!path =],[!path [!edirectory [!pathname %0\%.cli]]]]& [!edirectory [!pathname %0\%.cli]]& [!end] [!equal,,%0/config=%] %0\%%0\config%/config=SD_SL_CONFIG %1-% [!else][!equal,,%0/o=%] %0\%%0\o%/o=SD_PLAY %1-% [!else] [!equal,,[!path %0/config=%.OB]] write ERROR: cannot find configuration file %0/config=%.OB [!else] write write ,,,,Using configuration file [!path %0/config=%.OB] write ,,,,,,,,,to create %0/o=%.PR write (write,x/s) link/stack=20000/tasks=6& [!nequal,,%0/cob32/ceo/lang_rt%]/mtop=1[!end]& %0\config\priswi\wp\ceo\cob32\infos\lang_rt% & sd_play/start sd_play_help_screen & & %0/config=%& & %1-%& & [!nequal,,%0/wp%]& sd_wp_shell& [!nequal,,[!path :wpoffice:wpoexe:shellcom.32.ob]]& :wpoffice:wpoexe:shellcom.32& [!else][!nequal,,[!path :wpml:shellcom.32.ob]]& :wpml:shellcom.32& [!else]& shellcom.32.ob& [!end][!end]& [!end]& & [!nequal,,%0/ceo%]& sd_ceo_interface& :util:ceo_dir:it_lib.lb/multiple& [!end]& & [!nequal,,%0/priswi%]& sd_priswi& [!end]& & [!nequal,,%0/nomodelid%]& sd_no_model_id& [!end]& & screen_demon.lb& & [!nequal,,%0/cob32%]& cfalt ffalt cobol.lb& [!end]& & [!nequal,,%0/infos%]& [!equal,,%0/infos=%]& icall32& [!else]& dummyicall32& [!end]& [!end]& & [!nequal,,%0/cob32/ceo/lang_rt%]& multitasking no_queued_task_mgr lang_rt.lb& [!else]& sd_no_lang_rt& [!end] [!equal,(),([!string])] comment Install optional patches to the new SD_PLAY [!nequal,,[!path SCREEN_DEMON.PAT]] x patch/t==%0/o=%.PR/p=SCREEN_DEMON.PAT/yes [!end] comment Install fix patches if available [!nequal,,[!path NONICX.PATCH_LIST]] x patch/t==%0/o=%.PR/p=([NONICX.PATCH_LIST])/yes [!end] [!nequal,,[!path PLAY.PATCH_LIST]] x patch/t==%0/o=%.PR/p=([SPY.PATCH_LIST])/yes [!end] [!end] [!end] [!end][!end] pop .W$^$n$_aSD_B32_UCALLS.SR aSD?UCALL SD_ACTIVE_WINDOW,WIDE,WIDE SD?UCALL SD_ACTIVE_WINDOW,WIDE?RTN SD?UCALL SD_CLI_CMD,STRING SD?UCALL SD_CLI_INTERFACE SD?UCALL SD_COMMAND SD?UCALL SD_CONTROL,NARROW SD?UCALL SD_CREATE_WINDOW SD?UCALL SD_CREATE_WINDOW,NARROW,NARROW,NARROW,NARROW SD?UCALL SD_CREATE_WINDOW,STRING?RTN SD?UCALL SD_CREATE_WINDOW,NARROW,NARROW,NARROW,NARROW,STRING SD?UCALL SD_CREATE_WINDOW,STRING?RTN,NARROW,NARROW,NARROW,NARROW,STRING SD?UCALL SD_CREATE_WINDOW_NO_INIT SD?UCALL SD_CREATE_WINDOW_NO_INIT,NARROW,NARROW,NARROW,NARROW SD?UCALL SD_CREATE_WINDOW_NO_INIT,STRING?RTN SD?UCALL SD_CREATE_WINDOW_NO_INIT,NARROW,NARROW,NARROW,NARROW,STRING SD?UCALL SD_CREATE_WINDOW_NO_INIT,STRING?RTN,NARROW,NARROW,NARROW,NARROW,STRING SD?UCALL SD_DISABLE SD?UCALL SD_DISPLAY,STRING SD?UCALL SD_DISPLAY_INTO_STRING,STRING,STRING,STRING SD?UCALL SD_DRAW_BOX,NARROW,NARROW,NARROW,NARROW SD?UCALL SD_DRAW_BOX,NARROW,NARROW,NARROW,NARROW,STRING SD?UCALL SD_DRAW_HLINE,NARROW,NARROW,NARROW SD?UCALL SD_DRAW_VLINE,NARROW,NARROW,NARROW SD?UCALL SD_ENABLE SD?UCALL SD_ERROR_MESSAGE,STRING SD?UCALL SD_ERROR_MESSAGE,STRING,NARROW,NARROW SD?UCALL SD_FLOAT_WINDOW SD?UCALL SD_FLOAT_WINDOW,WIDE SD?UCALL SD_FLUSH SD?UCALL SD_GET_CONTROL,NARROW?RTN SD?UCALL SD_GET_HOT_CALLED_FROM_NAME,STRING?RTN SD?UCALL SD_GET_IMAGE,STRING?RTN SD?UCALL SD_GET_NEXT_WINDOW_VIEW,STRING?RTN SD?UCALL SD_GET_NEXT_WINDOW_VIEW,STRING?RTN,WIDE SD?UCALL SD_GET_NEXT_WINDOW_VIEW,STRING?RTN,WIDE?RTN,WIDE SD?UCALL SD_GET_POS,NARROW SD?UCALL SD_GET_USER_ID,STRING?RTN SD?UCALL SD_GET_VALUE,STRING,STRING?RTN,NARROW,NARROW?RTN SD?UCALL SD_GET_WINDOW_DESCRIPTOR,STRING?RTN SD?UCALL SD_GET_WINDOW_DESCRIPTOR,STRING?RTN,WIDE SD?UCALL SD_GET_WINDOW_VIEW,STRING?RTN SD?UCALL SD_GET_WINDOW_VIEW,STRING?RTN,WIDE?RTN SD?UCALL SD_GET_WINDOW_VIEW,STRING?RTN,WIDE?RTN,WIDE SD?UCALL SD_INPUT_MAIL SD?UCALL SD_INPUT_STRING,STRING SD?UCALL SD_MENU,STRING SD?UCALL SD_MENU,STRING,STRING SD?UCALL SD_MENU,STRING,STRING,STRING SD?UCALL SD_MENU,STRING,STRING,STRING,STRING SD?UCALL SD_MENU,STRING,STRING,STRING,STRING,STRING SD?UCALL SD_MENU,STRING,STRING,STRING,STRING,STRING,STRING SD?UCALL SD_MESSAGE,STRING SD?UCALL SD_MESSAGE,STRING,NARROW,NARROW SD?UCALL SD_MESSAGE,STRING,NARROW,NARROW,STRING SD?UCALL SD_MOVE_WINDOW_DOWN SD?UCALL SD_MOVE_WINDOW_DOWN,NARROW SD?UCALL SD_MOVE_WINDOW_LEFT SD?UCALL SD_MOVE_WINDOW_LEFT,NARROW SD?UCALL SD_MOVE_WINDOW_RIGHT SD?UCALL SD_MOVE_WINDOW_RIGHT,NARROW SD?UCALL SD_MOVE_WINDOW_UP SD?UCALL SD_MOVE_WINDOW_UP,NARROW SD?UCALL SD_NEW_WINDOW SD?UCALL SD_NEW_WINDOW,NARROW,NARROW,NARROW,NARROW SD?UCALL SD_NEW_WINDOW,STRING?RTN SD?UCALL SD_NEW_WINDOW,NARROW,NARROW,NARROW,NARROW,STRING SD?UCALL SD_NEW_WINDOW,STRING?RTN,NARROW,NARROW,NARROW,NARROW,STRING SD?UCALL SD_NEW_WINDOW_NO_INIT SD?UCALL SD_NEW_WINDOW_NO_INIT,NARROW,NARROW,NARROW,NARROW SD?UCALL SD_NEW_WINDOW_NO_INIT,STRING?RTN SD?UCALL SD_NEW_WINDOW_NO_INIT,NARROW,NARROW,NARROW,NARROW,STRING SD?UCALL SD_NEW_WINDOW_NO_INIT,STRING?RTN,NARROW,NARROW,NARROW,NARROW,STRING SD?UCALL SD_NEW_WINDOW_VIEW,STRING?RTN,WIDE SD?UCALL SD_NOTEPAD SD?UCALL SD_NOTEPAD,STRING SD?UCALL SD_POP_UP_MENU,STRING SD?UCALL SD_POP_UP_MENU,STRING,STRING SD?UCALL SD_PROC_PR,STRING SD?UCALL SD_PUT_VALUE,STRING,STRING,NARROW SD?UCALL SD_PUT_WINDOW_DESCRIPTOR,STRING?RTN SD?UCALL SD_PUT_WINDOW_DESCRIPTOR,STRING?RTN,WIDE SD?UCALL SD_PUT_WINDOW_VIEW,STRING?RTN,WIDE SD?UCALL SD_READ_CHAR,STRING?RTN SD?UCALL SD_READ_CHAR,STRING?RTN,NARROW SD?UCALL SD_READ_CHAR_ONLY,STRING?RTN SD?UCALL SD_READ_CHAR_ONLY,STRING?RTN,NARROW SD?UCALL SD_READ_MAIL SD?UCALL SD_REDRAW SD?UCALL SD_REMOVE_WINDOW SD?UCALL SD_REMOVE_WINDOW,WIDE SD?UCALL SD_RETURN_INPUT,STRING?RTN,NARROW SD?UCALL SD_SCROLL_WINDOW_DOWN SD?UCALL SD_SCROLL_WINDOW_DOWN,NARROW SD?UCALL SD_SCROLL_WINDOW_LEFT SD?UCALL SD_SCROLL_WINDOW_LEFT,NARROW SD?UCALL SD_SCROLL_WINDOW_RIGHT SD?UCALL SD_SCROLL_WINDOW_RIGHT,NARROW SD?UCALL SD_SCROLL_WINDOW_UP SD?UCALL SD_SCROLL_WINDOW_UP,NARROW SD?UCALL SD_SEND_MAIL,STRING,STRING SD?UCALL SD_SEND_MAIL,STRING,STRING,STRING SD?UCALL SD_SEND_MAIL,STRING,STRING,STRING,STRING SD?UCALL SD_SET_ACCEPT_LOWERCASE SD?UCALL SD_SET_ACCEPT_TIMEOUT,NARROW SD?UCALL SD_SET_ACCEPT_UPPERCASE SD?UCALL SD_SET_AND_LOCK_USER_ID,STRING SD?UCALL SD_SET_CLI_INIT_CMD SD?UCALL SD_SET_CLI_INIT_CMD,STRING SD?UCALL SD_SET_USER_ID,STRING SD?UCALL SD_SET_WINDOW_SIZE,NARROW,NARROW SD?UCALL SD_SUSPEND_WINDOW SD?UCALL SD_SUSPEND_WINDOW,WIDE SD?UCALL SD_SYS_ERROR_MESSAGE,NARROW SD?UCALL SD_SYS_ERROR_MESSAGE,NARROW,STRING SD?UCALL SD_SYS_ERROR_MESSAGE,NARROW,STRING,NARROW,NARROW SD?UCALL SD_TOP_WINDOW SD?UCALL SD_TOP_WINDOW,WIDE SD?UCALL SD_TURBO_FULL SD?UCALL SD_TURBO_OFF SD?UCALL SD_TURBO_ON SD?UCALL SD_TURBO_PARTIAL SD?UCALL SD_UNLOCK_USER_ID .W$RbQ%3uA$_ SD_CLINK.CLI comment SD_CLINK.CLI Screen Demon rev 3.52.01 comment Copyright (C) 1993, Threshold, Inc., All Rights Reserved comment -------------------------------------------------------- [!equal,,comment] This macro links a 32-bit COBOL program with Screen Demon. All standard CLINK switches are supported. Following a successful link, if optional Screen Demon patches exist, they will be applied to the new program. /SDRING= or /SDRING= Causes the program to be linked so that it loads the specified SCREEN DEMON inner ring program, instead of linking the SCREEN DEMON routines into the COBOL program. If just a is given, the inner ring CALLS module name will be SCREEN_DEMON_RING__CALLS.OB Inner ring CALLS modules are created using MAKE_SD_GATES.CLI /SHARED If /SDRING= is not specified, /SHARED causes the program to be linked so that it uses the shared library version of SCREEN DEMON in addition to the shared libraries for COBOL and LANG_RT. If /SDRING= was also included, the program will run SCREEN DEMON in the specified inner ring, but it will still use the COBOL and LANG_RT shared libraries. /CONFIG=config-filename Specifies that the indicated configuration file should be used instead of the default SD_CONFIG.OB file. /PARTURBO Causes the program start up in Partial Turbo mode rather than Full Turbo. Partial Turbo provides the continual screen updates that occur without Turbo, but still transmits only the characters that change. Partial Turbo is much slower than Full Turbo, however, because screen writes are not buffered, thus requiring more system calls. /NOTURBO Forces the program to start with Turbo Display mode completely off. Use this switch only when absolutely necessary. It can disrupt SCREEN DEMON's windowing environment. Try the /PARTURBO switch instead. /PRISWI Causes the Printer Switcher routine to be linked with the COBOL program. Do not use this switch with the /SHARED or /SDRING switches. The SD_PRISWI_CONFIG file must be available at runtime. /WP Causes the interface routines for WordPerfect Library/Office Shell to be linked with the program. The SHELLCOM.32.OB file provided by WordPerfect must be available. /CEO Includes an interface to CEO Mail and to the CEO Interrupt Menu. This interface uses routines from CEO Toolkit, which must be available on your system. /NOVM Causes the resulting program to run outside of the SCREEN_DEMON_3.00.VM file. This means that it will not be visible to SD_SPY, but will also be unable to pass the screen image across program calls. /NOMODELID Prevents the resulting program from querying the terminal for its model id on startup. The program will assume it is running on a D210 terminal. This switch is often used with /NOVM. Optional patches will be installed if they are placed in a file called SCREEN_DEMON.PAT. See the SCREEN_DEMON.OPTIONAL.PAT file for instructions on creating a SCREEN_DEMON.PAT file. [!end] push prompt pop searchlist [!searchlist]& [!nequal,[!path =],[!path [!edirectory [!pathname %0\%.cli]]]]& [!edirectory [!pathname %0\%.cli]]& [!end] write string/k [!equal,,%0/shared/sdring=%] [!equal,,%0/config=%] [!equal,,[!path SD_CONFIG.OB]] write ,,,,Configuration file SD_CONFIG.OB not found! string ERROR [!else] write ,,,,Using configuration file [!path SD_CONFIG.OB] [!end] [!else] [!equal,,[!path %0/config=%.OB]] write ,,,,Configuration file %0/config=%.OB not found! string ERROR [!else] write ,,,,Using configuration file [!path %0/config=%.OB] [!end] [!end] write [!end] [!equal,,[!string]] ((write,),)CLINK/s%0\s\parturbo\noturbo\config\priswi\ceo\wp\sdring% & & %1%& & [!nequal,,%0/sdring=%]& %2-% & & [!equal,6,%0/sdring=%]& SCREEN_DEMON_RING_6_CALLS& [!else][!equal,5,%0/sdring=%]& SCREEN_DEMON_RING_5_CALLS& [!else][!equal,4,%0/sdring=%]& SCREEN_DEMON_RING_4_CALLS& [!else]& %0/sdring=%& [!end][!end][!end]& SD_INNER_RING_INTF& & [!else]& [!equal,,%0/shared%]& [!nequal,,%0/config=%]& %0/config=%& [!else]& sd_config& [!end]& [!end]& & %2-% & & sd_cobol32_intf & & [!nequal,,%0/wp%]& sd_wp_shell& [!nequal,,[!path :wpoffice:wpoexe:shellcom.32.ob]]& :wpoffice:wpoexe:shellcom.32& [!else][!nequal,,[!path :wpml:shellcom.32.ob]]& :wpml:shellcom.32& [!else]& shellcom.32.ob& [!end][!end]& [!end]& & [!nequal,,%0/ceo%]& [!nequal,,%0/shared%]& sd_ceo_interface_rtd& [!else]& sd_ceo_interface& [!end]& :util:ceo_dir:it_lib.lb/multiple& [!end]& & [!equal,,%0/shared%]& [!nequal,,%0/priswi%]& sd_priswi& [!end]& [!end]& & [!nequal,,%0/novm%]& sd_init_no_vm& [!equal,,%0/nomodelid%]& sd_no_vm_termcaps_tbl& [!end]& [!end]& & [!nequal,,%0/nomodelid%]& sd_no_model_id& [!end]& & [!nequal,,%0/shared%]shared_[!end]screen_demon.lb & [!end]& [!end] [!equal,,comment] NOTE: The standard CLINK macro supplied by DG discards the results returned by LINK. To have these results passed back to this macro, the PUSH and POP done in CLINK.CLI must be removed. Then, if the link has errors, this macro will not attempt to install any patches. [!end] comment If the link was successful (or unknown), install applicable patches comment unless /SHARED or /SDRING switches were used. [!equal,(),([!string]%0/shared/sdring=%)] comment Install special anti-Turbo patches to the new program [!nequal,,%0/PARTURBO%] x patch/t=%1%.PR/p=PAR_TURBO.PAT/yes [!else][!nequal,,%0/NOTURBO%] x patch/t=%1%.PR/p=NO_TURBO.PAT/yes [!end][!end] comment Install user-selected patches to the new program [!nequal,,[!path SCREEN_DEMON.PAT]] x patch/t=%1%.pr/p=SCREEN_DEMON.PAT/yes [!end] comment Install fix patches if available [!nequal,,[!path NONICX.PATCH_LIST]] x patch/t=%1%.pr/p=([NONICX.PATCH_LIST])/yes [!end] [!end] pop .W$RbT$n$_͘SD_CONFIG_DEFINES.SR  .TITLE SD_CONFIG ; Definitions for SCREEN DEMON revision 3.52.01 configuration files ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; ;;; Copyright (C) 1988 - 1993, ;;; ;;; Threshold, Inc. ;;; ;;; Auburn, Alabama U.S.A. ;;; ;;; All rights reserved. ;;; ;;; ;;; ;;; SCREEN DEMON and its associated hot-key routines ;;; ;;; are proprietary property of Threshold, Inc. ;;; ;;; Except as provided for by the License Agreement; these ;;; ;;; shall not be copied, used, or disclosed for any purpose or ;;; ;;; reason in who