85 `.D'rj(6v&'rj'NONICX.PATCH_LIST 'spec_conlog_3.52.02.pat,& ceo_cli_3.52.03.pat,& read_char_retinp_3.52.03.pat,& draw_lines_awmod_3.52.05.pat,& po_user_list_close_3.52.05.pat,& line_style_reset_3.52.05.pat,& sd_match_wildcard_3.52.05.pat,& con_intr_echo_3.52.05.pat,& sm_notyah_3.52.06.pat,& stamp_rebuild_3.52.06.pat,& wp_shell_cli_3.52.06.pat,& ir_lang_rt_init_3.52.06.pat,& no_turbo_float_wnd_3.52.06.pat,& restore_clone_3.52.06.pat,& get_next_view_3.52.07.pat,& horiz_scroll_3.52.07.pat,& odd_float_flush_3.52.08.pat,& put_value_resize_3.52.08.pat,& po_user_list_ovfl_3.52.08.pat& .W%?H(6v&&e k)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&P(6v&&P PO_USER_LIST_CLOSE_3.52.05.PAT  ;--------------------------------------------------------------------- ; PO_USER_LIST_CLOSE_3.52.05.PAT 23-MAR-94 ; ;This patch corrects a problem with the " List of Users" option in ; the Send Mail hot key routine. The SD_PO_USERS_LIST file and/or the ; Post Office directory was not being closed on exit from the routine. ; This could cause the process to eventually run out of available channels. ; Applies to programs linked with Screen Demon rev 3.52 SD_INPUT_MAIL+2333 [XJSR .+354,1] {LPSHJ #SD_PATCH,1} SD_INPUT_MAIL<>0 ^+1 [] [] SD_INPUT_MAIL<>0 ^+1 [XWLDA 0,2,3] [] SD_INPUT_MAIL<>0 ^+1 [] [NOP] SD_INPUT_MAIL<>0 #SD_PATCH 0 [XNLDA 0,11,3] SD_INPUT_MAIL<>0 ^+1 0 [] SD_INPUT_MAIL<>0 ^+1 0 [LJSR SD_INPUT_MAIL+2707,1] SD_INPUT_MAIL<>0 ^+1 0 [] SD_INPUT_MAIL<>0 ^+1 0 [] SD_INPUT_MAIL<>0 ^+1 0 [XWLDA 0,2,3] SD_INPUT_MAIL<>0 ^+1 0 [] SD_INPUT_MAIL<>0 ^+1 0 [WPOPJ] SD_INPUT_MAIL<>0 SD_PATCH #SD_PATCH\ #SD_PATCH+10\ SD_INPUT_MAIL<>0 ^+1 [] [] SD_INPUT_MAIL<>0 ;end of patch .W&P(6v&&P GSD_MATCH_WILDCARD_3.52.05.PAT  ;--------------------------------------------------------------------- ; SD_MATCH_WILDCARD_3.52.05.PAT 21-MAR-94 ; ;This patch corrects a problem with the SD_TEMPLATE_MATCH routine where ; the optional delimiter table was ignored while attempting to match ; a multi-wildcard character (+). Instead, the default delimiters of ; SPACE, COMMA, and all unprintable characters were used. Since the ; given delimiter table WAS used for matching the remainder of the ; strings, the combination sometimes resulted in unpredictable results. ; Applies to programs linked with Screen Demon rev 3.52 SD_MATCH+121 [XJSR SD_MATCH,1] {LPSHJ #SD_PATCH,1} SD_MATCH<>0 ^+1 [] [] SD_MATCH<>0 ^+1 [SKIP] [] SD_MATCH<>0 #SD_PATCH 0 [XWLDA 2,6,3] SD_MATCH<>0 ^+1 0 [] SD_MATCH<>0 ^+1 0 [LJSR SD_MATCH,1] SD_MATCH<>0 ^+1 0 [] SD_MATCH<>0 ^+1 0 [] SD_MATCH<>0 ^+1 0 [ISZTS] SD_MATCH<>0 ^+1 0 [WPOPJ] SD_MATCH<>0 SD_PATCH #SD_PATCH\ #SD_PATCH+7\ SD_MATCH<>0 ^+1 [] [] SD_MATCH<>0 ;End of patch .W&P(EQ&P7vSPY_REMINP_CHAR_3.52.05.PAT 7;--------------------------------------------------------------------- ; SPY_REMINP_CHAR_3.52.05.PAT 18-APR-94 ; ;This patch corrects a problem with Remote Input in Spy where all of the ; Spy'ing terminal's characteristics would be set to those of the remote ; terminal, instead of just selected items. If the remote terminal's ; baud rate, parity, etc. differed from those of the Spy'ing terminal, ; chaos would result. ; Applies only to SD_SPY.PR in Screen Demon rev 3.52 SD_SPY+10700 135771 131771 SD_SPY+10703 172011 156011 SD_SPY+10705 145451 165451 SD_SPY+10707 135751 131751 SD_SPY+10712 161451 141451 SD_SPY+10721 161471 141471 SD_SPY+10726 145451 165451 SD_SPY+10730 161451 141451 SD_SPY+10740 161471 141471 SD_SPY+10742 171571 101033 SD_SPY+10747 161471 141471 ;End of patch .W%s (6v&&e +m*SD_VM_DEFINES.SR  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; $Id: sd_vm_defines.sr,v 1.5 1994/05/23 21:15:48 mark Exp mark $ ; ; $Log: sd_vm_defines.sr,v $ ; Revision 1.5 1994/05/23 21:15:48 mark ; TERMINAL_ASSIGNMENTS section did not subtract console-type's low unit # ; from given console #'s, and so would set the wrong terminal's model id ; if the particular console-type group didn't start at zero. ; ; Revision 1.4 1994/03/11 17:27:47 mark ; Inserted previous log comments ; ; Revision 1.3 1994/03/11 01:45:18 mark ; Added RCS Id and Log fields ; ; Revision 1.2 1994/03/10 23:04:57 mark ; Default model id code for MODEL_ID macro was incorrect ; ; Revision 1.1 1994/03/10 22:05:09 mark ; Initial revision ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; .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 = 0 ;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-^3.LO .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 .@%Ui(6v&&e nSCREEN_DEMON_RING_5_CALLS.OB  SD_GATE_CALLS# SD_SHARED_DATA_PARTItPPP P P PP P PP  P $P <P MP WPjP PP P P P PPPPPP!P2P@PZPoP P P!P" P#P$P% P&P'P( "P)/P* >P+IP, PP-ZP.iP/|P0P1P2 P3P4P5 P6P7P8 P9 P:%P;=P< OP=[P> lP? xP@PAPBPCPDPEPF PGSD_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#PHPIPJPK PL!PM4PgJPOgPPuPQPRPSPTPU PV PW PX PYPZP["P\ 3P]=P^QP_hP`xPaPbPcPdPePfPhPiPj+PSD_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_5.PR .W&P(6v&&PNO_TURBO_FLOAT_WND_3.52.06.PAT ;--------------------------------------------------------------------- ; NO_TURBO_FLOAT_WND_3.52.06.PAT 3-AUG-94 ; modified 23-AUG-94 ; ;If Turbo Display mode is off, data in floating windows is vulnerable to ; application program output, which is why floating windows are not ; recommended in that situation. However, in some cases their use is ; unavoidable, such as the floating window used to display the Screen ; Demon mail indicator. When Turbo mode is off, floating windows need ; to be flushed at each ACCEPT; this was not being done, and is forced ; by this patch. ; Applies to Screen Demon rev 3.52 SD_INPUT_FIELD+3376 [WCOM 0,0] {LPSHJ #SD_PATCH,1} ^+1 [NSANA 100,0] [] ^+1 [] [] #SD_PATCH 0 [WCOM 0,0] ^+1 0 [NSANA 100,0] ^+1 0 [] ^+1 0 [WPOPJ] ^+1 0 [LWLDA 0,FLOAT_TOP_WINDOW,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WSEQ 0,0] ^+1 0 [WPOPJ] ^+1 0 [ISZTS] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+13\ ^+1 [] [] ;End of patch .W&P(6v&&PɂHORIZ_SCROLL_3.52.07.PAT ;--------------------------------------------------------------------- ; HORIZ_SCROLL_3.52.07.PAT 23-AUG-94 ; ;This patch corrects a problem with Screen Demon's support of D400-style ; horizontal scrolling. If the cursor was not initially positioned in the ; hardware window being scrolled, the scroll command would be sent to the ; terminal twice. This could result in an incorrectly positioned screen, ; depending on the amount being scrolled, and the particular terminal or ; emulator being used. ; Applies to programs linked with Screen Demon rev 3.52 SD_DISPLAY+6161 [XNSTA 0,1,3] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [WSUB 1,0] [] #SD_PATCH 0 [XNLDA 0,1,2] ^+1 0 [] ^+1 0 [XNLDA 1,1,3] ^+1 0 [] ^+1 0 [WSNE 0,1] ^+1 0 [WBR .+5] ^+1 0 [XNSTA 0,1,3] ^+1 0 [] ^+1 0 [WSUB 1,0] ^+1 0 [WPOPJ] ^+1 0 [WPOP 0,0] ^+1 0 [LJMP SD_DISPLAY+6243,1] ^+1 0 [] ^+1 0 [] SD_PATCH #SD_PATCH\ #SD_PATCH+16\ ^+1 [] [] ;End of patch .W&P(6v&&PnFINAL_ALTSET_IN_3.52.07.PAT ;--------------------------------------------------------------------- ; FINAL_ALTSET_IN_3.52.07.PAT 15-SEP-94 ; ;This patch corrects a problem where the "In Alternate Character Set" flag ; was sometimes set incorrectly for the terminal image at the end of a ; flush operation. This could result in characters being displayed from ; the wrong set on subsequent flushes. ; Applies ONLY to the file SCREEN_DEMON.LB for Screen Demon rev 3.52 %USERFILE 167220 77400 37400 ;End of patch .@&VH(6v&&VJSD_INPUT_FIELD.OB   SD_INPUT_FIELD4C&r!90!NSD_SHARED_DATA_PARTSD_UNSHARED_DATA_PARTSD_UNINITIALIZED_DATA_PARTa  +K`q4D [ dp %4CWq *2 : DNSX]bglq   (-37Gb}    0:H_o..RIPSD_CALL_HOT_KEY_ROUTINESD_FLUSHSD_FLUSH_BUT_HOLD_OUTPUTSD_FLUSH_HDW_STATE_ONLYSD_NEW_WINDOWSD_REMOVE_WINDOWSD_REMOVE_WINDOW_NO_FLUSHSD_CREATE_FLOAT_WINDOWSD_CONSOLE_SET_VIRTUAL_DELIM_TBLSD_CONSOLE_INPUT_PREPSD_RESET_TIMEOUTSSD_CLASSIFY_TIMEOUT_ERRORSD_PROCESS_TIMEOUT_ERRORSD_MONITOR_STRINGSD_MONITOR_STRING_INTO_VIBSD_MONITOR_STRING_INTO_TIBSD_MONITOR_STRING_INTO_WINDOWSD_MONITOR_ECHO_INTO_VIBSD_MONITOR_ECHO_INTO_TIBSD_OUTPUT_STRINGSD_OUTPUT_STRING_TO_BUFSD_REDRAWSD_TERMINATESD_EXECUTE_LIST_OF_CALLSSD_ENTER_HOT_KEYSD_EXIT_HOT_KEYSD_LOG_CONSOLE_EVENTSD_CLOSE_CONSOLE_LOG_FILESD_ACQUIRE_RESOURCESD_RELEASE_RESOURCESD_GETCHAR_ONLYSD_FIND_CONSOLE_CHANNEL_INFOSD_MEM_ALLOCATESD_RETURN_INPUTSD_RESET_FLUSH_TIMERSD_ADJUST_WINDOW_MOD_ZONESSD_DISCARD_INPUT_CACHESHOT_KEY_ASSIGNMENTS_TABLEKEY_TRANSLATION_TABLEHOT_ESCAPE_KEYRETURN_INPUT_STRINGRETURN_INPUT_SIZEOBTAIN_INPUT_SIZESD_PENDING_FUNKEY_CHARTIBTIBOFSATTRBTIB_UPD_COUNTTIB_LMARTIB_RMARTIB_WNDDSCTIB_WNDFLGAWDSCAWBUFAWPOSAWOFSAWATRAWCPLAWLPPWINDOW_SCROLL_COUNTRDL_REBUILD_COUNTFLOAT_TOP_WINDOWCON_FLAGSPID_FLAGSCON_LAST_DELIMCON_HOT_KEYSD_PERIODIC_CALLS_LISTSD_PRE_HOT_CALLS_LISTSD_POST_HOT_CALLS_LISTSD_PRE_?READ_CALLS_LISTICTRLICTRL2CTRLCONLOG_OPEN_FLAGVIRTUAL_CON_CHARACTERISTICSVIRTUAL_CON_DELIMITER_TABLEACTUAL_CON_DELIMITER_TABLEHOT_DELIMITER_TABLESD_CON_NUMAOS.VS_REVISIONAOS.VS_TYPEINPUT_FEEDBACK_STRINGINPUT_FEEDBACK_STRING_SIZECON_VMPID_VMVM_CHANFLUSH_OUTPUT_BUFFLUSH_OUTPUT_PTRSD_CUR_PIDCON_ACTIVE_PIDSD_?IDGOTO_TARGET_TASKSSD_HOT_KEY_LEVELSD_REMOTE_VIEW_INDICATORSD_REMOTE_VIEW_INDICATOR_SIZESD_REMOTE_VIEW_INDICATOR_LINESD_REMOTE_VIEW_INDICATOR_COLUMNHg 9AVe| SD_REMOTE_VIEW_INDICATOR_HEIGHTSD_REMOTE_VIEW_INDICATOR_WIDTHSD_REMOTE_INPUT_INDICATORSD_REMOTE_INPUT_INDICATOR_SIZESD_REMOTE_INPUT_INDICATOR_LINESD_REMOTE_INPUT_INDICATOR_COLUMNSD_REMOTE_INPUT_INDICATOR_HEIGHTSD_REMOTE_INPUT_INDICATOR_WIDTHNULL_TBLSD_INPUT_HISTORY_SIZESD_CONFIG_FLAGSSD_MODEM_DISCONNECT_KEYEXTC_SD_INIT_CALLSEXTC_SD_POST_PROC_CALLSEXTC_SD_PRE_FLUSH_CALLSSD.SYSCALL     (_1D^huow[h#o7G W ,i .~   "    SD_INPUT_FIELDSD_INPUT_FIELD_TO_FULLSD_INPUT_STRINGFLDPKTFLDSCRNPKTSET_FLD_DELIM_TBLSD_REQUEST_INPUT_THROUGH_SPYSD_DIVERT_INPUT_THROUGH_SPYSD_INPUT_IS_AVAILABLE_FROM_SPYSD_SPY_REMOTE_INPUTSD_ABORT_?READ_IN_PROGRESSSD_SET_ACCEPT_UPPERCASESD_SET_ACCEPT_LOWERCASESD_SET_ACCEPT_CURSOR_OFFSETSD_GET_ACCEPT_CURSOR_OFFSETSD_GET_ACCEPT_POSSD_GET_PREV_FROM_INPUT_HISTORYSD_GET_NEXT_FROM_INPUT_HISTORYSDSetAcceptUppercaseSDSetAcceptLowercaseSD_?ESBB_DISABLESD_INPUT_TASK_IDINPUT_ERROR_WINDOWINPUT_CASE_CONVERSIONSD_INPUT_SEMAPHORESD_INPUT_ABORT_ADDRSD_?READ_ABORT_SEMSD_NONTRAIL_DELIM_TBLSD_HOT_INPUT_TYPESD.SD_INPUT_FIELDUD.SD_INPUT_FIELDUI.SD_INPUT_FIELDrv@INPUTo?   !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !!##%%''))++--//1133557799;;==??AACCEEGGIIKKMMOOQQSSUUWWYY[[]]__aacceeggiikkmmooqqssuuwwyy{{}}xy z                                 "  $  & & ( +  (  )  *  +!  ," #)3I9?9M)3Y9?I9M)3Y9?9MyY9g)) )Y)8)i W)IfiI9giYI QۂȉIY9Y9N9$9%9*9=9> ) 9& sYOY9"9!)9II9Y*y))I9)i) )ۉYi(کi)Y"$I( 3O)?I9yY))y)))@yi9Y9)Y)0yy   Xyi9"9! ))x x))x)xi)9!I9$9%) i yX8iI9$)!i̹yII)! yyi9! O y)))I9) 8 yɀY)ȂY*Y))) )ۉYi(کiЉ)) )!iy()y))IIT9Yȹ9 ))i))I9) 59i*y)yi*99999/xy)x -y)I)y yY" Y)x)yi9&Y)iY/)x)iˁY1)() 8O8i )@xi -y)I) yX)i Oщyyy   & EWKWQW]{cV{     S               +9 B z      C  S     ' . 8F>@G T [ a eWq u }v  R   `R 0HRW     $)x((IyYyYyyyiY3ɀ9#)щ iIXYYYiXYYȢ)ȫYXI )XY)xYyYXYȃY)ȫYЉxY)ȫYY)!XXѹY)I)I)YYi)?Y칤9 ®%E)i9 ) )IYYYiXȫY)!IɹY)X ѩY9))!ɹy( )?Y_IYYѳɀ9#) 8)Y" Y)8i9&Y8 49YyyiI)9Y9)) )XXi*Y$W))))8I9*9)Y9)`)Y)x)Qx)> ^)x)?8())Y>Y))XY)@Yi(( ) x)( ))@Y8 ) ) I)I9=Yף () )ۣ)ܣٻ#yyi u)Q أ(۫ڂ*ޣy#yyi݁ Y9=) )ˉYʩ(i( `)S)Yy    C, 0=4<@<Q=U:_=c<i<} =: =<   Cv    # 1 4 B?H<O _:n tK{d~e(bcc)gfT! T\[ =     S-5 vKR" %J/_2 5_:_?_B E_H K_N Q_Zfd_g j_m_r u_x }  __S  Q#   %™x))YYY) )?)IY1Y" )}8)x)IY9)9)((iӸY) i9>Y1) )9N) D )i)?8x |Y) 'Ůy)?xJ) ) Jy)8,8XY,yi)?x)Y)əy9yX9))9y8i) yY9 y))9 )  yY9(8>x9(( 8y Yyi( xI9x8()x9(I)¹ ~y9(9')щ ) )>)=8Y)'i )) I8)xyY9YyyiydyIyiЉ)0I) )) Y9YYi)ՉI))*)IU)()*щY9*y9)ѩ̹) yyYi9 y))9 ) ) i9 i)?)'Y~)#X XIɀXљI‰8y)yYYyy)i)>8*xY)ȫYY) iX )IYXIXȫY {  {  "K/3`= GRMwU ` c i o r uK`RLL"$RO#N#P#R%IT    G-@8Gf n ty } X       X T (8 "A' ,/1)8:A FUGZ`GC(B) <=9J=<& )Y)>)=щIi)'y)) *)=)>)йx).8)'yidyIii y))9 )9 ) 9) 9 Y9)9)09x)))ȫYـ) )xɀ)YȫY Y8i)9)9)iiI )9)8)Iyi9X9y))Iy)yi9))9))X Y S)))9 )) 9)) x I8Y99 9 9 *xXY)I)X)I9 9)ȫY9 )) )XXYi9 *)y))?8)ـIx) )yi)?))YXiYi)YYȳȫYXI)I  YI)ـ)Ii)YXYi)xYY)ȫY)XI) I  YI)'8+)x)!)x)Mй889) w) Oщ)$)%)!8)xx)79N88Y)x)79N)"X)x)79N $Y))?щ xYIYy Y)xI)й $8   T, 0S6 < Clq(tHy@V@CAB@C@@ @3@;@j ?< )(CAB9;)@ EE(CA B)=<" =9@;G L RXY ] f ou x }L LV 7 LL3*3T1^  ' ))) 8o)8i +9)Yy)'yyi 9I) )I %Y8)) )YyyIyX)YY I8)Yx)Y8yyy)@Yi9Ly9(x)y98Yy9YX(i)Yyyi)ՉII9>YzViY9>)L uI)щ li)x¹)Mй ~*))ڹ8)i)"8i)79NyX8iX! ~ ¹)!)$Xѩ } +Y9)9N4 ((y ~x)y9Y))'Y9'y9 uP +)y9xYy9(()'YY =i)Y./1) Oй )"yy9 y)xi O ) 8Xi)!Y8y O)IyiyyiI)!Y O I)&y9yYyi O9i O)) yxy(`)i9)xyy))yY)x)IYȃYYYiЉI)8y8iX9i))$8)'x 8)?) )88Y))x))yI乡YiR JRU ')R053 6L9M?6B E4M T X ] b f k nRt5{ ~  4W  5W4v5    A A /2(W;VG W7Z b v                 `R   v&Wn V  V XV7(8)) I8Yx8)i)) 8I)8)N88i)g W)IE9D9C G(9B)9A*9@)@*)A))B( G )C)D Ey)yY)éYй8xYЉ艇yxxi)')!y)Y)xi)')!y)Y)x)))y) )ۉ)I) y)Ii)  ) I)IY9)yΉYYi)i)i))Ii Yxo8pYy )9  ) yyyYyi  Y9xy)'̹yIIy9) 9)9)9)'9yy9 yi )YiI))d84y x y9") y 8Y )QY Ź9)9Y99 @ y))Yճ֦8)ʙ) )9Y9y)8 Y99yi))qx)YYy)pΉ) y x^T ^% (+.R5J<REUK'`Wg l q v {          W      VWL  &_i mlkj hi      {% *Z2aC{LJS_V_^Sd v{{ {JS{J { .o srqp)s y9") ))8Ňy 8Y y)YNYYUy)8 XYNi)Y19(9') IYS) I͉Y9Yyyi) ) ))Qx)> |9Yt p`)I.)).)) )/)) )9))8*YY 9) 9))~YY普8 Iyiщ8)'8)8yyY YYȹ8yYxi)'YYyyyY9Yy ) 8 x8詓ੀyyY Y ȩ8YyIYyЉIx) 8 虑8虂่xY Y yY Y YyyIYyЉI noJ+ 0 38 ; B I L P{U Z{b i o{w ~  `K {8 JTLf     #J+]. 2 5u<,A D G J M PuT Z h k rt|              M-       t     - M- " ( + 0 5 : > DtI L O UtZ ] ` j-p * .W&B["(6v'&B[";ESD_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 44 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&m(6v'&m`SD_PRISWI_DEFINES.SR ; SD_PRISWI_DEFINES Screen Demon rev 3.52.08 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; ;;; Copyright (C) 1988 - 1994, ;;; ;;; 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_USER_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&P(6v'&P- ICX_INP_ERR_RESTART_3.52.03.PAT -;--------------------------------------------------------------------- ; ICX_INP_ERR_RESTART_3.52.03.PAT 24-NOV-93 ; ;This patch prevents a possible fatal error from occurring when an ACCEPT is ; restarted by ICX because of user input errors, such as nonnumeric data in ; a numeric field. This was caused by an incorrect calculation of the ; number of characters in the field past the cursor, which resulted in a ; trap if the WCST microcode checked parameters before starting. ; ; Applies ONLY to ICX rev 1.70 and 1.71 linked with Screen Demon rev 3.52 SD_ICX_INPUT_FIELD+102 [XWLDA 1,25,3] {LPSHJ #SD_PATCH,1} accept_field<>0 ^+1 [] [] accept_field<>0 ^+1 [XWSUB 1,110,3] [] accept_field<>0 ^+1 [] [NOP] accept_field<>0 #SD_PATCH 0 [XWLDA 1,25,3] accept_field<>0 ^+1 0 [] accept_field<>0 ^+1 0 [XLEFB 0,110,3] accept_field<>0 ^+1 0 [] accept_field<>0 ^+1 0 [WSUB 0,1] accept_field<>0 ^+1 0 [WPOPJ] accept_field<>0 SD_PATCH #SD_PATCH\ #SD_PATCH+6\ accept_field<>0 ^+1 [] [] accept_field<>0 ;End of patch .W&P(6v'&P~READ_CURADR_3.52.03.OPTPAT ~;--------------------------------------------------------------------- ; READ_CURADR_3.52.03.OPTPAT 15-DEC-93 ; ;This patch prevents "Read Cursor Address" commands issued by the host ; program from actually being sent to the terminal. Instead, Screen ; Demon will emulate the command. This patch is necessary for programs ; that make excessive use of this terminal command, such as software ; from OD Systems. Do not install this patch unless required; the ; emulation routine may not work in all cases. ; Applies to programs linked with Screen Demon 3.52 SD_MONITOR_STRING+4371 [WCOM 0,0] [WSUB 0,0] ;End of patch .W&P(6v'&PuFP0_DEBUGGER_3.52.04.PAT u;--------------------------------------------------------------------- ; FP0_DEBUGGER_3.52.04.PAT 8-MAR-94 ; ;This patch corrects a problem where Screen Demon would enter the system ; debugger if the string "FP0" was displayed by the host program. ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.52 %USERFILE 116626 135771 104670 ;End of patch .D&gg(6v'&gg8oMLB.PATCH_LIST 8FP0_debugger_3.52.04.pat,& final_altset_in_3.52.07.pat& .W%}(6v'&e(sSD_GATE_CALL_DEFINES.SR (;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 .ALIGN 2 ;Guarantee that the lower 16 bits of the byte .WORD 0 ; ptr SD_INNER_RING_NAME*2 will not be all zero, ; as required by the inner ring initialization ; routine 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 ; defines the system call gate, which must be the first gate. .MACRO BEGIN_SD.CALLS ;The first gate is reserved GATE SD_SYSCALL_GATE ;Gate 0 is the special gate for the ; system call interceptor % ;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 % .EOF .W&P(6v'&P ~WP_SHELL_CLI_3.52.06.PAT ;--------------------------------------------------------------------- ; WP_SHELL_CLI_3.52.06.PAT 30-JUN-94 ; ;This patch corrects two problems with the CLI hot key routine in the Screen ; Demon WordPerfect Office interface. When running under Office, CLI is ; called via the Office Shell. However, when not running under Office, the ; routine emulates the standard CLI hot key routine by drawing a horizontal ; line across the bottom of the screen, and then calling CLI directly. ; Unlike the standard CLI interface, the cursor does not remain below the ; line, but returns to the input field where the hot key was pressed; this ; causes CLI output to appear in the middle of the program screen. This ; patch fixes that problem, as well as one causing a trap when preparing to ; call CLI directly. ; Applies to programs linked with Screen Demon 3.52 and the WordPerfect Office ; interface. SD_WP_SHELL_CLI+52 [LJSR SD_OUTPUT_STRING,1] {LPSHJ #SD_PATCH,1} SD_WP_SHELL_CLI<>0 ^+1 [] [] SD_WP_SHELL_CLI<>0 ^+1 [] [] SD_WP_SHELL_CLI<>0 #SD_PATCH 0 [LCALL SD_NEW_WINDOW,1,0] SD_WP_SHELL_CLI<>0 ^+1 0 [] SD_WP_SHELL_CLI<>0 ^+1 0 [] SD_WP_SHELL_CLI<>0 ^+1 0 [] SD_WP_SHELL_CLI<>0 ^+1 0 [LJSR SD_MONITOR_STRING,1] SD_WP_SHELL_CLI<>0 ^+1 0 [] SD_WP_SHELL_CLI<>0 ^+1 0 [] SD_WP_SHELL_CLI<>0 ^+1 0 [WPOPJ] SD_WP_SHELL_CLI<>0 SD_WP_SHELL_CLI+122 [LCALL SD_PROC_PR,1,1] {LJMP #SD_PATCH+10,1} SD_WP_SHELL_CLI<>0 ^+1 [] [] SD_WP_SHELL_CLI<>0 ^+1 [] [] SD_WP_SHELL_CLI<>0 ^+1 [] [NOP] SD_WP_SHELL_CLI<>0 #SD_PATCH+10 0 [LCALL SD_PROC_PR,1,1] SD_WP_SHELL_CLI<>0 ^+1 0 [] SD_WP_SHELL_CLI<>0 ^+1 0 [] SD_WP_SHELL_CLI<>0 ^+1 0 [] SD_WP_SHELL_CLI<>0 ^+1 0 [LCALL SD_REMOVE_WINDOW,1,0] SD_WP_SHELL_CLI<>0 ^+1 0 [] SD_WP_SHELL_CLI<>0 ^+1 0 [] SD_WP_SHELL_CLI<>0 ^+1 0 [] SD_WP_SHELL_CLI<>0 ^+1 0 [LCALL SD_REDRAW,1,0] SD_WP_SHELL_CLI<>0 ^+1 0 [] SD_WP_SHELL_CLI<>0 ^+1 0 [] SD_WP_SHELL_CLI<>0 ^+1 0 [] SD_WP_SHELL_CLI<>0 ^+1 0 [LJMP SD_WP_SHELL_CLI+137,1] SD_WP_SHELL_CLI<>0 ^+1 0 [] SD_WP_SHELL_CLI<>0 ^+1 0 [] SD_WP_SHELL_CLI<>0 SD_WP_SHELL_CLI+114 [WSUB 0,0] {LPSHJ #SD_PATCH+27,1} SD_WP_SHELL_CLI<>0 ^+1 [WSTB 2,0] [] SD_WP_SHELL_CLI<>0 ^+1 [WINC 2,2] [] SD_WP_SHELL_CLI<>0 #SD_PATCH+27 0 [LDAFP 3] SD_WP_SHELL_CLI<>0 ^+1 0 [WSUB 0,0] SD_WP_SHELL_CLI<>0 ^+1 0 [WSTB 2,0] SD_WP_SHELL_CLI<>0 ^+1 0 [WINC 2,2] SD_WP_SHELL_CLI<>0 ^+1 0 [WPOPJ] SD_WP_SHELL_CLI<>0 SD_PATCH #SD_PATCH\ #SD_PATCH+34\ SD_WP_SHELL_CLI<>0 ^+1 [] [] SD_WP_SHELL_CLI<>0 ;End of patch .W&P(6v'&PRESTORE_CLONE_3.52.06.PAT ;--------------------------------------------------------------------- ; RESTORE_CLONE_3.52.06.PAT 10-AUG-94 ; ;This patch corrects a problem with the SD_RESTORE_WINDOW_FROM_CLONE call ; where the window stack parameters for the restored window were being ; cleared. This cut the window stack at that point. The same problem ; would occur if the D400 save/restore screen command was used. ; Applies to programs linked with Screen Demon rev 3.52 SD_RESTORE_WINDOW_FROM_CLONE+45 [WSUB 0,0] [WBR .+11] ;End of patch .W&P(6v'&P1SHORT_RVID_3.52.06.OPTPAT 1;--------------------------------------------------------------------- ; SHORT_RVID_3.52.06.OPTPAT 10-AUG-94 ; ;This patch forces Screen Demon to use single-character sequences ; for Reverse Video On and Off commands to the terminal, instead ; of the standard two-character sequences. Note that some terminal ; emulators do not support these shorter versions. ; Applies to programs linked with Screen Demon rev 3.52 SD_DISPLAY+4370 36 202 ^+2 151131 100470 SD_DISPLAY+4472 36 226 ^+2 151131 100470 ;end of patch .W%Q(6v'&eBy APPLY_SD_UPDATE.CLI Bcomment APPLY_SD_UPDATE.CLI Screen Demon rev 3.52.02 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 in libraries and/or comment .OB modules above, or if there are any program-level patches [!nequal,,[!path NONICX.PATCH_LIST]] var0 1 [!end] [!nequal,0,[!var0]] 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] var1 0 write write Patching Spy program module SD_SPY.OB... [!equal,,[!path SPY.OB.PATCH_LIST]] write ,,,,No patches required for SPY.OB [!else] x patch/t=[!path spy.ob]/p=([spy.ob.patch_list])/yes var1 1 [!end] [!nequal,0,[!uadd [!var0],[!var1]]] write write Rebuilding SD_SPY.PR program... make_sd_spy [!end] var1 0 write write Patching Play program module SD_PLAY.OB... [!equal,,[!path PLAY.OB.PATCH_LIST]] write ,,,,No patches required for PLAY.OB [!else] x patch/t=[!path sd_play.ob]/p=([play.ob.patch_list])/yes var1 1 [!end] [!nequal,0,[!uadd [!var0],[!var1]]] write write Rebuilding SD_PLAY.PR program... make_sd_play [!end] write write Screen Demon update installation complete! pop .W&P(6v'&Po ICX_INP_ERR_TIMEOUT_3.52.02.PAT o;--------------------------------------------------------------------- ; ICX_INP_ERR_TIMEOUT_3.52.02.PAT 22-SEP-93 ; ;This patch prevents an ACCEPT timeout declared with the SD_SET_ACCEPT_TIMEOUT ; call from being lost if an error occurs on the ACCEPT, such as alphabetic ; characters being typed in a numeric field. ; Applies ONLY to ICOBOL rev 1.40 - 1.60 ICX linked with Screen Demon 3.52 SD_ICX_RDFD+2 [LNLDA 0,ACCEPT_TIMEOUT,1] {LPSHJ #SD_PATCH,1} SD_ICX_RDFD<>0 ^+1 [] [] SD_ICX_RDFD<>0 ^+1 [] [] SD_ICX_RDFD<>0 #SD_PATCH 0 [LWLDA 0,INPUT_ERROR_WINDOW,1] SD_ICX_RDFD<>0 ^+1 0 [] SD_ICX_RDFD<>0 ^+1 0 [] SD_ICX_RDFD<>0 ^+1 0 [WSNE 0,0] SD_ICX_RDFD<>0 ^+1 0 [WBR .+7] SD_ICX_RDFD<>0 ^+1 0 {LNLDA 0,#SD_NPATCH,1} SD_ICX_RDFD<>0 ^+1 0 [] SD_ICX_RDFD<>0 ^+1 0 [] SD_ICX_RDFD<>0 ^+1 0 [LNSTA 0,ACCEPT_TIMEOUT,1] SD_ICX_RDFD<>0 ^+1 0 [] SD_ICX_RDFD<>0 ^+1 0 [] SD_ICX_RDFD<>0 ^+1 0 [LNLDA 0,ACCEPT_TIMEOUT,1] SD_ICX_RDFD<>0 ^+1 0 [] SD_ICX_RDFD<>0 ^+1 0 [] SD_ICX_RDFD<>0 ^+1 0 {LNSTA 0,#SD_NPATCH,1} SD_ICX_RDFD<>0 ^+1 0 [] SD_ICX_RDFD<>0 ^+1 0 [] SD_ICX_RDFD<>0 ^+1 0 [WPOPJ] SD_ICX_RDFD<>0 SD_PATCH #SD_PATCH\ #SD_PATCH+22\ SD_ICX_RDFD<>0 ^+1 [] [] SD_ICX_RDFD<>0 SD_NPATCH #SD_NPATCH\ #SD_NPATCH+1\ SD_ICX_RDFD<>0 ^+1 [] [] SD_ICX_RDFD<>0 ;End of patch .W&P(6v'&PNO_?ESBB_3.52.02.OPTPAT ;--------------------------------------------------------------------- ; NO_?ESBB_3.52.02.OPTPAT 6-OCT-93 ; ;This patch disables Screen Demon's use of the ?ESBB option for ; console ?READ's. There are several bugs in AOS/VS II rev 2.10 - 3.00 ; and AOS/VS Classic 7.69 - 7.70 with this option that result in strange ; behavior. ; ; NOTE: This patch should NOT be installed if you are running ; a revision of AOS/VS II prior to rev 2.10, or if you ; are running AOS/VS Classic prior to rev 7.69, because ; it will result in less efficient console I/O. ; ; NOTE2: If this patch is installed, the Screen Demon configuration option ; TRIM_SPACE_UNDERSCORE_ON_INPUT? must be set to NO. ; ; Applies to programs linked with Screen Demon rev 3.52 SD_INPUT_FIELD+262 20 0 SD_?ESBB_DISABLE=0 SD_INPUT_FIELD+735 20 0 SD_?ESBB_DISABLE=0 SD_INPUT_FIELD+1021 20 0 SD_?ESBB_DISABLE=0 SD_?ESBB_DISABLE [NOP] [WSUB 2,2] SD_?ESBB_DISABLE<>0 ;End of patch .W&P(6v'&PT2PLAY_VALID_TIME_3.52.02.PAT T;--------------------------------------------------------------------- ; PLAY_VALID_TIME_3.52.02.PAT 3-NOV-93 ; ;This patch corrects a problem with SD_PLAY where log files recorded past ; about 6:00 pm would be considered invalid. ; Applies ONLY to SD_PLAY.OB in Screen Demon rev 3.52 %USERFILE 7143 101211 101033 ;End of patch .W%?I(6v'&e.y^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&P(6v'&P ICEO_CLI_3.52.03.PAT I;--------------------------------------------------------------------- ; CEO_CLI_3.52.03.PAT 9-FEB-94 ; ;This patch corrects a problem with the CLI hot key routine in the Screen ; Demon CEO interface. When running under CEO, CLI is called via the ; CEO_CP. However, when not running under CEO, the routine emulates ; the standard CLI hot key routine by drawing a horizontal line across ; the bottom of the screen, and then calling CLI directly. Unlike the ; standard CLI interface, the cursor does not remain below the line, ; but returns to the input field where the hot key was pressed; this ; causes CLI output to appear in the middle of the program screen. ; Applies to programs linked with Screen Demon 3.52 and the CEO interface. SD_CEO_CLI_INTERFACE+177 [LJSR SD_OUTPUT_STRING,1] {LPSHJ #SD_PATCH,1} SD_CEO_CLI_INTERFACE<>0 ^+1 [] [] SD_CEO_CLI_INTERFACE<>0 ^+1 [] [] SD_CEO_CLI_INTERFACE<>0 #SD_PATCH 0 [LCALL SD_NEW_WINDOW,1,0] SD_CEO_CLI_INTERFACE<>0 ^+1 0 [] SD_CEO_CLI_INTERFACE<>0 ^+1 0 [] SD_CEO_CLI_INTERFACE<>0 ^+1 0 [] SD_CEO_CLI_INTERFACE<>0 ^+1 0 [LJSR SD_MONITOR_STRING,1] SD_CEO_CLI_INTERFACE<>0 ^+1 0 [] SD_CEO_CLI_INTERFACE<>0 ^+1 0 [] SD_CEO_CLI_INTERFACE<>0 ^+1 0 [WPOPJ] SD_CEO_CLI_INTERFACE<>0 SD_CEO_CLI_INTERFACE+250 [LCALL SD_PROC_PR,1,1] {LJMP #SD_PATCH+10,1} SD_CEO_CLI_INTERFACE<>0 ^+1 [] [] SD_CEO_CLI_INTERFACE<>0 ^+1 [] [] SD_CEO_CLI_INTERFACE<>0 ^+1 [] [NOP] SD_CEO_CLI_INTERFACE<>0 #SD_PATCH+10 0 [LCALL SD_PROC_PR,1,1] SD_CEO_CLI_INTERFACE<>0 ^+1 0 [] SD_CEO_CLI_INTERFACE<>0 ^+1 0 [] SD_CEO_CLI_INTERFACE<>0 ^+1 0 [] SD_CEO_CLI_INTERFACE<>0 ^+1 0 [LCALL SD_REMOVE_WINDOW,1,0] SD_CEO_CLI_INTERFACE<>0 ^+1 0 [] SD_CEO_CLI_INTERFACE<>0 ^+1 0 [] SD_CEO_CLI_INTERFACE<>0 ^+1 0 [] SD_CEO_CLI_INTERFACE<>0 ^+1 0 [LCALL SD_REDRAW,1,0] SD_CEO_CLI_INTERFACE<>0 ^+1 0 [] SD_CEO_CLI_INTERFACE<>0 ^+1 0 [] SD_CEO_CLI_INTERFACE<>0 ^+1 0 [] SD_CEO_CLI_INTERFACE<>0 ^+1 0 [LJMP SD_CEO_CLI_INTERFACE+265,1] SD_CEO_CLI_INTERFACE<>0 ^+1 0 [] SD_CEO_CLI_INTERFACE<>0 ^+1 0 [] SD_CEO_CLI_INTERFACE<>0 SD_PATCH #SD_PATCH\ #SD_PATCH+27\ SD_CEO_CLI_INTERFACE<>0 ^+1 [] [] SD_CEO_CLI_INTERFACE<>0 ;End of patch .W&P(6v'&PREAD_CHAR_RETINP_3.52.03.PAT ;--------------------------------------------------------------------- ; READ_CHAR_RETINP_3.52.03.PAT 10-FEB-94 ; ;This patch corrects a problem with the SD_READ_CHAR et.al. call where ; a character defined as a hot key was returned to the SD_READ_CHAR ; via the SD_RETURN_INPUT call. Contrary to the documentation, the ; returned character was being treated as a hot key in this case. This ; would cause some hot key routines, such as the Input History access ; routines, to go into an infinite loop when pressed at an input ; occurring as a result of an SD_READ_CHAR call, such as in SDCALENDAR. ; Applies to programs linked with Screen Demon 3.52 SD_READ_CHAR+1222 [LLDB 0,(RETURN_INPUT_STRING)*2,1] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [] [] #SD_PATCH 0 [WADC 0,0] ^+1 0 [XNSTA 0,13,3] ^+1 0 [] ^+1 0 [LLDB 0,(RETURN_INPUT_STRING)*2,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+10\ ^+1 [] [] ;End of patch .W&P(6v(&PSD_POSSESS_ICX_1.60.PAT  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; $Id: sd_possess_icx_1.60.pat,v 1.3 1994/03/11 17:27:47 mark Exp mark $ ; ; $Log: sd_possess_icx_1.60.pat,v $ ; Revision 1.3 1994/03/11 17:27:47 mark ; Inserted previous log comments ; ; Revision 1.2 1994/03/11 01:45:18 mark ; Added RCS Id and Log fields ; ; Revision 1.1 1994/03/10 22:05:09 mark ; Initial revision ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;The patches in this file activate the SCREEN DEMON routines. ; ;This file applies only to revision 1.60 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] ;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+140] [] ICX_CALL_PROG_WUSIN_ERR CHNOP+151\ CHNOP+153\ ^+1 [] [] ;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+71 [XJSR WRPGD,1] [LJMP SD_ICX_ASPRG,1] ^+1 [] [] ^+1 [WBR ASPRG+124] [] ICX_ASPRG_SUCCESSFUL ASPRG+65\ ASPRG+74\ ^+1 [] [] ICX_ASPRG_ERROR ASPRG+136\ ASPRG+124\ ^+1 [] [] LDPRG+7 [XJSR RDPGD,1] [LJMP SD_ICX_LDPRG,1] ^+1 [] [] ^+1 [WBR LDPRG+35] [] SD_ICX_LDPRG+11 312 276 ;Catch ICX Abort so that SCREEN DEMON can reset the window environment ; if control is returning to LOGON. ; Note that the 343 in next line is actually ICX's STATUS address, ; which PATCH won't accept in the instruction format necessary. CSTOP+2 [LDA 0,343,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 [] [] ICX_INITC_FAKE_CTRL_C_CTRL_B INITC+35\ INITC+41\ ^+1 [] [] ICX_..KTO ..KTO+1\ ..KTO\ ^+1 [] [] ;********** 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+16 [XJSR DSPER,1] [LJMP SD_ICX_ERROR_INVAL,0] ^+1 [] [] ^+1 [XWLDA 0,-6,3] [] ^+1 [] [NOP] DSPER+104 [XJSR PWRLN,1] [LJMP SD_ICX_ERROR_MPRE,0] ^+1 [] [] ^+1 [WRTN] [] DSPER+115 [XJSR WRLN,1] [LJMP SD_ICX_ERROR_MMSG,0] ^+1 [] [] ^+1 [WRTN] [] ICX_INVAL_CONTINUE INVAL+22\ INVAL+24\ ^+1 [] [] SETDLM+1344 [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+1363,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+121 [XJSR @16000000006,0] [WBR .+4] ^+1 [] [NOP] ^+1 265 [NOP] ^+1 [WBR CACHR+22] [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 GETSW+55 [BTO 2,1] [WBTO 2,1] RDSEC+424 [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+171 [NLDAI 0,0] [NLDAI 11610,0] ^+1 [] [] ^+1 [NLDAI 11610,1] [WSUB 1,1] ^+1 [] [WSUB 2,2] ;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 .D&ZwP(6v(&ZwRIlODD_FLOAT_FLUSH_3.52.08.PAT I;--------------------------------------------------------------------- ; ODD_FLOAT_FLUSH_3.52.08.PAT 17-NOV-94 ; ;This patch corrects a problem with Screen Demon's screen output routine. ; If a region being displayed from a floating window began on an odd ; byte, the last character of the region would not always be displayed ; on a normal flush. ; Applies to programs linked with Screen Demon rev 3.52 SD_DISPLAY+2250 [XNLDA 1,2,2] [XWLDA 1,6,3] ^+1 [] [] ^+1 [XNADD 1,25,3] [WLSI 1,1] ^+1 [] [NOP] ^+3 [XWADD 0,2,3] [NOP] ^+1 [] [NOP] ;End of patch .D&k(6v(&kMENU_DEF_SEL_3.52.08.PAT ;This patch corrects a problem with the SD_MENU call when using large item ; lists. If the specified default item was past the first pageful of ; menu entries, the first item would be highlighted instead. ; Applies to programs linked with Screen Demon rev 3.52 SD_MENU+2330 [XNLDA 1,73,3] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [WSLE 0,1] [] #SD_PATCH 0 [XNLDA 1,72,3] ^+1 0 [] ^+1 0 [WSLE 0,1] ^+1 0 [WPOPJ] ^+1 0 [XNLDA 1,74,3] ^+1 0 [] ^+1 0 [WSGT 0,1] ^+1 0 [WBR .+11] ^+1 0 [XNADD 1,73,3] ^+1 0 [] ^+1 0 [WSLE 0,1] ^+1 0 [WBR .+11] ^+1 0 [XNSUB 0,74,3] ^+1 0 [] ^+1 0 [ISZTS] ^+1 0 [WPOPJ] ^+1 0 [WSBI 1,0] ^+1 0 [XNSTA 0,74,3] ^+1 0 [] ^+1 0 [WBR .+3] ^+1 0 [XNADI 1,74,3] ^+1 0 [] ^+1 0 [WPOP 1,1] ^+1 0 [LJMP SD_MENU+1622,1] ^+1 0 [] ^+1 0 [] SD_PATCH #SD_PATCH\ #SD_PATCH+32\ ^+1 [] [] ;End of patch .D'rj(6v('rjM^ICX.PATCH_LIST Micx_inp_err_timeout_3.52.02.pat,& spec_conlog_3.52.02.pat,& icx_inp_err_restart_3.52.03.pat,& ceo_cli_3.52.03.pat,& read_char_retinp_3.52.03.pat,& draw_lines_awmod_3.52.05.pat,& po_user_list_close_3.52.05.pat,& line_style_reset_3.52.05.pat,& sd_match_wildcard_3.52.05.pat,& con_intr_echo_3.52.05.pat,& sm_notyah_3.52.06.pat,& stamp_rebuild_3.52.06.pat,& wp_shell_cli_3.52.06.pat,& no_turbo_float_wnd_3.52.06.pat,& restore_clone_3.52.06.pat,& get_next_view_3.52.07.pat,& horiz_scroll_3.52.07.pat,& odd_float_flush_3.52.08.pat,& put_value_resize_3.52.08.pat,& po_user_list_ovfl_3.52.08.pat& .D$^(6v(&ebPLAY.OB.PATCH_LIST play_valid_time_3.52.02.pat& .W&P(6v(&PrLINE_STYLE_RESET_3.52.05.PAT ;--------------------------------------------------------------------- ; LINE_STYLE_RESET_3.52.05.PAT 4-APR-94 ; ;This patch corrects a problem with the SD_DRAW_HLINE and SD_DRAW_VLINE ; calls where, contrary to the documentation, the line drawing style ; set with SD_SET_LINEDRAW_STYLE was not being reset to the default ; after drawing the line. ; Applies to programs linked with Screen Demon rev 3.52 SD_DRAW_HLINE+261 [NLDAI 11,1] {LPSHJ #SD_PATCH,1} SD_DRAW_HLINE<>0 ^+1 [] [] SD_DRAW_HLINE<>0 ^+1 [WBTO 0,1] [] SD_DRAW_HLINE<>0 SD_DRAW_VLINE+245 [NLDAI 11,1] {LPSHJ #SD_PATCH,1} SD_DRAW_VLINE<>0 ^+1 [] [] SD_DRAW_VLINE<>0 ^+1 [WBTO 0,1] [] SD_DRAW_VLINE<>0 #SD_PATCH 0 [WSUB 1,1] SD_DRAW_VLINE<>0 ^+1 0 [LNSTA 1,SD_LD_ATTRB,1] SD_DRAW_VLINE<>0 ^+1 0 [] SD_DRAW_VLINE<>0 ^+1 0 [] SD_DRAW_VLINE<>0 ^+1 0 [LNSTA 1,SD_LD_THICK_THIN,1] SD_DRAW_VLINE<>0 ^+1 0 [] SD_DRAW_VLINE<>0 ^+1 0 [] SD_DRAW_VLINE<>0 ^+1 0 [NLDAI 11,1] SD_DRAW_VLINE<>0 ^+1 0 [] SD_DRAW_VLINE<>0 ^+1 0 [WBTO 0,1] SD_DRAW_VLINE<>0 ^+1 0 [WPOPJ] SD_DRAW_VLINE<>0 SD_PATCH #SD_PATCH\ #SD_PATCH+13\ SD_DRAW_VLINE<>0 ^+1 [] [] SD_DRAW_VLINE<>0 ;End of patch .W&P(6v(&PGET_NEXT_VIEW_3.52.07.PAT ;--------------------------------------------------------------------- ; GET_NEXT_VIEW_3.52.07.PAT 22-AUG-94 ; ;This patch corrects a problem with the SD_GET_NEXT_WINDOW_VIEW call, ; resulting in unpredictable behavior after the call. ; NOTE: This only affects user programs that make this call - no Screen ; Demon internal routine or supplied hot key program uses it. ; Applies to programs linked with Screen Demon rev 3.52 SD_GET_NEXT_WINDOW_VIEW+11 [XWLDA 3,-16,3] [XWLDA 2,-16,3] ^+1 [] [] ^+1 [WMOVR 3] [WMOVR 2] ^+1 [XWLDA 1,0,3] [XWLDA 1,0,2] ^+1 [] [] SD_GET_NEXT_WINDOW_VIEW+22 [LJSR SD_ACQUIRE_RESOURCE,1] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [] [] SD_GET_NEXT_WINDOW_VIEW+35 [WSLE 1,1] [WSLE 2,2] #SD_PATCH 0 [LJSR SD_ACQUIRE_RESOURCE,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WMOV 2,3] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+5\ ^+1 [] [] ;End of patch .D'rk(6v('rkAPO_USER_LIST_OVFL_3.52.08.PAT ;--------------------------------------------------------------------- ; PO_USER_LIST_OVFL_3.52.08.PAT 24-AUG-95 ; ;This patch corrects a problem with the " List of Users" option in ; the Send Mail hot key routine. If entries in the list were being ; obtained from the SD_PO_USERS_LIST file, only the first 1444 bytes of ; the file were used. ; Applies to programs linked with Screen Demon rev 3.52 SD_INPUT_MAIL+2223 120 400 SD_INPUT_MAIL<>0 ;end of patch .W&P(6v(&PvSPEC_CONLOG_3.52.02.PAT ;--------------------------------------------------------------------- ; SPEC_CONLOG_3.52.02.PAT 3-NOV-93 ; ;This patch corrects a problem with console logging started as a result of ; the SPECIAL_PROGRAMS_LIST LOG command in the configuration file. If a ; program was being logged because the name of the .PR was specified in ; a LOG command, and if a subroutine was called that used the Screen Demon ; SD_SET_SECONDARY_PROGRAM_NAME call, then console logging would be ; turned off on return from the subroutine. This also occurred on calls ; to Screen Demon hot key routines which use that call. ; Applies to programs linked with Screen Demon rev 3.52 SD_SET_SECONDARY_PROGRAM_NAME+71 [WLDB 0,1] {LPSHJ #SD_PATCH,1} ^+1 [WSNE 1,1] [] ^+1 [WBR .+6] [] #SD_PATCH 0 [LLEFB 3,CON_PROG*2,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WLDB 0,1] ^+1 0 [WSEQ 1,1] ^+1 0 [WPOPJ] ^+1 0 [WMOV 3,0] ^+1 0 [ISZTS] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+11\ ^+1 [] [] ;End of patch .W&P(6v(&PzDRAW_LINES_AWMOD_3.52.05.PAT ;--------------------------------------------------------------------- ; DRAW_LINES_AWMOD_3.52.05.PAT 21-MAR-94 ; ;This patch corrects a problem with the SD_DRAW_HLINE and SD_DRAW_VLINE ; calls. Neither call updated the current window's "modified zone map" ; to reflect the new characters placed there to construct the line. ; This could result in part or all of the line not being displayed until ; the next time the entire screen was scanned, such as on a Redraw. ; Applies to programs linked with Screen Demon rev 3.52 SD_DRAW_HLINE+256 [LLEF 0,CTRL,1] {LPSHJ #SD_PATCH,1} SD_DRAW_HLINE<>0 ^+1 [] [] SD_DRAW_HLINE<>0 ^+1 [] [] SD_DRAW_HLINE<>0 #SD_PATCH 0 [XWLDA 2,5,3] SD_DRAW_HLINE<>0 ^+1 0 [] SD_DRAW_HLINE<>0 ^+1 0 [XNLDA 1,3,3] SD_DRAW_HLINE<>0 ^+1 0 [] SD_DRAW_HLINE<>0 ^+1 0 [LPSHJ SD_ADJUST_AW_MOD_ZONES,1] SD_DRAW_HLINE<>0 ^+1 0 [] SD_DRAW_HLINE<>0 ^+1 0 [] SD_DRAW_HLINE<>0 ^+1 0 [LLEF 0,CTRL,1] SD_DRAW_HLINE<>0 ^+1 0 [] SD_DRAW_HLINE<>0 ^+1 0 [] SD_DRAW_HLINE<>0 ^+1 0 [WPOPJ] SD_DRAW_HLINE<>0 SD_PATCH #SD_PATCH\ #SD_PATCH+13\ SD_DRAW_HLINE<>0 ^+1 [] [] SD_DRAW_HLINE<>0 SD_DRAW_VLINE+223 [LNLDA 1,AWCPS,1] {LPSHJ #SD_PATCH,1} SD_DRAW_VLINE<>0 ^+1 [] [] SD_DRAW_VLINE<>0 ^+1 [] [] SD_DRAW_VLINE<>0 #SD_PATCH 0 [NLDAI 1,1] SD_DRAW_VLINE<>0 ^+1 0 [] SD_DRAW_VLINE<>0 ^+1 0 [LPSHJ SD_ADJUST_AW_MOD_ZONES,1] SD_DRAW_VLINE<>0 ^+1 0 [] SD_DRAW_VLINE<>0 ^+1 0 [] SD_DRAW_VLINE<>0 ^+1 0 [LNLDA 1,AWCPS,1] SD_DRAW_VLINE<>0 ^+1 0 [] SD_DRAW_VLINE<>0 ^+1 0 [] SD_DRAW_VLINE<>0 ^+1 0 [WPOPJ] SD_DRAW_VLINE<>0 SD_PATCH #SD_PATCH\ #SD_PATCH+11\ SD_DRAW_VLINE<>0 ^+1 [] [] SD_DRAW_VLINE<>0 ;end of patch .W&P(6v(&PIR_LANG_RT_INIT_3.52.06.PAT ;--------------------------------------------------------------------- ; IR_LANG_RT_INIT_3.52.06.PAT 30-JUN-94 ; ;If LANG_RT is present in a Screen Demon inner ring program, the initial LCALL ; to the inner ring will cause a stack fault, which LANG_RT uses to trigger ; its initialization routine. In this situation, the Screen Demon inner ; ring initializer expects to find the address of the outer ring LCALL ; instruction in the fault return block. On some MV CPU's, the LCALL's ; argument count is pushed on the inner ring stack before the stack fault is ; recognized, so that the fault return block is shifted up two words from ; its location on MV CPU's that check for stack overflow before attempting ; the push. This patch allows Screen Demon to compensate for a possibly ; shifted fault return block when looking for the outer ring call address. ; The last part of this patch causes the inner ring system call handler to ; ignore calls with no system call argument, as would be the case on the ; repeat of the faulting LCALL. ; Applies to Screen Demon 3.52 inner ring programs. ?G.SYSCA+32 [LDASB 3] {LPSHJ #SD_PATCH,1} SD_SYSCALL_GATE<>0 ^+1 [XWLDA 3,14,3] [] SD_SYSCALL_GATE<>0 ^+1 [] [] SD_SYSCALL_GATE<>0 #SD_PATCH 0 [LDASB 3] SD_SYSCALL_GATE<>0 ^+1 0 [XNLDA 0,5,3] SD_SYSCALL_GATE<>0 ^+1 0 [] SD_SYSCALL_GATE<>0 ^+1 0 [WSNE 0,0] SD_SYSCALL_GATE<>0 ^+1 0 [WADI 2,3] SD_SYSCALL_GATE<>0 ^+1 0 [XWLDA 3,14,3] SD_SYSCALL_GATE<>0 ^+1 0 [] SD_SYSCALL_GATE<>0 ^+1 0 [WPOPJ] SD_SYSCALL_GATE<>0 SD_SYSCALL_GATE+24 [LNLDA 3,ICTRL2,1] {LPSHJ #SD_PATCH+10,1} SD_SYSCALL_GATE<>0 ^+1 [] [] SD_SYSCALL_GATE<>0 ^+1 [] [] SD_SYSCALL_GATE<>0 #SD_PATCH+10 0 [LDAFP 3] SD_SYSCALL_GATE<>0 ^+1 0 [XNLDA 3,-11,3] SD_SYSCALL_GATE<>0 ^+1 0 [] SD_SYSCALL_GATE<>0 ^+1 0 [WSGT 3,3] SD_SYSCALL_GATE<>0 ^+1 0 [WRTN] SD_SYSCALL_GATE<>0 ^+1 0 [LNLDA 3,ICTRL2,1] SD_SYSCALL_GATE<>0 ^+1 0 [] SD_SYSCALL_GATE<>0 ^+1 0 [] SD_SYSCALL_GATE<>0 ^+1 0 [WPOPJ] SD_SYSCALL_GATE<>0 SD_PATCH #SD_PATCH\ #SD_PATCH+21\ SD_SYSCALL_GATE<>0 ^+1 [] [] SD_SYSCALL_GATE<>0 ;End of patch .D&P~n(6v(&P~nZSD_REV_3.52.08 This revision of the SCREEN DEMON software is 3.52.08, released 7-NOV-94 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; ;;; Copyright (C) 1988 - 1994, ;;; ;;; 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 ;;; ;;; ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; .D&[R(6v(&[RUPUT_VALUE_RESIZE_3.52.08.PAT ;--------------------------------------------------------------------- ; PUT_VALUE_RESIZE_3.52.08.PAT 18-NOV-94 ; ;This patch corrects a problem with the SD_PUT_VALUE routine that resulted ; in a fatal error if the value previously existed with a different length. ; Applies to programs linked with Screen Demon rev 3.52 SD_PUT_VALUE+270 [LCALL SD_MEM_FREE,1,1] [LCALL SD_MEM_FREE_BP,1,1] SD_PUT_VALUE<>0 ^+1 [] [] SD_PUT_VALUE<>0 ^+1 [] [] SD_PUT_VALUE<>0 ^+1 [] [] SD_PUT_VALUE<>0 ;End of patch .W&(6v(&#mE SD_CCL.CLI # [!equal,,RCS] **************************************************************** $Id: sd_ccl.cli,v 1.4 1995/01/03 00:18:23 mark Exp mark $ $Log: sd_ccl.cli,v $ Revision 1.4 1995/01/03 00:18:23 mark Strips off .C and .OB extension from first argument if present before build /O= output filename from it Revision 1.3 1994/03/11 17:27:47 mark Inserted previous log comments Revision 1.2 1994/03/11 01:45:18 mark Added RCS Id and Log fields Revision 1.1 1994/03/10 22:05:09 mark Initial revision *********************************************************************** [!end] comment SD_CCL.CLI Screen Demon rev 3.52.01 comment Copyright (C) 1993, Threshold, Inc., All Rights Reserved comment -------------------------------------------------------- [!equal,,comment] This macro links an AOS/VS C program with Screen Demon. All standard CCL 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. Do not use this switch if /SDRING was specified. /CONFIG= Specifies that the indicated configuration file should be used instead of the default SD_SL_CONFIG.OB file. /PARTURBO Causes the program to 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 C 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. 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 comment Adjust this searchlist to fit your file system searchlist [!searchlist]& :util:c :util:lang_rt& [!nequal,[!path =],[!path [!edirectory [!pathname %0\%.cli]]]]& [!edirectory [!pathname %0\%.cli]]& [!end] write comment Strip extraneous extensions from main argument [!equal,T,[!equal,(.C),([!eextension %1\%])]T[!end][!equal,(.OB),([!eextension %1\%])]T[!end]] %0% [!ename %1\%]%1/% %2-% [!else] string/k [!equal,,%0/shared/sdring=%] [!equal,,%0/config=%] [!equal,,[!path SD_SL_CONFIG.OB]] write ,,,,Configuration file SD_SL_CONFIG.OB not found! string ERROR [!else] write ,,,,Using configuration file [!path SD_SL_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,),)CCL%0\s\shared\parturbo\noturbo\config\priswi\ceo\wp\sdring%& [!equal,,%0/o=%]/o=[!ename %1\%][!end] & & [!nequal,,%0/sdring=%]& [!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& %1-%& & [!else]& & [!equal,,%0/shared%]& [!nequal,,%0/config=%]& %0/config=%& [!else]& sd_sl_config& [!end]& [!end]& & %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%]& [!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/shared%]shared_[!end]screen_demon.lb [!end]& [!end] comment If the link was successful, 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] comment End of extension strip IF [!end] pop .W':}(6v(':} rSD_POSSESS_ICX_1.71.PAT ;The patches in this file activate the SCREEN DEMON routines for ICOBOL. ; ;This file applies only to revision 1.71 of the Interactive COBOL ; interpreter running under AOS/VS or AOS/VS II, using Screen Demon ; revision 3.52 %PROGRAM ;These patches modify ICX's op code dispatch table so that appropriate ; functions are routed through Screen Demon handlers. DISPATCH_OP.ZERO 0 #dispatch\ ^+1 0 [] dispatch @. SD_OP.ZERO_INTERCEPTOR\ ^+1 @. [] DISPATCH_OP.STP 0 #(dispatch+(116*2))\ ^+1 0 [] dispatch+(116*2) @. SD_OP.STP_INTERCEPTOR\ ^+1 @. [] DISPATCH_OP.CHN 0 #(dispatch+(120*2))\ ^+1 0 [] dispatch+(120*2) @. SD_OP.CHN_INTERCEPTOR\ ^+1 @. [] DISPATCH_OP.XIT 0 #(dispatch+(171*2))\ ^+1 0 [] ;This patch prevents ICX from requesting BELL line discipline when it ; calls the UNIX emulation function ioctl() during initialization. ; This in turn prevents the undesirable single-character binary read ; task from starting. set_terminal_state+247 [LCALL ioctl,0,3] [LCALL SD_ICX_IOCTL_NO_BELL_LD,1,3] ^+1 [] [] ^+1 [] [] ^+1 [] [] ;This patch diverts control through Screen Demon when ICX attempts to call ; its standard prg_run() function. This allows the name of the ICOBOL ; program about to begin (or resume) executing to be obtained. prg_run [WSAVR 14] [LJMP SD_ICX_PRG_RUN,1] ^+1 [] [] ^+1 [LDASP 0] [] ;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. accept_field [WSAVR 33] [LJMP SD_ICX_ACCEPT_FIELD,1] ^+1 [] [] ^+1 [XCALL ensure_curses_initialized,1,0] [] ^+1 [] [NOP] ^+1 [] [NOP] ;Replace ICX's character entry loop in its accept_field() function with ; more efficient Screen Demon routine. accept_field+464 [XCALL fetch_key,1,0] [LJSR SD_ICX_INPUT_FIELD,1] ^+1 [] [] ^+1 [] [] ;Replace ICX's fetch_key() function. fetch_key [WSAVR 4] [LJMP SD_ICX_FETCH_KEY,1] ^+1 [] [] ^+1 [LDASP 0] [] ;These patches allow Screen Demon to know when the external debugger process ; ICDEB has control, so that screen flushes in ICX can be inhibited. send_disconnect_event+12 [LWLDA 2,debug_msbuf,0] [LPSHJ SD_ICX_DEBUGGER_DISCONNECT,1] ^+1 [] [] ^+1 [] [] ;For ICOBOL 1.71.00 send_disconnect_event+2166 [LCALL sys_irec,0,1] [LJMP SD_ICX_DEBUGGER_?IREC,1] record_cancel_event=0 ^+1 [] [] record_cancel_event=0 ^+1 [] [] record_cancel_event=0 ^+1 [] [NOP] record_cancel_event=0 ;For ICOBOL 1.71.01 record_cancel_event+2360 [LCALL sys_irec,0,1] [LJMP SD_ICX_DEBUGGER_?IREC,1] record_cancel_event<>0 ^+1 [] [] record_cancel_event<>0 ^+1 [] [] record_cancel_event<>0 ^+1 [] [NOP] record_cancel_event<>0 ;For ICOBOL 1.71.01 SD_ICX_DEBUGGER_?IREC+27 [LJMP send_disconnect_event+2172,1] [LJMP record_cancel_event+2364,1] record_cancel_event<>0 ^+1 [] [] record_cancel_event<>0 ^+1 [] [] record_cancel_event<>0 ;End of patch .@$V(6v(&eƂSD_SL_MEM_PARAMS.OB  SD_SL_MEM_PARAMS*)!&C@SD_UNINITIALIZED_DATA_PARTSD_SHARED_DATA_PART"'?NMAX?SBOT?NTOPSD_INIT)8=BJ?UTSK.UKIL?G.UTSKG?G.UTSKB             .@&oU[(6v(&oW SD_PRISWI.OB  SD_PRISWI"C!/SD_SHARED_DATA_PARTSD_UNSHARED_DATA_PART)  "= X x/ >Ic v    "5 GSD_MENUSD_NEW_WINDOWSD_REMOVE_WINDOWSD_FLUSHSD_DRAW_BOXSD_MONITOR_STRINGSD_INPUT_FIELDSD_GETCHAR_ONLYSET_FLD_DELIM_TBLSD_CONSOLE_GET_VIRTUAL_CHARSD_CONSOLE_SET_VIRTUAL_CHARSD_CONSOLE_GET_VIRTUAL_DELIM_TBLSD_CONSOLE_SET_VIRTUAL_DELIM_TBLSD_SYS_ERROR_MESSAGE_JSRMAP_IN_VM_RECORDRELEASE_VM_RECORDASSIGN_SD_CON_NUM_USING_LISTSD_ICX_UPDATE_..KTOSD_MATCHSD_RING_7_SYSCALLSD_MEM_ALLOCATE_RING_7SD_MEM_ALLOCATESD_MEM_FREESD_EXPAND_SHARED_PARTITIONSD_IS_NAME_CONSOLE?SD_CON_NUMSD_CONNAMESD_CON_DEVICECON_USERNAMEACTUAL_CON_DELIMITER_TABLENULL_TBLNONFN_TBLUPPERCASE_XLAT_TBLSD_WORK_DIR_PATHICTRLCTRLSD_SYSCALL_DISPATCH_ADDRDEFAULT_DELIM_TBLNULL_ONLY_DELIM_TBLEXTC_SD_INIT_CALLSSD.SYSCALLZP^,{    SD_PRISWI_INITSD_PRISWI_SYSCALL_INTERCEPTORSD_PRISWI_MENU_PACKETSD.SD_PRISWIUD.SD_PRISWISC.SD_PRISWI$1  ,                           VYYNYNWW  !  "  #<  $  &  ( ,C; =Unable to load printer specifications file: SD_PRISWI_CONFIGThe Screen Demon Printer Switcher has been disabled.     )   )Y8Ãx‘ـy)x㉢LÂɇɇy)x㉘5‚ɇy)x㉋⩸ɇɇy8 ɇѸ@yѩй8gx)y) ) 9Y) 9IzI8 I xyIy) YYI  yIiЉx؉) DЉѩ8йw8 8 )88)I I yI8й8w踖I؉ɇI9" xȉYɇUnable to access selected printer!Iق9j)9 )) 8yYyщy)I@OUTPUT)  Y))))9)\Y) iX)" ʼn X) Y9Xi   EEnter name and press DNEWLINEE, or press DESCE to exit. Output Filename 8 ) )0Ii   )@9)yIiix )9YY x px)y)0Iy y)IY9  )@9h)yIii)9YY)xi )9)9i :PER:)Y y))@yy)   .# ).< B G ^ n s    , (   (*   " * IL l q$    /0    )     P _"c'r*2  ) "'*     !< yY  Yyi Yi9y'普xy99 )@9iY9  )9Y)F9Y)`9Y)y yi)9Y)F9Y)a9Y YYÈY) Y 8y)ɀi0)yI щxI I i)Ii)|9Y  )|9Y  Printer Menu to select )BIY389)I):9YIY9i9IY39)9yΉ ?x 9)9 )9Y999Y)08 x)I;8yIyY$ r)幥 pi)bIY) G  Iy xI I 8Љ 88Љ )Y$I)I I ѹ Iy Y ) yi) Y) 8Љ 88Љ  / i2r{     (    2)+  2(29!R2d g2q2{  # # 2     &5 " .W&P(6v(&P*SM_NOTYAH_3.52.06.PAT ;--------------------------------------------------------------------- ; SM_NOTYAH_3.52.06.PAT 23-JUN-94 ; ;This patch corrects a problem with the SD_DISCARD_TYPE_AHEAD call. If the ; next input encountered was a screen management type of ?READ, such as ; a COBOL Screen ACCEPT (vs a working storage ACCEPT), the discard request ; would be ignored. ; Applies to Screen Demon rev 3.52 SD_INPUT_FIELD+1010 400 20400 ;End of patch .@%U](6v(&eSCREEN_DEMON_RING_5_GATES.OB  SD_GATE_ARRAY#SD_SHARED_DATA_PARTb     .F Wat     +<Jdy    ,9 HS Zds    #/G Ye v   $;Pg~  0 = J Vaq SD_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_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_OUTPUTSD_CLONE_WINDOWf(DYnSD_RESTORE_WINDOW_FROM_CLONESD_SET_LINEDRAW_STYLESD_SET_BOX_FILL_STYLESD_GET_DELIMITER_TABLESD_SET_DELIMITER_TABLESD_EXTENDED_READ_CHARSD_ASK_QUESTIONWHO_LOCKED_IT? -SD_GATE_ARRAYDUMMY_GATE_CALL&ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppO O O O O OOOOOOOOOO O"O$O&O(O*O,O.O0O 2O!4O"6O#8O$:O%<O&>O'@O(BO)DO*FO+HO,JO-LO.NO/PO0RO1TO2VO3XO4ZO5\O6^O7`O8bO9dO:fO;hO<jO=lO>nO?pO@rOAtOBvOCxODzOE|OF~OGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWOXOYOZO[O\O]O^O_O`OaObOcOdOeOfOgOhOiOjOkOlOmOnOoOWOpOqOrO ) q*pppppppppppppppppppppOOOOO O OOOOOOOOOO O"O$O&O(O  .@%yMJ(6v(&eRSD_INNER_RING_INTF.OB  SD_INNER_RING_INTF !SD_UNSHARED_DATA_PART2*9MSD_INNER_RING_NAMESD_SYSCALL_GATESD_RING_7_SYSCALL_OKSD_RING_7_SYSCALL_ERROR<8@Pb?G.SYSCASYSCALL_DISPATCHLOAD_SD_INNER_RINGSD_SYSCALL_INTERCEPTOR K%ـ@yiyYY)z084~y) h Yy r YYYY)O08II) Iyy9~)yy) yyIYY).08Yظyy) ) Yyy)0發 8yـ:SCREEN_DEMON_3.52:$I)y R0iIyIyi8yɇyɇyxy0I)YyxI)@iyIYy0 :   & e ~     .J %yM(6v)&eSD_POSSESS.PR 4 p0&0&0&p @ p{^&p-?p-?p-?25/)p/)x)4)5)6Y)癬d{WO duk9v,g߲1ϧǚ6?*woe'Յ=\/alp] 7[/hx_}6%K!Gw5iEjpUWHe}OPBu61ݜT,gߓ7* zJMw=o~tИ=_uԜ74/+_d}x_%CTG5&j~Eb(UDWeXOurqOG5C~b?wŮoN''17=hח2 ]7/*އ$_}% y>G[5Gmg)E9TU' WeOAU**0x(u^gbYCΥ8w?Nw)oឲ'՜X=k׀]z7 /6O_}%%H9G5Rn EGUrȽWUeO|yu-v݋] 8Mw@px?w6Ťo)'Yy=niQ&2w]]7[/ cz_I}G,%@8cGM5]oEeR OiWeO1A'*6𕺷5%!@㚟 nqŁ=GpSwoC'r=qR/}8]@7/ؚ_} U%[8G5hpPE|JUH W'ezOl9Ks&6ӯ49%+2SQ m=vI1ŚokԆi+τV7 |q/R%FM)K%vOY `f;7ɬ{Ewyg{VIeUO K&69+MݩQK٠QvI:1 oWk{֚i(b%[ Yq7 / F*)і~Y f64ɱ'qr,QULWe0ORK3hJzЅI9O+@Ӂ|?v ?wZŐo&8kⓀ=z ꙸ˅j{]7G/¹sS_}S%-YM nss9Emy5>Wbe OK3zم9+'b]ĥ Tw ok /=}ٙL<]7>/QZS`l.}%ǏY stEhקUWeOtuݷⅿTgѕ>mu?F?wņo6'Չ?=sϺL]7/{|_}ٗ"%4G#5uqEcU/"W4eOV}u=@z]g*[z?E?Vw5oj'`=Nw?]7P/ݪ_}K%3=G5v":E^S;UнWeO}%u~ݣ5]Pg\˼A8?w~|o'!_=ױ)_]u73/_Q}_t%G5xhET@2UWoeROJA*]N5i%F!a$Ş~ Zwroas=׃df];7/ѡJnj}%NESjy EOe T (.We-O{A*GA̷fC%!g|_Áw7j}wYo&a=l:F=-]7t/+OJnG}%iEjN^EJaUvTWAeO|fu/!g\g߄c=?who' =Uw]7/O>~_}k%;G5{Q'EE0k2Ua4WeOLuu|ݒ!ܯtTg@e (?\wox'v&=>dLJD]7Z/ܢ_6}.A%a,wToc`շ=NԺ]7! -MX*_ 1w% E5 b-U y@WNeOOBL Eȯvmg_2?`Owo'"=\-H]p7F/1U_}:% GV5E,-ʧUWe*O?Mus݁Nmg <Yo>?rwXJoӭt'Ս=4x ]S73/o0 _}%& G5##E'\-ݧUFW eOMuu>IW>mzgV߫T"?bwo$'=״ͧ1]67/_|}7%AM GH5.E"--U\WeO!M.u G`mMg`ߌET?w@ou'Mc =םmϹj]7E/_}`%\~ OG59ioE-ULWeOMtuݪim g mTݵ?dw}*ƭibՊb=ʠ ]7d\AM po= u"ۈ g:5i j_6|1?gkU3}W uenRĥ A <7L~;ǒS~E~٣O= C沛ˋ-:CwqJ fX>zCc"=s*t@ _upK3w7'o?zR-J 4 iβAy/*䀠ŇPo@ :IX*r;[A*5|98 W1`4X8ڦrhl L*2~9C>o$#`2G鯲ڤ얏Gbuq {}` =+.,oŇUԱ/_Ķ3/_.CjCE 1vLbcn*P膃'l'D;;'E+m{ Uo`l@nDߌ  yyȓ/t+SsVWŇfF.ZSͶCG=+⛥50Ygq@e_/R'c)gw[2"$aB8pqWEw<#T' u)}gb|yΈ`'pT2(O.eIOٳ3-Xsk7qyl\ t7H}5[vV6 u?ýrw :U#:uqܗWeMzjfݪ7J&馊y|ނofs ̅!5=EgA4dʆ6]6N=<0\$Ύ!5,N mCIl)XW5˽vVOlt יI~Xq PR,y?r[^1ëF4^ԧ7_dp9df? ۓPsod$,}LC,<޷al |~DWg>1MoqZf%WƜ[Nt*y~Mu_cE-?1-ǩ?Jnv!lhM=% pmAԼdx\t> E&4/~G8ڽ}g~P ZոņDn="Օ~Vx$Bx'V>!JՏ%51%'p:Q^7awCU^@|+H4TcݥFlͤvߐ·fm5!]RTkŅer^ fXYpmEI ΀TfMd0ն~fL<EWw\o&\dFoŌFrd ~%fR_=VO(u 6St}]jgJjN֗r\Zn*=߄9K+kdeN0ԣ>p&+L0,.]g;u\b4l6L*CN|KDAl}7ts!g9\ ѻ0=ta>l}D~ܿsdz֍`qp}=>lDN57d%|JR1Mg47]9f7OQDfzi^~܌k G'Wk% ޺ev5jV`9a 'v|a#p /|d\d!L=ΐMtcɕ즮4̴FDOn̵َ&7)|1vk.s6dD2@?}Ѽd쳀fb?&tE{ jdȶ~L+F_lHeIHNL,faϾ/G$./6<.SovߔGe",Mo^D=D-L.䐮zfS;/ &2G>'Ly +Dd9)Fw~}|C?d()UnV ~CMۖ=4_]i ckDFQEF"z6VNH $ ^8Ji|%ͬFݽܞ;Zd+3|V煆6tH,5tWN5lo{e %q.O}JjEH&c#ff^zر}t4q'Y$~94s/mTA',V==F<;. |ടQ_T|~ wk VbL)tɾ[6/Vw.6[N)+;=5Ԇ84>Vȫ4*lƠD3O_g!!lnx5U &J,o6|N<6"ye̮r~3V0/P)#8ufxΎI-?l9n.җ}7[(4\lƫD.,ŻDU1b/\Vjig,6ݤ6\Eu`RF%}Gᡨ$n=ƍ3,`'|0q2ZFp]/ ~ =&tΓL[S,е[߼ -2;_lbGLQvֱ%>ɤI-?n27}(ViOkԟ.?Gv0%(>Z6&Ds\dn9xFbo'<}եSLc>Fl=YDv\>ܝ@e^mp vc{ӷb&~ |OT*D5Dc϶捥)6N{C텶*<p> d>T*L~ oݰ!ȇҶQkmEҊvC Î6w@0t\uըfJY BPD3KаLn$ 6==?vYL_FdYL)զ.ƴQ]:M|t/"7֔g\4art@9a;+Y?e)Ţ~-zc ltZIG,d!-_f{6Rp> dA L#A |,.wK"qen7nTC/L]i͘>J̀dؾ~*udN0g\#>$;lVv$_<{E5giEY$]Wg,(e!w-E|bm0n2ܴ| >& B>J^H4v8haMaTn-U"~c ` N"}m<sdz"V8/7tǰ6t@u}*4<&%A DwqbII?ϒFٿ B|N,mVxʔvFg8ih\F<4Em9d3>"sĎomanldUIJn%^0Gݦ-~2Tq]-~9eqUn,؜=E ts_o Ε.D'U1=?,}檪ͽĢ[+DΆ V lZD,Id<)}>,:-nm fI~L PFcm&j~n;wIvvDǂ=wkui:!@޿=uTj"Stf B-.ECn~59't ^2BDRT(ٴ`ێf7Pw-teٵܻ(Gd ^ƙfG^Iq@38ĐGܴ$>p}.M慛lv%5rb'EGm_V?BL#4sן\G b`?\z_ւd!ZjӞn:c~̫u"v.p= 6ͮ)^N|6&_Y<_bVA>rj\̷S^\Mz.wv/KqFVbV@S9G1%V>=iUaʹf·\GDWp3^.ftQ6TW,}Գ @F ߤLuZܾwP9Ư|P,Q./ц ?f{lF:ޅ*{,IWԚ ,g]doZPv/_Jl&b\3VRЮКED4$,VH?g<~u&} )w5 jE6/:pgwI\AUGvn-.vSy.,h4lU$JT%ߣ\K_LK4 >R|YPjaf< JrTq .!?2Xj ǔug'Fּj@z$Sdg-ɥof:¢l7~ n$oGZV䆯4Fj> L,5o;gG+.mJEsIܰ&z |"ߢ&_#l U(n⌕tU6tܗ_f=UԘ,5seTQN~ i]ݙg\=5w~))YSe~HNDμ`tk]̘F dc\^96]~tɭ(Y~)Z1t0.< N44RlHD%|C?Q)d4NgBl53uF%|.` mHXN`AvTE>&nht.F.km (>N/[J{ Yo~LvLcYaL.JW%p"~|= &7Uw~mvprp>\6lT'΁Lf=m٨Wl+EOLfTnq l(+N#kU$T[1h,fvA|FSξ@3PPDUn=oVrQyMMyD^ŹlRάV =o v lȝVlV-*66s|,s.<g r5}¤\høwMV]\?FB:ONTA V,)Zgb6̭/luv$4*[DZU&MSk(T=!yѿUĠ/34?l]Fbǃ|ofB2ejqiK2'wǷ'8ƭfZ5?5!4}sDymhvn/%oDRׁWLD&T bHp:>ώ܌' 2Rq!BSJLWjXyFLNOQ/;t ̕eBZ L,ZSW,`a6ί4gMU ήi&qɗRuErnd~N , T|N3.}o"U>Dfm&d, w;t8`0F(ҖRڼfž5//q^!_lh5) mdmeZq\: ӤG| KT |q=ēZDYaͼIJi'}m6+R,` P6|`v{ѾD!.v K%ͨSB!pXs>V"XW<VI s+vA͍>eN1w8STD ;)Dn=9%iEm4#0CiJ 5 c;." fl‘00r%[PO9lV\14|?lMD~|jdBY6$1tFN> ԇ"$H3bacq?!j!70V)\n>J kle\}r_!<$LYT1żkgt_>|:߾/ʪ}c4LoF7X56Wzw8~<69@$4.Dxg:S Jwr+v=A** ,rU]GZ ,z.@'Od TV,IVü"dn Fo14&v}T>,bv>Uf ia`p'ȺB 62e=v̟m^v-^dP/k)^.M(T/VTq ըna(V/K55;䩈{QbOײ? ^vX5.3VHvF`ɖX<K,Ňj\i DEL L~dOŬʯa)t#. NV&~<6~MJf;xTo~b '7b ,LHڮG@GzedU+$MWq(,4]Vҵ"2=.>4$p.ܥٴ'^VrFP|^O/n=C"TARxXtHĄ׼ӶV~t|&z ."vu=lTwTU,B9 as0lu4}ƛjtŨlH&^!-<25ı,s]1H_f*p6@ވ̈E84\j .v}C|T/겮PV|E+ &&"\)9¹ 6BbuKw#~(p'K&1_ֿ*t_`|)E Lbё^\ԲXs@ NeֶJ|u~&ֈoA5H9;qw\5ouR\*k A4~~ 7ĈΌ%sFq>tft_9L!LৰBSPS$uچ"Vm4l1Q{'5'3z.IܰkfTJ]=9.7CT~:w`u 76HF]0)? 50}dY5$wE(f4%̜J;f7862!!5ׄD>?w;5\՟~P}`՞_e,`EN<[68n,ޜ{,7K?L6=sՕG@Wif[dĮ7VU`츠H-v1 ʷbd=sց%^j&Ng2FD=l|HB>=hj~&`Y^ qfK7r<T'񖒳֐|c /qky79&T66/d9d[Qfa/v% Gn<ڞ-Gfܞ5x,Fg A+y{?" lH='9R`X8L* qs*sՅϑ͘Gdt <^<_yѤd>Px¶D".e&UlĤ~Ü@t^V/C. cFfJ'9pO~՗2~l;f]7Bl6MU-vi̿ tYPA֧-hll5S\Itge =>-g6Q|Å29Dώ|iTk͏Ĉ!i/%[.uf!1 ٷӞxBWFtZ_?\Fxr*lēpvό7}4)w|:V@0ܺ|ƔPL0VTʦ tNq_Yqt"t5XIv΄;o;Ӕy^d֫*GeˆEm},<7PZV?7žOu ԠI07TYfn%B!dD?",)Lθ'TC| Pu[ޫU$A\- @E|oO$kD&>&nmf~ tns1]w?so'p8.!SLu-D6zIM~f5{Ԡ!Ld̈d^>F<@9^CfZ>ET#V7ن~B\o6Nk| dF5Ό o¥=E=~|դ .%OuWnv<&!n6 <FB D{^&ԇGזw$LJ⩨Fͼ\׶..&hF߆ g^.6 ft[.;JCXOFpkѪ ҃l\n2^Eh7Lu{\d3DG<懶eR~0pQ} )+aED( B魗:\y_Puͅg$ۯRٛTg! R$k㍧B4{_Zvr},pEquoцW`g[ЖM*VBD:mچ$o%t By(V)ѓt;MOlh/U"ul9nw\sXAjLvČz>O2m=u!)OqM?r *!| 8Q+>u ¯"OMh䱯{j`̭o_tMLMOUXXіv\8^3q]xC0HБ5H[pfRE+ZX9{@|el8EMm" HzPFj PZr>8J_⛈:R*`)(^0"2xQ :6]>Php]ĸz@b ]ҐXAzB IԊ߀"Hz?Ps3j( Zr8J7xH:8RfU*e`&(u012x ZOWȭ9j2"}rrp n~5蝸|E$v}X(}Bݰز"FH zPj} 74r8JIUB仭,d?sL Zd:0y!,N`D5US 6 ED~|~b&_쉧A/:;_~cfI.wtEtLgc4c]lʴ^$fYnD챕6d ?[ ~ޖGfnZ1i ^73Cƈ+TQ6,lei{VĨL"FUN_BNvnmWr6l;.Tl{ ،ݥ&tQaiS WtYgVO|#vRd[u|;d<;#<[WTǕ *}5݉;M*%eLn7~>iFA{NLxw5{onY>p&%Q o1#ev~,ϐԑ:6:F#.e-<%Wtd),ۍD.#W^E / J~J" ψH@uS y%WMeu4mgKq~l<[r̾# ANwvvnu;&yw$ ];(:Vwz t\m<,IXLtQS,NoOd < od+RK~>U/ ܢv֤nɺ&4,>3Յ)ޙ8di6<-&OS4#,u\n5C[\fQw} N |"c~&>~ Dy{4+mČ 6~sTLdqFb4>m %5v3o,GeE7\ +?/QF̈́V\fItV\o{]?TCo^m |:)%Nlcƌφ?;rwP/͐}a~L6Կ-Q&$d

Ʒ9H |>[.V̞ YpX?,}b8V@D]- LJ%V\It\o8ģtdeżCܬ+t 8^lǔ$w?V):1om6 t8\u6rȒV<6TGT-54Em&y4\5 D`c1^xLE}nk^\lah?α86.>woL^J7DNv $+Nt/i}^wʭRCz˳vET-gU +WeO7Mtu鷆+mgBaۍWǪf?Yw<brB0jYʊh>Kzg8(%o)(F%W_jŨ&kn~E@wKM} ?륄ְ>kgxT]9閇w˶'Ҽ6=R41wl N }d/aU.&*G%lؖ>E%-[?Խ1Wqwj3u1 I^ G5rm46+Y&<Μԛ6DLLfme. ,dÎ[2"6y=g 477aXV_ H5,gV݄ڛ%+Gl"ҌjQД#_u5tpE-U7We>OMOXuuog5#ǎwFf#Oo*߷\V=קIT/NJKvN1LVmYֱ%:[5ꍏ6#>c9>ޥ~MV#d7>d '̟i^hl[vԌxPp<_x}4%u O5FGEi-UXmfeM5ug,E~"8uEMPEĈvZAhoD_9DlNmUc C8`X%m9'o}<%V: GM]E:-7UWeONM(u(GݞŅHmTg$iy0unݔgn(m*gf;/$?Ewo'(|=WBXWAZ]7/3_ }pG%q GX5^vER-UyWeOM1>u9p)9mgrՍ?shwpoJ']Փ=Z׭Iʇz>]7U'/!_m}3p% G5iEM- UWeO"M$u[ZyJmg;d8?wCoV'=]ז:=]7b/1_}%? 2GJ5tHEH_-Ƨ#U.WkeOMuݽ[mgq U7浚?uwfop'i=`S+Ͱ]7g/C,~\_/}%p eG5_EC0-٧-UUpW=e|OuM"ue݃}mIg#<ߠ~_Qص?ww\oI'?!=fQ ͖^j]U7y/e0_}?% G5E9-nUWeWOMu0_淝Яmg|߁&Jѵ;?wgo)'ZժB=i:d ]87N/% _R}=% G.5HlE4-U 59)aY99 )9 )aY99 )H9YYޙp->xp 9I)[II9Y) ۃ )9)9ypbI8I yyYyYYy D1t.}p,)9 YY} x։p- &y/y iƉ:SCREEN_DEMON_3.52:SCREEN_DEMON_REGISTRATION_3.52This program requires a Screen Demon developer license)(9Y ? )9)癆Yɇy0ixD00 .D%Y(6v)&e^SPY.PATCH_LIST spy_reminp_char_3.52.05.pat& .W&P(6v)&PbCON_INTR_ECHO_3.52.05.PAT ;--------------------------------------------------------------------- ; CON_INTR_ECHO_3.52.05.PAT 3-JUN-94 ; ;This patch corrects a problem with Screen Demon's handling of the characters ; echoed when a console interrupt sequence was pressed. If the option ; CONSOLE_INTERRUPT_HANDLING? in the configuration file was set to ; INTR_ECHO (the default), only the first two characters of the sequence ; ("^C") would be echoed by Screen Demon. ; Applies to programs linked with Screen Demon rev 3.52 SD_?KWAIT_HANDLER+101 [WIORI 13620657100,0] [NLDAI 4,1] ^+1 [] [] ^+1 [] [CLM 0,0] ^+1 [NLDAI 4,1] 0 ^+1 [] 37 ^+1 [CLM 0,0] [WSBI 2,1] ^+1 0 [WIORI 13620657100,0] ^+1 37 [] ^+1 [WSBI 2,1] [] ;End of patch .W&P(6v)&P/STAMP_REBUILD_3.52.06.PAT ;--------------------------------------------------------------------- ; STAMP_REBUILD_3.52.06.PAT 23-JUN-94 ; ;This patch corrects a problem with the Screen Demon mail system. If there ; were no available message numbers because the entire series of available ; numbers had been used, the Send Mail routine attempted to rebuild the ; SD_STAMP_DEPT file. It was supposed to scan the post office directory, ; marking the message numbers for all existing message files as still being ; in use. However, an error in the scan caused none of the existing files ; to be seen, so all message numbers were marked as available. This could ; cause an existing message file to be overwritten, resulting in a message ; that could be read by the new recipient as well as the recipient of the ; original file. ; Applies to Screen Demon rev 3.52 SD_INPUT_MAIL+3252 [XWSTA 1,14,2] {LPSHJ #SD_PATCH,1} SD_INPUT_MAIL<>0 ^+1 [] [] SD_INPUT_MAIL<>0 ^+1 [WMOV 0,1] [] SD_INPUT_MAIL<>0 #SD_PATCH 0 [XWSTA 1,14,2] SD_INPUT_MAIL<>0 ^+1 0 [] SD_INPUT_MAIL<>0 ^+1 0 [LWLDA 1,SD_PO_BOX_CHAN+205,1] SD_INPUT_MAIL<>0 ^+1 0 [] SD_INPUT_MAIL<>0 ^+1 0 [] SD_INPUT_MAIL<>0 ^+1 0 [WSBI 1,1] SD_INPUT_MAIL<>0 ^+1 0 [WSTB 1,0] SD_INPUT_MAIL<>0 ^+1 0 [WMOV 0,1] SD_INPUT_MAIL<>0 ^+1 0 [WPOPJ] SD_INPUT_MAIL<>0 SD_INPUT_MAIL+3456 [LCALL SD_REMOVE_WINDOW,1,0] {LPSHJ #SD_PATCH+11,1} SD_INPUT_MAIL<>0 ^+1 [] [] SD_INPUT_MAIL<>0 ^+1 [] [] SD_INPUT_MAIL<>0 ^+1 [] [WRTN] SD_INPUT_MAIL<>0 #SD_PATCH+11 0 [LWLDA 1,SD_PO_BOX_CHAN+205,1] SD_INPUT_MAIL<>0 ^+1 0 [] SD_INPUT_MAIL<>0 ^+1 0 [] SD_INPUT_MAIL<>0 ^+1 0 [WSUB 0,0] SD_INPUT_MAIL<>0 ^+1 0 [WSTB 1,0] SD_INPUT_MAIL<>0 ^+1 0 [WSBI 1,1] SD_INPUT_MAIL<>0 ^+1 0 [NLDAI 72,0] SD_INPUT_MAIL<>0 ^+1 0 [] SD_INPUT_MAIL<>0 ^+1 0 [WSTB 1,0] SD_INPUT_MAIL<>0 ^+1 0 [LCALL SD_REMOVE_WINDOW,1,0] SD_INPUT_MAIL<>0 ^+1 0 [] SD_INPUT_MAIL<>0 ^+1 0 [] SD_INPUT_MAIL<>0 ^+1 0 [] SD_INPUT_MAIL<>0 ^+1 0 [WPOPJ] SD_INPUT_MAIL<>0 SD_PATCH #SD_PATCH\ #SD_PATCH+27\ SD_INPUT_MAIL<>0 ^+1 [] [] SD_INPUT_MAIL<>0 ;End of patch .W&V(6v)&V# Z<MAKE_SD_ICDEB.CLI Z [!equal,,RCS] **************************************************************** $Id: make_sd_icdeb.cli,v 1.3 1994/03/11 17:27:47 mark Exp mark $ $Log: make_sd_icdeb.cli,v $ Revision 1.3 1994/03/11 17:27:47 mark Inserted previous log comments Revision 1.2 1994/03/11 01:45:18 mark Added RCS Id and Log fields Revision 1.1 1994/03/10 22:05:09 mark Initial revision *********************************************************************** [!end] 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__SD.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__SD.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]_SD.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 $