"`.D%O@'t%O@8NONICX.PATCH_LIST assign_con_num_3.00.03.pat,& inpfld_177_curadr_3.00.03.pat,& inpfld_d400_3.00.03.pat,& mon_8bit_3.00.03.pat,& true_charsets_3.00.03.pat,& binary_read_8bit_3.00.03.pat,& d470_def_char_3.00.03.pat,& no_delim_del_3.00.03.pat,& read_?ifop_3.00.03.pat,& graphic_cursor_3.00.03.pat,& ?esfc_rtn_bits_3.00.03.pat,& input_bad_curadr_3.00.03.pat,& urgent_mail_notyah_3.00.03.pat,& conlog_sfalt_3.00.03.pat,& ?proc_conlog_3.00.03.pat,& get_image_args_3.00.03.pat,& ir_init_3.00.03.pat,& no_?esrd_no_?esbb_3.00.03.pat,& short_mail_3.00.03.pat,& inbuf_len_3.00.03.pat,& ?idgoto_tsched_3.00.03.pat,& urg_mail_fun_keys_3.00.03.pat,& beep_timing_3.00.03.pat,& non_?esse_3.00.03.pat,& d400_input_shift_3.00.03.pat,& d460_graphics_3.00.03.pat,& hot_key_term_3.00.03.pat,& auto_logoff_times_3.00.03.pat,& flush_interference_3.00.03.pat,& ?kwait_error_hang_3.00.03.pat,& mail_print_priswi_3.00.03.pat,& read_screen_size_3.00.03.pat,& spec_prog_no_turbo_3.00.03.pat,& final_attrb_reset_3.00.03.pat,& bad_chan_io_3.00.03.pat,& obtain_input_3.00.03.pat,& binary_read_?idgoto_3.00.03.pat,& play_stop_3.00.03.pat,& urgent_mail_deliv_3.00.03.pat,& output_ofc_3.00.03.pat,& sd_input_string_3.00.03.pat,& sd_message_only_jsr_3.00.03.pat,& sm_notyah_3.00.03.pat& .D!L't!Ly0PATCH_SCREEN_DEMON.LB.CLI y[!equal,,comment] This macro installs patches into the Screen Demon library file SCREEN_DEMON.LB. This only needs to be done once. All programs linked using the patched library will inherit the fixes. [!end] [!equal,,[!path LB.PATCH_LIST]] write No patches available for SCREEN_DEMON.LB [!else] xeq patch/t=[!path SCREEN_DEMON.LB]/p=([LB.PATCH_LIST])/yes [!end] .D"'t"/SPY_EXIT_HANG_3.00.03.PAT ;--------------------------------------------------------------------- ; SPY_EXIT_HANG_3.00.03.PAT 26-NOV-91 ; ;This patch corrects a problem with SD_SPY when executed in View-only mode ; (console specified as command line argument). A hang would occasionally ; occur when was pressed to exit. ; ; This patch applies ONLY to SD_SPY.PR in Screen Demon rev 3.00.03 SD_SPY+7223 [COM# 1,1,SZR] [NOP] ^+1 [WBR SD_SPY+7126] [NOP] SD_SPY+7761 [LCALL SD_REMOVE_WINDOW,1,0] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [] [] ^+1 [] [WBR SD_SPY+7767] #SD_PATCH 0 [LCALL SD_REMOVE_WINDOW,1,0] ^+1 0 [] ^+1 0 [] ^+1 0 [] ^+1 0 [COM# 1,1,SNR] ^+1 0 [ISZTS] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+7\ ^+1 [] [] ;End of patch .D"M^'t"M_RIR.PATCH_LIST ?term_ir_3.00.03.pat,& bad_chan_ir_3.00.03.pat,& binary_timeout_ir_3.00.03.pat,& ?return_fxtd_ir_3.00.03.pat,& no_turbo_tabs_ir_3.00.03.pat& .D!݌J't!݌K");SPY_REMINP_CLR_3.00.03.PAT ";--------------------------------------------------------------------- ; SPY_REMINP_CLR_3.00.03.PAT 25-SEP-91 ; ;Normally, a remote process clears the Remote Input Mode flag for its ; console when SD_SPY exits remote input mode. However, if the ; remote process ends while still in remote input mode, this flag ; is not cleared, causing Screen Demon programs subsequently executed ; on that console to believe remote input mode is still active. ; This patch causes SD_SPY to clear the Remote Input Mode flag for the ; remote console when exiting remote input mode. ; ; Applies ONLY to the SD_SPY.PR program in Screen Demon rev 3.00.03 SD_SPY+11364 [LLEF 2,PID_FLAGS,1] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [] [] #SD_PATCH 0 131771 ^+1 0 ((#(SD_SPY+10536)+(SD_SPY+10536))-.)&17777777777\ ^+1 0 [] ^+1 0 [XLEF 2,10411,2] ^+1 0 [] ^+1 0 [NLDAI 10,1] ^+1 0 [] ^+1 0 [WBTZ 2,1] ^+1 0 [LLEF 2,PID_FLAGS,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+14\ ^+1 [] [] ;End of patch .D$x|'t$x|d{MAKE_SD_SPY.CLI d[!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. 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]& & [!edirectory [!pathname %0\%.cli]] [!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& & %1-%& & %0/config=%& & [!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]& & sd_console sd_x_read_char& & 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 inner.lb 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 .D"+e't"+e$,SD_VM_DEFINES.SR $ .TITLE SCREEN_DEMON.VM ; Definitions for building SCREEN_DEMON.VM file ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; ;;; Copyright (C) 1988 - 1991, ;;; ;;; 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 .NREL 6 ;Unshared data .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 .NREL 6 ;First two words of VM file header past console bitmap ; is block offset to first PID record .DWORD ?PIDBLKOFS ;Next part of header is termcaps table. First word of table is ; capabilities of terminal that doesn't return a model id. ; Rest of table is one-word slots for model id's SPACE thru ~ VMHDR.TERMCAPS_TBL: .BLK (1+127-32) % .MACRO DEFAULT % .MACRO TERMINAL .IFG .ARGCT .IFE ?TDEF ;Initialize "termcaps by model id" table entries ??M = 32 .DO (127-32) ?TCAPM.\??M = ?TCAP ??M = ??M+1 .ENDC .ELSE ?DEFINE_TERMINAL .ENDC ?TDEF = ?TDEF+1 ?TCAP = 0 ^1.TDEF = ?TDEF ?TCAPD.\?TDEF = 0 ?TMOD.\?TDEF = 0 .MACRO ^1 .IFG (.ARGCT-2) ASSIGN_TERMINALS ?TCAPD.\^1.TDEF,?TMOD.\^1.TDEF,|^1,|^2,|^3 .ELSE .IFG (.ARGCT-1) ASSIGN_TERMINALS ?TCAPD.\^1.TDEF,?TMOD.\^1.TDEF,|^1,|^2 .ELSE ASSIGN_TERMINALS ?TCAPD.\^1.TDEF,?TMOD.\^1.TDEF,|^1 .ENDC .ENDC |% .ENDC % .MACRO MODELID ?TMOD = 31 ;Default to value that gets slot in front of table .IFG .ARGCT .IFG (^1-31) .IFG (127-^1) ?TMOD = ^1 .ENDC .ENDC .ENDC % .MACRO DOES ?I = 1 .DO .ARGCT ;For each capability supplied... ?TCAP = ?TCAP!(^?I) ;...turn it on ?I = ?I+1 .ENDC % .MACRO EXCEPT ?I = 1 .DO .ARGCT ;For each capability supplied... ?TCAP = ?TCAP&(~(^?I)) ;...turn it off ?I = ?I+1 .ENDC % .MACRO ?DEFINE_TERMINAL .IFE ?TMOD ?TCAP.NONE = ?TCAP .ELSE ?TCAPM.\?TMOD = ?TCAP ?TCAPD.\?TDEF = ?TCAP .ENDC ?TMOD.\?TDEF = ?TMOD % .MACRO END_TERMCAPS .IFG ?TDEF ?DEFINE_TERMINAL .ENDC .LOC VMHDR.TERMCAPS_TBL .WORD ?TCAP.NONE ;First slot in table is slot for ; terminals whose model id is NONE ??M = 32 .DO (127-32) .IFE ?TDEF .WORD ?TCAP .ELSE .WORD ?TCAPM.\??M .ENDC ??M = ??M+1 .ENDC % .MACRO BEGIN_CON_TYPES ;Create a work area to be used to determine lengths of strings. ; CODE attribute necessary to force this area past real UD partition, ; NOMESS attribute needed since it will be overwritten repeatedly. .PART WORK_PART ALIGN=0,CODE,LONG,UNSHARED,NORM,GLOBAL,NOMESS WORK_AREA: .NREL 6 ;everything else goes in ordinary unshared data % ;Usage: ; CON_TYPE deviceName,lowUnit,highUnit ; .MACRO CON_TYPE .IFE .MCALL ?BASE_CON_NUM = 0 ?PIDBLKOFS = VMHDR.BLKS .ENDC .IFG .ARGCT ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Force low unit number to zero by ignoring arg 2 as a workaround ;;; for a bug in Screen Demon console number assignment routine. ;;; There is a patch to correct the bug, but conflicts will occur ;;; if some programs have the patch installed and some do not. ;;; This solution here is safest. ;;; .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 .NREL 6 ?BASE_CON_NUM = ?BASE_CON_NUM+(?HI_UNIT-?LO_UNIT+1) ?PIDBLKOFS = ?PIDBLKOFS+((?HI_UNIT-?LO_UNIT+1)*VMREC.BLKS) .ENDC % .MACRO END_CON_TYPES .WORD 0 ;terminate con types table with zero size % .MACRO BEGIN_TERMINAL_ASSIGNMENTS % .MACRO END_TERMINAL_ASSIGNMENTS % ;Usage: ; ASSIGN_TERMINALS termcaps,modelid,contypename,lowunit,highunit ; .MACRO ASSIGN_TERMINALS .IFG (.ARGCT-2) .IFL (.ARGCT-4) ?LO_UNIT = ^3.LO ?HI_UNIT = ^3.HI .ELSE ?LO_UNIT = ^4 .IFL (.ARGCT-5) ?HI_UNIT = ?LO_UNIT .ELSE ?HI_UNIT = ^5 .ENDC .ENDC ?SDCONNUM = ^3.BASE+?LO_UNIT .DO (?HI_UNIT-?LO_UNIT+1) .LOC ?SDCONNUM*VMREC.SIZE+VMHDR.SIZE+VMCON.MODELID .DWORD (^2)S7 .LOC ?SDCONNUM*VMREC.SIZE+VMHDR.SIZE+VMCON.TERMCAPS .WORD ^1 .LOC ?SDCONNUM*VMREC.SIZE+VMHDR.SIZE+VMCON.FLAGS .WORD 1B13 ?SDCONNUM = ?SDCONNUM+1 .ENDC .ENDC % .EOF .D"%c't"%c,wCHARSET_SPEC_3.00.03.PAT ;--------------------------------------------------------------------- ; CHARSET_SPEC_3.00.03.PAT 6-DEC-91 ; ;This patch corrects a problem with Screen Demon's alternate character ; set handling where it was assumed that host programs would always ; specify character set commands using the character set codes ; listed in the DG terminal manuals. However, since a terminal ; only uses the lower four bits of the character set code specifier ; bytes, it is possible to specify a character set using any ASCII ; characters with the correct lower four bits. If a host program ; did this, Screen Demon would not recognize the character set ; being requested, and would ignore it, resulting in characters ; displayed on the screen from the wrong character set. This ; problem was encountered with CEO_WRITE. ; ; Applies ONLY to SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 105445 177 17 105454 125731 103770 105455 0 60 105456 102 142471 105474 103231 143770 105475 0 17 105476 177 103770 105477 142471 60 105500 175131 142471 105501 136371 107430 106514 1257 677 106515 11 0 ;End of patch .D"& j(.i"& 0MON_8BIT_3.00.03.PAT ;--------------------------------------------------------------------- ; MON_8BIT_3.00.03.PAT 6-DEC-91 ; ;This patch adjusts the way Screen Demon maps displayed characters into ; image buffers so that characters with the high bit set are treated ; as belonging to the current alternate character set, provided that ; either the /8BT characteristic is on or the display is a binary one. ; ; This patch applies to programs linked with Screen Demon rev 3.00.03 SD_MONITOR_STRING+527 135430 131771 SD_MONITOR_STRING+535 [WSTB 3,1] {LPSHJ #SD_PATCH,1} ^+1 [WINC 3,2] [] ^+1 [WSBI 1,0] [] ^+1 [WMOV 0,1] [NOP] ^+1 [WCMV] [NOP] #SD_PATCH 0 [WPSH 3,3] ^+1 0 [LDASP 3] ^+1 0 [WPSH 0,2] ^+1 0 [LWLDA 2,WINDOW_SCROLL_COUNT-64,1] ^+1 0 [] ^+1 0 [] ^+1 0 [XNLDA 0,1,2] ^+1 0 [] ^+1 0 [ANDI 17,1] ^+1 0 [] ^+1 0 [WIOR 0,1] ^+1 0 [WPSH 1,1] ^+1 0 [XWLDA 1,4,3] ^+1 0 [] ^+1 0 [XWLDA 2,6,3] ^+1 0 [] ^+1 0 [WLDB 2,0] ^+1 0 [NSANA 200,0] ^+1 0 [] ^+1 0 [WBR .+3] ^+1 0 [XWLDA 1,10,3] ^+1 0 [] ^+1 0 [ANDI 177,0] ^+1 0 [] ^+1 0 [WSTB 2,0] ^+1 0 [WINC 2,0] ^+1 0 [XWSTA 0,6,3] ^+1 0 [] ^+1 0 [XWADD 2,0,3] ^+1 0 [] ^+1 0 [WSTB 2,1] ^+1 0 [XWDSZ 2,3] ^+1 0 [] ^+1 0 [WBR .-25] ^+1 0 [WSBI 2,3] ^+1 0 [STASP 3] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+45\ ^+1 [] [] ;End of patch .D"*r't"*r/NO_DELIM_DEL_3.00.03.PAT ;--------------------------------------------------------------------- ; NO_DELIM_DEL_3.00.03.PAT 10-DEC-91 ; ;This patch corrects an error in Screen Demon's processing of the ; delimiter that terminated a field-type input. If enough ; characters were entered to fill up the field without a delimiter ; character being pressed, Screen Demon acted as though a ; character had terminated the input. If was actually a ; delimiter, this would result in the input buffer being returned ; to the host program including the unentered character. ; ; Applies to programs linked with Screen Demon rev 3.00.03 SD_INPUT_FIELD+4717 [LWADD 2,FLDPKT+4,1] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [] [] #SD_PATCH 0 [LNLDA 0,FLDPKT+10,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WSUB 2,0] ^+1 0 [LWADD 2,FLDPKT+4,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WSLE 0,0] ^+1 0 [WPOPJ] ^+1 0 [WPOP 0,0] ^+1 0 [LJMP SD_INPUT_FIELD+4732] ^+1 0 [] ^+1 0 [] SD_PATCH #SD_PATCH\ #SD_PATCH+15\ ^+1 [] [] SD_INPUT_FIELD+6242 [NSANA 10000,0] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [SKIP] [] #SD_PATCH 0 [NSANA 10000,0] ^+1 0 [] ^+1 0 [WBR .+25] ^+1 0 [XNLDA 0,40,3] ^+1 0 [] ^+1 0 [WSNE 0,0] ^+1 0 [WPOPJ] ^+1 0 [XNLDA 1,43,3] ^+1 0 [] ^+1 0 [LNLDA 0,FLDPKT+10,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WSGT 0,1] ^+1 0 [WPOPJ] ^+1 0 [XWLDA 0,-10,3] ^+1 0 [] ^+1 0 [WSLEI 177,0] ^+1 0 [] ^+1 0 [WPOPJ] ^+1 0 [LLEF 1,ACTUAL_CON_DELIMITER_TABLE,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WSNB 1,0] ^+1 0 [ISZTS] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+31\ ^+1 [] [] ;End of patch .D"c't"c LOGOFF_WAIT_TIME_3.00.03.OPTPAT ;--------------------------------------------------------------------- ; LOGOFF_WAIT_TIME_3.00.03.OPTPAT 6-FEB-92 ; ;After a period of idle time defined by the LOGOFF_INTERVAL in the ; SD_CONFIG file, Screen Demon displays a message indicating ; that the user is about to be terminated. Normally, this message ; remains visible for one minute, and if no response is received in ; that time, the user is terminated. ; ; This patch allows the wait time for the message to be changed to ; a value other than one minute. In the third column of the patch ; line below, specify the desired number of seconds the message ; should remain visible before Screen Demon proceeds with the ; logoff. NOTE: MAKE SURE YOU APPEND A PERIOD (.) TO THE NUMBER!!! ; ; This patch applies to any program that has been linked with ; Screen Demon 3.00.03 only ; ; Your value (seconds) ; | ; v SD_PROCESS_TIMEOUT_ERROR+325 @. 60. ;End of patch .D"u{'t"u{QPMAKE_SD_ICX_NAMTB.CLI Qcomment *** This macro assembles a customized NAMTB.OB file comment * to be linked with the ICOBOL interpreter. push prompt pop searchlist [!searchlist] [!edirectory [!pathname %0\%.cli]] ((write x/s),x/s) & masm/ps=masm_32char.ps/ulc/o=[!equal,,%1%]NAMTB[!else]%1%[!end]%0/% & NAMTB_DEFINES & NAMTB & %1-% & SD_CALLS pop .D"R+'t"R,!INPUT_BAD_CURADR_3.00.03.PAT !;--------------------------------------------------------------------- ; INPUT_BAD_CURADR_3.00.03.PAT 24-MAR-92 ; modified 22-APR-92 ; ;This patch causes Screen Demon to watch for an invalid cursor address ; passed in the screen management subpacket on a console ?READ, and ; peg the position at the screen boundaries as an actual terminal does. ; The position was being used as is, which could sometimes result ; in modifications to memory outside the range of the internal ; screen image, or a program hang. This was noticed in CQCS from ; CyberScience, but only when running as an integrated application ; under CEO. ; Applies to programs linked with Screen Demon rev 3.00.03 SD_INPUT_FIELD+745 [XNSTA 0,3,3] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [XNSTA 0,5,3] [] ^+1 [] [NOP] #SD_PATCH 0 [LNLDA 2,AWLPP,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WSBI 1,2] ^+1 0 [WSLE 1,2] ^+1 0 [WMOV 2,1] ^+1 0 [LWLDA 2,AWDSC,1] ^+1 0 [] ^+1 0 [] ^+1 0 [XNLDA 2,34,2] ^+1 0 [] ^+1 0 [WSLE 0,2] ^+1 0 [WMOV 2,0] ^+1 0 [MOVS 0,2] ^+1 0 [WIOR 1,2] ^+1 0 [LNSTA 2,FLDSCRNPKT+2,1] ^+1 0 [] ^+1 0 [] ^+1 0 [XNSTA 0,3,3] ^+1 0 [] ^+1 0 [XNSTA 0,5,3] ^+1 0 [] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+27\ ^+1 [] [] ;End of patch .D"N't"N]?PROC_CONLOG_3.00.03.PAT ;--------------------------------------------------------------------- ; ?PROC_CONLOG_3.00.03.PAT 27-MAY-92 ; ;This patch corrects a problem with intercepted ?PROC calls while console ; logging was enabled, where the console log file would be left open ; when the ?PROC occurred. This meant that the file size would not ; necessarily reflect the data most recently written to the file by ; the calling process. If the ?PROC'd program also contained Screen ; Demon, it would append data to the log file, but at the apparent ; end-of-file. The file would become corrupt at that point, resulting ; in an unPLAYable file. ; Applies to programs linked with Screen Demon rev 3.00.03 ;ring 7 version SD_SYSCALL_INTERCEPTOR+312 [LPSHJ SD_CONSOLE_TO_VIRTUAL_STATE,1] {LPSHJ #SD_PATCH,1} SD_SYSCALL_GATE=0 ^+1 [] [] SD_SYSCALL_GATE=0 ^+1 [] [] SD_SYSCALL_GATE=0 ;inner ring version SD_SYSCALL_INTERCEPTOR+331 [LPSHJ SD_CONSOLE_TO_VIRTUAL_STATE,1] {LPSHJ #SD_PATCH,1} SD_SYSCALL_GATE<>0 ^+1 [] [] SD_SYSCALL_GATE<>0 ^+1 [] [] SD_SYSCALL_GATE<>0 #SD_PATCH 0 [LJSR SD_CLOSE_CONSOLE_LOG_FILE,1] ^+1 0 [] ^+1 0 [] ^+1 0 [LJMP SD_CONSOLE_TO_VIRTUAL_STATE,1] ^+1 0 [] ^+1 0 [] SD_PATCH #SD_PATCH\ #SD_PATCH+6\ ^+1 [] [] ;End of patch .D#ω't#ωLB.PATCH_LIST logoff_avert_3.00.03.pat,& history_chars_3.00.03.pat,& ?term_3.00.03.pat,& ctrl_d_3.00.03.pat,& remote_discard_3.00.03.pat,& pm_2480_input_3.00.03.pat,& output_timeout_3.00.03.pat,& mail_cache_3.00.03.pat,& echo_delim_3.00.03.pat,& screenprint_priswi_3.00.03.pat,& no_echo_bit_3.00.03.pat,& bad_chan_3.00.03.pat,& hot_pm_off_3.00.03.pat,& inpfld_error_?irlr_3.00.03.pat,& no_echo_restart_3.00.03.pat,& hot_phys_clrscn_3.00.03.pat,& binary_timeout_3.00.03.pat,& prim_wnd_output_3.00.03.pat,& ?cbsys_3.00.03.pat,& charset_spec_3.00.03.pat,& read_?etsp_3.00.03.pat,& scroll_up_3.00.03.pat,& tab_echo_3.00.03.pat,& sd_mem_sl_3.00.03.pat,& get_image_3.00.03.pat,& getchar_ersca_3.00.03.pat,& ?return_fxtd_3.00.03.pat,& getchar_intr_3.00.03.pat,& d216_invalid_cmds_3.00.03.pat,& inpstr_zero_bufptr_3.00.03.pat,& no_turbo_tabs_3.00.03.pat,& menu_col_3.00.03.pat,& init_flush_3.00.03.pat,& chset_erase_eol_opt_3.00.03.pat& .D!i't!i/SD_PRISWI_3.00.03.NOTE There is an error in the SD_PRISWI printer switcher module that can sometimes cause it get an "Illegal Filename Character" or "File Not Found" error when attempting to open the SD_PRISWI_CONFIG file. This occurs only when the file cannot be located via the searchlist, and SD_PRISWI attempts to look for it in the :UTIL:SCREEN_DEMON_3.00 directory. As a workaround, either put the file SD_PRISWI_CONFIG where it can be found via the searchlist, or create a link to it that can be located that way. .D!hz't!hzT"1BAD_CHAN_IR_3.00.03.PAT T;--------------------------------------------------------------------- ; BAD_CHAN_IR_3.00.03.PAT 24-OCT-91 ; ;This patch allows Screen Demon to protect itself against invalid ; channel numbers passed as system call arguments. Bad channel ; numbers, such as -1, caused a hardware trap when the host program ; used them with system calls such as ?STOM. ; ; This patch is definitely necessary when using Screen Demon with ; CyberScience CQCS programs. ; ; This patch applies ONLY to the file SD_INTERFACE_IR.OB ; in Screen Demon rev 3.00.03 %USERFILE 5162 161271 101211 5163 101170 100570 5166 115571 147011 5167 100211 77465 5170 123651 163211 5171 161571 377 5172 147011 161611 5173 76245 175170 7713 161611 101170 7722 115571 147011 7723 100211 75571 7724 123651 163251 7725 161571 377 7726 147011 100670 7727 74066 101170 7736 115571 147011 7737 100211 75271 7740 123651 101211 7741 161571 161611 7742 147011 175270 7743 74051 171270 10010 161611 110170 10047 115571 147011 10050 100211 75444 10051 123651 163251 10052 161571 377 10053 147011 101270 10054 73741 101670 10070 115571 147011 10071 100211 75137 10072 123651 101211 10073 161571 161611 10074 147011 175170 10075 73717 161570 10153 161611 110070 10211 115571 147011 10212 100211 75302 10213 123651 163251 10214 161571 377 10215 147011 101270 10216 73577 101670 10232 115571 147011 10233 100211 74775 10234 123651 101211 10235 161571 161611 10236 147011 175170 10237 73555 161670 10263 161611 104170 10302 115571 147011 10303 100211 75211 10304 123651 163251 10305 161571 377 10306 147011 101270 10307 73506 101570 10322 115571 147011 10323 100211 74705 10324 123651 101211 10325 161571 161611 10326 147011 175270 10327 73465 165670 10674 161611 110670 10740 115571 147011 10741 100211 75074 10742 123651 163251 10743 161571 377 10744 147011 101270 10745 73371 101570 10760 115571 147011 10761 100211 74570 10762 123651 101211 10763 161571 161611 10764 147011 175270 10765 73350 161170 ;End of patch .D#`MT't#`MUZINPFLD_D400_3.00.03.PAT ;--------------------------------------------------------------------- ; INPFLD_D400_3.00.03.PAT 29-OCT-91 ; modified 16-OCT-92 ; ;This patch corrects a problem with field inputs occurring when ; D400 hardware windows and/or margins were in effect. The ; input cursor position used was relative to the screen home ; position, rather than home position of the current hardware window. ; ; Applies to programs linked with Screen Demon rev 3.00.03 SD_INPUT_FIELD+2024 [XNLDA 1,10,3] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [MOVS 0,0] [] #SD_PATCH 0 [XNLDA 1,10,3] ^+1 0 [] ^+1 0 [LNLDA 2,TIB_WNDFLG,1] ^+1 0 [] ^+1 0 [] ^+1 0 [NSANA 10,2] ^+1 0 [] ^+1 0 [WBR .+6] ^+1 0 [LNSUB 0,TIB_LMAR,1] ^+1 0 [] ^+1 0 [] ^+1 0 [XNSUB 1,20,3] ^+1 0 [] ^+1 0 [MOVS 0,0] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+17\ ^+1 [] [] SD_DISPLAY+1342 [XJMP SD_DISPLAY+4542,1] [XJMP SD_DISPLAY+3621,1] ^+1 [] [] ;End of patch .D"'t",NO_ECHO_RESTART_3.00.03.PAT ;--------------------------------------------------------------------- ; NO_ECHO_RESTART_3.00.03.PAT 7-NOV-91 ; ;This patch corrects a problem with Screen Demon's field input routine ; affecting restarting an input with echo disabled, either via ; characteristics settings or the ?ESNE ?READ option. If screenedit ; is not on or the given input buffer does not end with <177>'s, ; and enough characters are entered to just fill up the buffer ; without a delimiter character being pressed, Screen Demon restarts ; the input waiting for a terminating character, in order to properly ; emulate this style of console ?READ. If echo was disabled, ; the contents of the input buffer were lost on this restart. ; ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 355221 124531 122611 355222 131751 121731 355224 10 43 355225 127351 100370 355230 300 105211 355231 100270 143711 355232 100370 103611 362575 122611 107031 362576 104631 74160 ;End of patch .D"o't"o7/BINARY_TIMEOUT_3.00.03.PAT 7;--------------------------------------------------------------------- ; BINARY_TIMEOUT_3.00.03.PAT 21-NOV-91 ; ;This patch corrects a problem in Screen Demon's system call interceptor ; that resulted in a hardware trap when a binary mode console input ; ended because of a non-Screen Demon timeout. This affected ICOBOL ; SECURE-type ACCEPTS using the TIME-OUT clause. ; ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 37572 105571 124531 37601 121571 143051 37602 124531 76 40205 121751 135751 ;End of patch .D"u^'t"um@,tPRIM_WND_OUTPUT_3.00.03.PAT @;--------------------------------------------------------------------- ; PRIM_WND_OUTPUT_3.00.03.PAT 23-NOV-91 ; ;When a host program outputs some terminal commands, such as Erase Page ; or Scroll Down, Screen Demon normally places them in its own stream ; of output to the terminal, because this is more efficient than the ; standard flush screen update would be for these commands. However, ; if the window to which the host program is displaying does not ; occupy the entire screen, terminal commands that affect the entire ; screen should not be output. This patch causes Screen Demon to ; check for such a situation before sending commands such as Clear ; Screen and Scroll Down. ; ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 115120 154271 107031 115121 124770 312 115433 123451 154271 115434 0 104170 115435 161451 171451 115436 77767 12 115437 163211 152131 115440 1 173051 115441 103651 10 115442 161411 103611 115443 77764 171451 115444 122371 26 115445 0 173211 115446 16 27 115447 171411 100670 115450 77762 171451 115451 173231 27 115452 145451 173251 115453 0 117 115454 125731 103611 115455 0 174211 115456 21 147011 115457 101470 77571 116140 1257 677 116141 10 0 116143 1257 677 116144 10 0 ;End of patch .D"KE't"KENSPY_NO_REMOTE_3.00.03.OPTPAT N;--------------------------------------------------------------------- ; SPY_NO_REMOTE_3.00.03.OPTPAT 6-DEC-91 ; ; OPTIONAL AND NOT GENERALLY RECOMMENDED!!! ; ;This optional patch permanently disables the Remote Input mode ; feature of SD_SPY. Since the patch applies to the SPY object ; module, this feature will remain disabled even if a new ; SPY program is created using the MAKE_SD_SPY.CLI macro. ; ; NOTE: After applying this patch, the SPY program MUST be ; rebuilt using MAKE_SD_SPY.CLI in order to create a ; version of SD_SPY.PR with Remote Input disabled. ; ; The original SD_SPY.PR can be reloaded from the release tape ; if Remote Input mode is needed at a later date. ; ; Applies ONLY to the file SD_SPY.OB in Screen Demon rev 3.00.03 %USERFILE 20064 105770 101033 20115 100670 101033 ;End of patch .D"dwh't"dwt?ESFC_RTN_BITS_3.00.03.PAT ;--------------------------------------------------------------------- ; ?ESFC_RTN_BITS_3.00.03.PAT 7-FEB-92 ; ;This patch corrects a problem with Screen Demon's handling of the ; return status bits in the ?READ screen management subpacket ; flags word. Any of these bits that were on when the host ; program made the ?READ system call would remain set following ; the ?READ, even if the indicated event did not occur. For ; example, the ?ESDD (function key was pressed) bit could be ; left on even if a function key had not been pressed, which ; could confuse the host program, as observed in software from ; OD Systems. ; ; Applies to programs linked with Screen Demon rev 3.00.03 SD_INPUT_FIELD+6142 [XNLDA 0,0,2] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [WIOR 0,1] [] #SD_PATCH 0 [XNLDA 0,0,2] ^+1 0 [] ^+1 0 [ANDI 175637,0] ^+1 0 [] ^+1 0 [WIOR 0,1] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+6\ ^+1 [] [] ;End of patch .D"'t"TsREAD_CURADR_3.00.03.OPTPAT ;--------------------------------------------------------------------- ; READ_CURADR_3.00.03.OPTPAT 6-MAR-92 ; ;This optional patch is intended for programs that make excessive use ; of the Read Cursor Address terminal command. It causes Screen ; Demon to intercept the command and place the appropriate response ; into the input stream, as if it had been received from the terminal. ; This eliminates a number of system calls, as well as preventing ; various difficulties, such as terminal hangs when a ^S was part of ; the response, or inappropriate Screen Demon hot key calls, such as ; a Redraw when a ^L was part of the Read Cursor Address response. ; ; This patch is necessary when Screen Demon is used with software ; from OD Systems. ; ; Applies to programs linked with Screen Demon rev 3.00.03 SD_MONITOR_STRING+3634 [WADC 2,2] {LPSHJ #SD_PATCH,1} ^+1 [XPSHJ .+5514,1] [] ^+1 [] [] #SD_PATCH 0 [LLEFB 3,TIB*2,1] ^+1 0 [] ^+1 0 [] ^+1 0 [LWLDA 2,(SDTEMP-60),1] ^+1 0 [] ^+1 0 [] ^+1 0 [WSNE 2,3] ^+1 0 [WPOPJ] ^+1 0 [LNLDA 3,CTRL,1] ^+1 0 [] ^+1 0 [] ^+1 0 [NSANA 20,3] ^+1 0 [] ^+1 0 [WPOPJ] ^+1 0 [LLEF 2,READ_CHAR_CONSOLE_CHAN-107,1] ^+1 0 [] ^+1 0 [] ^+1 0 [XLEFB 3,3*2,2] ^+1 0 [] ^+1 0 [NLDAI 37,0] ^+1 0 [] ^+1 0 [WSTB 3,0] ^+1 0 [WINC 3,3] ^+1 0 [LPSHJ (SD_MONITOR_STRING+1175),1] ^+1 0 [] ^+1 0 [] ^+1 0 [WSTB 3,0] ^+1 0 [WINC 3,3] ^+1 0 [WSTB 3,1] ^+1 0 [NLDAI 136.,0] ^+1 0 [] ^+1 0 [XNSTA 0,0,2] ^+1 0 [] ^+1 0 [NLDAI 3,0] ^+1 0 [] ^+1 0 [XNSTA 0,1,2] ^+1 0 [] ^+1 0 [WSUB 0,0] ^+1 0 [XNSTA 0,2,2] ^+1 0 [] ^+1 0 [WADC 0,0] ^+1 0 121731 #SD_PATCH+52 0 ((#(SD_READ_CHAR+233)+SD_READ_CHAR+233-.)&17777777777)\ SD_XGETCHAR=0 ^+1 0 [] SD_XGETCHAR=0 #SD_PATCH+52 0 ((#(SD_READ_CHAR+267)+SD_READ_CHAR+267-.)&17777777777)\ SD_XGETCHAR<>0 ^+1 0 [] SD_XGETCHAR<>0 ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+55\ ^+1 [] [] ;End of patch .D"U't"UC,iD216_INVALID_CMDS_3.00.03.PAT C;--------------------------------------------------------------------- ; D216_INVALID_CMDS_3.00.03.PAT 17-APR-92 ; ;This patch informs Screen Demon that D214, D215, D216, D217, etc. ; terminals do not accept advanced commands such as Set Cursor Type ; and Set Scroll Rate. This sometimes caused extraneous characters ; to appear on the screen of these terminals. ; ; Applies ONLY to SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 106001 4 40 106037 4 40 106123 4 40 106241 4 40 106277 4 20 107006 4 20 124313 4 40 130266 4 40 ;End of patch .@"t't"uSD_SAVE_RESTORE_SCREEN.OB  SD_SAVE_RESTORE_SCREENX 0A P[nSD_MONITOR_STRINGSD_MEM_ALLOCATESD_MEM_FREESD_ACQUIRE_RESOURCESD_RELEASE_RESOURCESD_REMOVE_WINDOWTIBWINDOW_PENDFUNCAWDSCXFUNTBL{\o  KG SD_XFUNTBL_DISPATCHSAVE_RESTORE_SCREENSD_REMOVE_CLONE_WINDOWSD_CLONE_WINDOWSD_RESTORE_WINDOW_FROM_CLONESD_CLONE_WINDOW_JSRSD_RESTORE_WINDOW_FROM_CLONE_JSRosꩩY)Yى8ʮyd)y))   щxy ؇)x Y98)7 )9yy)0YyyY9Y)/yyi Y9091)292)393)494)595)696i)" Vy))9 Y9 9 999)99)O99)9)9)9999)9))Py9i yyi2)yy)9999)9)9Y9 Y Iy й8y   )nyyi Y) i  )Ii ) i9 Y    Iy) yyy) IYyЉi  )y))   y )nyyi Y) i  )Ii ) i9 Y y* y  Iy) yyy) IYyЉyyЉ")0<?BEN{    ;      .D#Cv+'t#Cv+TD460_GRAPHICS_3.00.03.PAT ;--------------------------------------------------------------------- ; D460_GRAPHICS_3.00.03.PAT 13-AUG-92 ; modified 17-SEP-92 ; ;This patch corrects a problem with terminal commands not interpreted ; by Screen Demon that end with a null, such as some D460 graphics ; commands. The lead-in characters for the command would not always ; be sent to the terminal. ; ; Applies to programs linked with Screen Demon rev 3.00.03 ; ; Note: this patch is unnecessary if D460 graphics commands are not ; being used. SD_MONITOR_STRING+4734 [LWLDA 2,WINDOW_PENDFUNC-52,1] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [] [] #SD_PATCH 0 [LWLDA 2,WINDOW_PENDFUNC-52,1] ^+1 0 [] ^+1 0 [] ^+1 0 [XNLDA 1,0,2] ^+1 0 [] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+6\ ^+1 [] [] SD_MONITOR_STRING+5014 [WLDB 0,0] {LPSHJ #SD_PATCH,1} ^+1 [WSEQ 0,0] [] ^+1 [WBR SD_MONITOR_STRING+4744] [] #SD_PATCH 0 [WLDB 0,0] ^+1 0 [NSANA 177,0] ^+1 0 [] ^+1 0 [WPOPJ] ^+1 0 [WPOP 0,0] ^+1 0 [LJMP SD_MONITOR_STRING+4744,1] ^+1 0 [] ^+1 0 [] SD_PATCH #SD_PATCH\ #SD_PATCH+10\ ^+1 [] [] ;End of patch .D#\c't#\cDFSD_SHCON_IPC_3.00.03.OPTPAT D;--------------------------------------------------------------------- ; SD_SHCON_IPC_3.00.03.OPTPAT 11-NOV-92 ; ;This patch forces a screen redraw after an IPC receives from related ; nonScreen Demon processes when the /SHR shared console characteristic ; is on. This may be necessary when running CEO where some programs, ; such as CEO_CP, contain Screen Demon, and others, such as CEO_WP, ; do not. Without the patch, screen displays may be incorrect. ; ; NOTE 1: The optional module SD_SHCON_IPC_ADJ_STATE.OB must also ; have been linked with the program or shared library in order ; for this patch to apply. ; ; NOTE 2: This patch and related module WILL NOT WORK in an inner ring! ; ; Applies to programs linked with Screen Demon rev 3.00.03 SD_SYSCALL_INTERCEPTOR+5064 [WBR .+24] [NOP] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [WPSH 0,0] [WPOP 3,3] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [LLEF 3,ICTRL2,1] [MOVR 3,3] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [] [WMOV 0,3] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [] [WPOP 0,0] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [NLDAI 11,0] [SPSR] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [] [WMOV 3,0] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [WBTO 3,0] [LPEF SD_SYSCALL_INTERCEPTOR+26,1] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [NLDAI 10,0] [] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [] [] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [WBTO 3,0] [LJSR SD.SYSCALL,1] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [NLDAI 7,0] [] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [] [] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [WBTO 3,0] 26 (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [NLDAI 177776,0] [WPOPJ] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [] [LPSHJ SD_SHCON_IPC_ADJ_STATE,1] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [LNSTA 0,ACTUAL_CON_TIMEOUT,1] [] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [] [] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [] [DSZTS] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [WPOP 0,0] [WPOPJ] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) SD_SYSCALL_INTERCEPTOR+5242 [WBR .+27] [WBR .+4] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) SD_SYSCALL_INTERCEPTOR+5246 [WPSH 0,0] [WPOP 3,3] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [LLEF 3,ICTRL2,1] [MOVR 3,3] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [] [WMOV 0,3] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [] [WPOP 0,0] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [NLDAI 11,0] [SPSR] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [] [WMOV 3,0] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [WBTO 3,0] [LPEF SD_SYSCALL_INTERCEPTOR+26,1] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [NLDAI 10,0] [] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [] [] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [WBTO 3,0] [LJSR SD.SYSCALL,1] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [NLDAI 7,0] [] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [] [] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [WBTO 3,0] 142 (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [NLDAI 177776,0] [WPOPJ] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [] [LPSHJ SD_SHCON_IPC_ADJ_STATE,1] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [LNSTA 0,ACTUAL_CON_TIMEOUT,1] [] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [] [] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [] [DSZTS] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ^+1 [WPOP 0,0] [WPOPJ] (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) SD_FLUSH_IF_NEEDED_JSR+15 104 100 (SD_SHCON_IPC_ADJ_STATE<>0)&(SD_SYSCALL_GATE=0) ;End of patch .D$x|'t$x|l CMAKE_SD_INNER_RING.CLI l[!equal,,comment] This macro rebuilds the SCREEN DEMON Inner Ring subroutine program. Optional global switches: /RING=ring# Specifies the ring in which the Screen Demon inner ring program will be loaded. The default is ring 6. /CONFIG=filename Specifies an alternate configuration file to use instead of SD_SL_CONFIG. /O=inner_ring_filename Specifies an alternate filename to use for the inner ring program instead of SCREEN_DEMON_RING_.PR, where is the ring number specified by the /RING= switch. /COB32 Indicates that 32-bit VS/COBOL programs are also being linked into the inner ring program, and so will require the COBOL.LB and LANG_RT libaries. /PRISWI Causes the Printer Switcher routine to be linked with the inner ring program. The SD_PRISWI_CONFIG file must be available at runtime. /LANG_RT Indicates that the Common Language Runtime library is to be linked with the inner ring program. This switch is not necessary if the /COB32 switch is specified. /PID_SIZE= Allows a type other than HYBRID to be specified for the inner ring program. This may be necessary on AOS/VS II systems where an ANYPID type program cannot ringload a HYBRID. In that case, use /PID_SIZE=ANYPID when creating the inner ring program if the ring 7 program that will be using the inner ring program is an ANYPID type. /GATES=gate-array-module-name Specifies an alternate gate array definition .OB module that declares the gates which will be used to access the new inner ring program. A gate array module is created using the MAKE_SD_GATES.CLI macro. If this switch is not supplied, the default is to use _GATES.OB if it exists; otherwise, the default SD_GATE_ARRAY in SCREEN_DEMON.LB will be used. The Screen Demon CEO and WordPerfect interfaces cannot be linked into an inner ring because these two products only talk to ring 7 programs. Additional object modules may be included by listing them on the command line. Optional patches will be installed if they are placed in a file called SCREEN_DEMON.PAT. See the SCREEN_DEMON.OPTIONAL.PAT file for instructions on creating a SCREEN_DEMON.PAT file. Also, all available fix patches, as specified in the NONICX.PATCH_LIST file, will be installed. [!end] push prompt pop Comment Adjust the following SEARCHLIST command to fit your file system: searchlist [!searchlist]& & [!nequal,,%0/cob32/infos/lang_rt%]& [!nequal,,%0/cob32%]& :util:cobol& [!end]& [!nequal,,%0/cob32/lang_rt%]& :util:lang_rt& [!end]& [!end]& & [!edirectory [!pathname %0\%.cli]] Comment If all required switches were not supplied, recurse with defaults [!nequal,,[!equal,,%0/config=%]NULL[!end][!equal,,%0/o=%]NULL[!end][!equal,,%0/ring=%]NULL[!end]] %0\%%0\config\o\ring%& & /config=[!equal,,%0/config=%]SD_SL_CONFIG[!else]%0/config=%[!end]& & /ring=[!equal,,%0/ring=%]6[!else]%0/ring=%[!end]& & /o=[!equal,,%0/o=%]SCREEN_DEMON_RING_[!equal,,%0/ring=%]6[!else]%0/ring=%[!end][!else]%0/o=%[!end] %-% [!else] [!equal,,[!path %0/config=%.OB]] write ERROR: cannot find configuration file %0/config=%.OB [!else] write write ,,,,Using configuration file [!path %0/config=%.OB] write ,,,,,,,,,to create %0/o=%.PR write ((write x/s),x/s) & link/stacksize=40000/tasks=32/revision=3.00.03& [!equal,,%0/mtop=%]/mtop=1[!end]& [!equal,,%0/pid_size=%]/pid_size=HYBRID[!end]& %0\config\gates\priswi\cob32\infos\lang_rt% & & [!nequal,,%0/gates=%]& %0/gates=%& [!else][!nequal,,[!path %0/o=%_GATES.OB]]& %0/o=%_GATES& [!end][!end]& & %0/config=% & & %1-% & & sd_interface_ir& & [!nequal,,%0/priswi%]& sd_priswi& [!end]& & sd_console sd_x_read_char& & screen_demon.lb& & [!nequal,,%0/cob32%]& cfalt ffalt cobol.lb& [!end]& & [!nequal,,%0/infos%]& [!equal,,%0/infos=%]& icall32& [!else]& dummyicall32& [!end]& [!end]& & [!nequal,,%0/cob32/lang_rt%]& .STKSIZE/value=8192& multitasking no_queued_task_mgr inner.lb lang_rt.lb& [!else]& sd_no_lang_rt& [!end] [!equal,(),([!string])] comment Install optional patches to the inner ring program [!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] [!end] [!end] [!end] pop .D!À't!À14ASSIGN_CON_NUM_3.00.03.PAT ;--------------------------------------------------------------------- ; ?ASSIGN_CON_NUM_3.00.03.PAT 28-AUG-91 ; ;This patch corrects a problem where the unit numbers for a console ; type group defined in the SCREEN_DEMON.CONTYPES file were processed ; incorrectly. A low unit number of zero was always used, with a high ; unit number of ( - ). This meant that consoles ; in the upper range of the group would be considered out of range. ; ; NOTE: An alternative to using this patch is to always define the ; low unit numbers as zero in the SCREEN_DEMON.CONTYPES file. ; ; Applies to programs linked with Screen Demon rev 3.00.03 ASSIGN_SD_CON_NUM+125 [WFFAD 3,0] {LPSHJ #SD_PATCH,1} ^+1 [XNLDA 1,2,2] [] ^+1 [] [] #SD_PATCH 0 [WFFAD 3,0] ^+1 0 [XNSUB 3,1,2] ^+1 0 [] ^+1 0 [XNLDA 1,2,2] ^+1 0 [] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+6\ ^+1 [] [] ;End of patch .D"'t"( GSD_POSSESS_ICX_1.60.PAT  ;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.00 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 [] [] ;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+140\ ^+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 [] [] ;The following section of this patch applies to ICOBOL rev 1.60.00 - 1.60.05 #SD_PATCH 0 [XNLDA 0,2,2] #(SETDLM+1351)=(CLREOL*2) ^+1 0 [] #(SETDLM+1351)=(CLREOL*2) ^+1 0 [XNSTA 0,3,3] #(SETDLM+1351)=(CLREOL*2) ^+1 0 [] #(SETDLM+1351)=(CLREOL*2) ^+1 0 [LJMP SETDLM+1363,1] #(SETDLM+1351)=(CLREOL*2) ^+1 0 [] #(SETDLM+1351)=(CLREOL*2) ^+1 0 [] #(SETDLM+1351)=(CLREOL*2) SETDLM+1344 [XNLDA 0,2,2] {LJMP #SD_PATCH,1} #(SETDLM+1351)=(CLREOL*2) ^+1 [] [] #(SETDLM+1351)=(CLREOL*2) ^+1 [XNSTA 0,3,3] [] #(SETDLM+1351)=(CLREOL*2) ^+1 [] [NOP] #(SETDLM+1351)=(CLREOL*2) ;For ICOBOL rev 1.60.06 and above #SD_PATCH 0 [XNLDA 0,2,2] #(SETDLM+1354)=(CLREOL*2) ^+1 0 [] #(SETDLM+1354)=(CLREOL*2) ^+1 0 [XNSTA 0,3,3] #(SETDLM+1354)=(CLREOL*2) ^+1 0 [] #(SETDLM+1354)=(CLREOL*2) ^+1 0 [LJMP SETDLM+1366,1] #(SETDLM+1354)=(CLREOL*2) ^+1 0 [] #(SETDLM+1354)=(CLREOL*2) ^+1 0 [] #(SETDLM+1354)=(CLREOL*2) SETDLM+1347 [XNLDA 0,2,2] {LJMP #SD_PATCH,1} #(SETDLM+1354)=(CLREOL*2) ^+1 [] [] #(SETDLM+1354)=(CLREOL*2) ^+1 [XNSTA 0,3,3] [] #(SETDLM+1354)=(CLREOL*2) ^+1 [] [NOP] #(SETDLM+1354)=(CLREOL*2) 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] ;End of patches .D!ɀ't!ɀ/|PM_2480_INPUT_3.00.03.PAT ;--------------------------------------------------------------------- ; PM_2480_INPUT_3.00.03.PAT 5-SEP-91 ; ;This patch prevents Screen Demon from becoming fatally confused when ; an input with initial contents extending up to or past line 24 ; column 80 is attempted with page mode on. ; ; Note: This is a simple work-around that makes things work in most ; situations. However, it may cause the cursor position to be ; incorrect for inputs reaching the last position of all but the ; first D400 hardware window, if hardware windows are in effect. ; A proper fix cannot be patched into the .LB file. ; ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 356236 100531 100370 356240 104511 144531 ;End of patch .D!}'t!}&-HOT_ACL_SL_3.00.03.PAT &;--------------------------------------------------------------------- ; HOT_ACL_SL_3.00.03.PAT 24-SEP-91 ; ;This patch corrects a problem when running under the Screen Demon ; shared library where pressing a hot key that had an ACL clause ; caused a fatal error. This problem does not occur when Screen ; Demon is linked directly with a user program or when run from ; an inner ring. ; ; Applies only to Screen Demon shared library files created ; using Screen Demon rev 3.00.03, such as SCREEN_DEMON.SL %USERFILE SD_CALL_HOT_KEY_ROUTINE+115 [XJSR .+1266,1] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [WBR .+26] [] #SD_PATCH 0 [WSANA 34000000000,0] ^+1 0 [] ^+1 0 [] ^+1 0 [SKIP] ^+1 0 [WBR .+5] ^+1 0 [LLEFB 3,?ZBOT*2,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WADD 3,0] ^+1 0 [LJSR SD_ABORT_HOT_KEY_HOLDS+44,1] ^+1 0 [] ^+1 0 [] ^+1 0 [SKIP] ^+1 0 [WPOPJ] ^+1 0 [WPOP 3,3] ^+1 0 [LJMP SD_CALL_HOT_KEY_ROUTINE+145,1] ^+1 0 [] ^+1 0 [] SD_PATCH #SD_PATCH\ #SD_PATCH+22\ ^+1 [] [] ;End of patch .@!݈'t!݉%/SD_CONSOLE.OB  SD_CONSOLE4#& !9\!N SD_SHARED_DATA_PARTSD_UNSHARED_DATA_PARTSD_UNINITIALIZED_DATA_PART;9  + ;FUm   5On  .=Qf| &7FY^ lSD_NEW_WINDOWSD_REMOVE_WINDOWSD_FLUSHSD_REDRAWSD_MONITOR_STRINGSD_OUTPUT_STRINGSD_DRAW_BOXSD_GETCHAR_ONLYSD_EXECUTE_LIST_OF_CALLSIS_PROGRAM_SPECIAL?SD_GET_IMAGE_BELOW_FLOAT_JSRSD_FLOAT_WINDOWSD_SUSPEND_WINDOWSD_ENTER_HOT_KEYSD_EXIT_HOT_KEYCON_MODELIDCON_TERMCAPSSD_DAD_PIDACTUAL_CON_CHARACTERISTICSACTUAL_CON_CHARACTERISTICS_SIZEACTUAL_CON_DELIMITER_TABLEACTUAL_CON_OUTPUT_DELIMITER_TBLACTUAL_CON_TIMEOUTVIRTUAL_CON_TIMEOUTVIRTUAL_CON_CHARACTERISTICSVIRTUAL_CON_DELIMITER_TABLECON_PROGPID_FLAGSPID_VMTIBTIBOFSTIB_UPD_COUNTICTRLICTRL2CTRLPERIODIC_INTERVALSD_SCREEN_SAVER_INTERVALLOGOFF_INTERVALLOGOFF_OK_AFTER_TIMELOGOFF_OK_BEFORE_TIMESD_PERIODIC_CALLS_LISTSD_PRE_HOT_CALLS_LISTSD_POST_HOT_CALLS_LISTSD_SCREEN_SAVER_CALLS_LISTFLDPKTOUTPKTREAD_CHAR_CONSOLE_CHANHOT_DELIMITER_TABLEDEFAULT_DELIM_TBLNONFNB_TBLINPUT_CASE_CONVERSIONSD_CONFIG_NRM_OFFCOMPOSITE_IMAGECOMPOSITE_UPD_COUNTAWDSCPRIMARY_WINDOWSD.SYSCALL+ %:K`Fx!!U9{To    )0HW_t~          &  (  * < & 2 C ,S SD_SELECT_CONSOLE_TIMEOUTSD_CONSOLE_MATCH_?CTOSD_RESET_TIMEOUTSSD_SET_ACCEPT_TIMEOUTSD_PROCESS_TIMEOUT_ERRORSD_CONSOLE_SET_TIMEOUTSD_CONSOLE_INIT_TIMEOUTSD_CONSOLE_INITSD_CONSOLE_OPENSD_CONSOLE_TO_VIRTUAL_STATESD_CONSOLE_INIT_CHARACTERISTICSSD_CONSOLE_GET_CHARACTERISTICSSD_CONSOLE_SET_CHARACTERISTICSSD_CONSOLE_GET_VIRTUAL_CHARSD_CONSOLE_SET_VIRTUAL_CHARSD_CONSOLE_INIT_DELIMITER_TABLESD_CONSOLE_GET_DELIMITER_TABLESD_CONSOLE_SET_DELIMITER_TABLESD_CONSOLE_GET_VIRTUAL_DELIM_TBLSD_CONSOLE_SET_VIRTUAL_DELIM_TBLSD_CONSOLE_GET_OUTPUT_DELIM_TBLSD_CONSOLE_SET_OUTPUT_DELIM_TBLSD_CONSOLE_INIT_MODELIDSD_CONSOLE_INPUT_PREPSD_SET_LOGOFF_INTERVALSD_GET_TERMCAPSUSER_TIMEOUTACCEPT_TIMEOUTLOGOFF_TIMEOUTFORCE_ON_CON_CHARACTERISTICSCONNAMEOUTNAMEINNAMECONPATHOUTPATHCONSOLE_PORTOUTPUT_PORTINPUT_PORTCONPKTCONSOLE_CHANCONSOLE_FILE_TYPECONSOLE_CHAN_MAPCONSOLE_OPEN_PARAMS @CONSOLE@OUTPUT@INPUT          @    %  O> $ & , < < T  <  =@  >  ?  @  B  C  D  E  F  H  J!  LY "  NT # T$ T% &  1' (  ))IIѹIyyIy)IIY)8)x) 119) ) )XEḣ8X  9) IY9Yyi9Yx)x),9iY) IY9Yi9Yx)89))))9)|I9) Y)TW ].ag.j'm'p u.x   6,,/  +++, .D"#FJ't"#FJx)>SD_INPUT_STRING_3.00.03.PAT x;--------------------------------------------------------------------- ; SD_INPUT_STRING_3.00.03.PAT 15-OCT-91 ; ;This patch corrects a problem with the SD_INPUT_STRING call where the ; returned input buffer would contain two <177> characters at the ; end of the field when the user typed enough characters to fill up ; the field and the "Return When Full" flag was set. ; ; Applies to programs linked with Screen Demon rev 3.00.03 ; ; This patch is necessary ONLY for programs that call either ; SD_INPUT_STRING or the C function SDInputString(). ; None of the standard Screen Demon programs use these calls. SD_INPUT_STRING+1 0 11 SD_INPUT_STRING+131 [LLEF 0,VIRTUAL_CON_DELIMITER_TABLE,1] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [] [] #SD_PATCH 0 [WPSH 1,3] ^+1 0 [LDAFP 3] ^+1 0 [XLEF 3,2,3] ^+1 0 [] ^+1 0 [WMOV 3,0] ^+1 0 [LLEF 2,VIRTUAL_CON_DELIMITER_TABLE,1] ^+1 0 [] ^+1 0 [] ^+1 0 [NLDAI 20,1] ^+1 0 [] ^+1 0 [WBLM] ^+1 0 [NLDAI 177,1] ^+1 0 [] ^+1 0 [WBTO 0,1] ^+1 0 [WPOP 3,1] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+20\ ^+1 [] [] ;End of patch .D$x}'t$x}A4 SD_CLINK.CLI A[!equal,,comment] This macro links a 32-bit COBOL program with Screen Demon. All standard CLINK switches are supported. Following a successful link, if optional Screen Demon patches exist, they will be applied to the new program. /SDRING= or /SDRING= Causes the program to be linked so that it loads the specified SCREEN DEMON inner ring program, instead of linking the SCREEN DEMON routines into the COBOL program. If just a is given, the inner ring CALLS module name will be SCREEN_DEMON_RING__CALLS.OB Inner ring CALLS modules are created using MAKE_SD_GATES.CLI /SHARED If /SDRING= is not specified, /SHARED causes the program to be linked so that it uses the shared library version of SCREEN DEMON in addition to the shared libraries for COBOL and LANG_RT. If /SDRING= was also included, the program will run SCREEN DEMON in the specified inner ring, but it will still use the COBOL and LANG_RT shared libraries. /CONFIG=config-filename Specifies that the indicated configuration file should be used instead of the default SD_CONFIG.OB file. /PARTURBO Causes the program start up in Partial Turbo mode rather than Full Turbo. Partial Turbo provides the continual screen updates that occur without Turbo, but still transmits only the characters that change. Partial Turbo is much slower than Full Turbo, however, because screen writes are not buffered, thus requiring more system calls. /NOTURBO Forces the program to start with Turbo Display mode completely off. Use this switch only when absolutely necessary. It can disrupt SCREEN DEMON's windowing environment. Try the /PARTURBO switch instead. /PRISWI Causes the Printer Switcher routine to be linked with the COBOL program. Do not use this switch with the /SHARED or /SDRING switches. The SD_PRISWI_CONFIG file must be available at runtime. /WP Causes the interface routines for WordPerfect Library/Office Shell to be linked with the program. The SHELLCOM.32.OB file provided by WordPerfect must be available. /CEO Includes an interface to CEO Mail and to the CEO Interrupt Menu. This interface uses routines from CEO Toolkit, which must be available on your system. Optional patches will be installed if they are placed in a file called SCREEN_DEMON.PAT. See the SCREEN_DEMON.OPTIONAL.PAT file for instructions on creating a SCREEN_DEMON.PAT file. [!end] push prompt pop searchlist [!searchlist] [!edirectory [!pathname %0\%.cli]] write string/k [!equal,,%0/shared/sdring=%] [!equal,,%0/config=%] [!equal,,[!path SD_CONFIG.OB]] write ,,,,Configuration file SD_CONFIG.OB not found! string ERROR [!else] write ,,,,Using configuration file [!path SD_CONFIG.OB] [!end] [!else] [!equal,,[!path %0/config=%.OB]] write ,,,,Configuration file %0/config=%.OB not found! string ERROR [!else] write ,,,,Using configuration file [!path %0/config=%.OB] [!end] [!end] write [!end] [!equal,,[!string]] ((write,),)CLINK%0\s\parturbo\noturbo\config\priswi\ceo\wp\sdring% %-% & & [!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& & [!else]& & [!equal,,%0/shared%]& [!nequal,,%0/config=%]& %0/config=%& [!else]& sd_config& [!end]& [!end]& & sd_cobol32_intf & & [!nequal,,%0/wp%]& sd_wp_shell& [!nequal,,[!path :wpoffice:wpoexe:shellcom.32.ob]]& :wpoffice:wpoexe:shellcom.32& [!else][!nequal,,[!path :wpml:shellcom.32.ob]]& :wpml:shellcom.32& [!else]& shellcom.32.ob& [!end][!end]& [!end]& & [!nequal,,%0/ceo%]& [!nequal,,%0/shared%]& sd_ceo_interface_rtd& [!else]& sd_ceo_interface& [!end]& :util:ceo_dir:it_lib.lb/multiple& [!end]& & [!equal,,%0/shared%]& [!nequal,,%0/priswi%]& sd_priswi& [!end]& [!end]& & [!nequal,,%0/shared%]& shared_screen_demon.lb& [!else]& sd_console sd_x_read_char& screen_demon.lb& [!end]& & [!end]& [!end] [!equal,,comment] NOTE: The standard CLINK macro supplied by DG discards the results returned by LINK. To have these results passed back to this macro, the PUSH and POP done in CLINK.CLI must be removed. Also, a \S must be added to the line containing the other backslashed switches in CLINK.CLI Then add a /S in the CLINK call in this macro immediately after the word CLINK. This will prevent SD_CLINK from installing any patches if the link had errors. [!end] comment If the link was successful (or unknown), install applicable patches comment unless /SHARED or /SDRING switches were used. [!equal,(),([!string]%0/shared/sdring=%)] comment Install special anti-Turbo patches to the new program [!nequal,,%0/PARTURBO%] x patch/t=%1%.PR/p=PAR_TURBO.PAT/yes [!else][!nequal,,%0/NOTURBO%] x patch/t=%1%.PR/p=NO_TURBO.PAT/yes [!end][!end] comment Install user-selected patches to the new program [!nequal,,[!path SCREEN_DEMON.PAT]] x patch/t=%1%.pr/p=SCREEN_DEMON.PAT/yes [!end] comment Install fix patches if available [!nequal,,[!path NONICX.PATCH_LIST]] x patch/t=%1%.pr/p=([NONICX.PATCH_LIST])/yes [!end] [!end] pop .D"!m't"!m,APPLY_SD_UPDATE.CLI comment apply_sd_update.cli write write Screen Demon update installation write ================================ write write Patching main library SCREEN_DEMON.LB... patch_screen_demon.lb write write Patching inner ring interface module... x patch/t=[!path sd_interface_ir.ob]/p=([ir.patch_list])/yes write write Patching CEO interface module... x patch/t=[!path sd_ceo_interface.ob]/p=sd_ceo_interface.ob_3.00.03.pat/yes write write Patching WordPerfect interface module... x patch/t=[!path sd_wp_shell.ob]/p=wp_cli_3.00.03.pat/yes write write Patching Screen Demon registration program... x patch/t=[!path sd_register.pr]/p=sd_register_vcon_3.00.03.pat/yes write write Rebuilding SD_SPY.PR program... make_sd_spy write write Rebuilding SD_PLAY.PR program... make_sd_play write write Rebuilding default inner ring program SCREEN_DEMON_RING_6.PR... make_sd_inner_ring write write Rebuilding default shared library SCREEN_DEMON.SL... make_screen_demon.sl write write Screen Demon update installation complete! .D"dm't"dm+ SDCONTROL.WS +*** SDCONTROL.WS *** ** Structure of the Screen Demon user control word. ** The value of this word can be set by the SD_CONTROL call, ** or obtained using the SD_GET_CONTROL call. ** This copy file is intended to be used to manipulate the bits ** in the control word via the SD_BITS_TO_DIGITS and the ** SD_DIGITS_TO_BITS calls. 01 SD-CONTROL-BITS-GROUP. 05 SD-CONTROL-RESERVED-BITS PIC X(6). 05 SD-CONTROL-NO-HOT-KEYS-BIT PIC X. 05 SD-CONTROL-UNDER-WP-BIT PIC X. 05 SD-CONTROL-UNDER-CEO-BIT PIC X. 05 SD-CONTROL-FLUSH-NEEDED-BIT PIC X. 05 SD-CONTROL-PARTIAL-TURBO-BIT PIC X. 05 SD-CONTROL-TURBO-BIT PIC X. 05 SD-CONTROL-RESERVED-1-BIT PIC X. 05 SD-CONTROL-REDRAW-BIT PIC X. 05 SD-CONTROL-RESERVED-2-BIT PIC X. 05 SD-CONTROL-DISABLE-BIT PIC X. ************************************************************************ * SD-CONTROL-RESERVED-BITS Undefined * SD-CONTROL-NO-HOT-KEYS-BIT Hot keys are disabled * SD-CONTROL-UNDER-WP-BIT Successful connection established with * WordPerfect Office Shell * SD-CONTROL-UNDER-CEO-BIT Successful connection established with CEO_CP * SD-CONTROL-FLUSH-NEEDED-BIT Window image buffers have been modified since * the last terminal screen update * SD-CONTROL-PARTIAL-TURBO-BIT If the Turbo bit below is also set, then * Turbo mode is Partial, rather than Full * (OBSOLETE!) * SD-CONTROL-TURBO-BIT Optimized display processing is on * SD-CONTROL-RESERVED-1-BIT Undefined * SD-CONTROL-REDRAW-BIT A Redraw is needed at the next screen update * SD-CONTROL-RESERVED-2-BIT Undefined * SD-CONTROL-DISABLE-BIT Screen Demon is disabled - all functions off *** End of SDCONTROL.WS *** .D"}i't"}iF?RETURN_FXTD_IR_3.00.03.PAT ;--------------------------------------------------------------------- ; ?RETURN_FXTD_IR_3.00.03.PAT 3-MAR-92 ; ;This patch causes Screen Demon to disable fixed point traps ; when processing a ?RETURN system call. If enabled by the ; host program, this would occasionally cause a fatal error. ; Applies ONLY to the file SD_INTERFACE_IR.OB in Screen Demon rev 3.00.03 %USERFILE 4040 163631 123571 4041 163631 145170 14615 1040 1206 ;End of patch .D"3|'t"3|i+PLAY_RESET_3.00.03.PAT i;--------------------------------------------------------------------- ; PLAY_RESET_3.00.03.PAT 20-DEC-91 ; ;This patch causes SD_PLAY to reset the terminal to normal state on exit, ; including features such as hardware windows, character sets, etc. ; Some of these items were being left in the state last shown during ; playback. ; ; Applies ONLY to the file SD_PLAY.OB in Screen Demon rev 3.00.03 ; ; Note: MAKE_SD_PLAY.CLI must be run to build a new SD_PLAY.PR ; after applying this patch %USERFILE 3401 11035 11036 3402 7425 43101 3403 10000 6000 3404 13400 0 ;End of patch .D"t't"uHY8INPSTR_ZERO_BUFPTR_3.00.03.PAT H;--------------------------------------------------------------------- ; INPSTR_ZERO_BUFPTR_3.00.03.PAT 12-MAY-92 ; ;In the packet for the SD_INPUT_STRING call, a zero value for the ; input buffer byte ptr implies that the buffer is located ; immediately following the end of the packet. When Screen Demon ; calculated this location, it used a packet size that was too ; small, resulting in the input buffer beginning WITHIN the packet, ; at the "No Echo flag" slot. This patch corrects the improper size ; value. This error affects only those user programs that call ; SD_INPUT_STRING without providing an explicit input buffer pointer. ; No programs included with Screen Demon use this call. ; ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 365177 11 12 ;End of patch .D$x|'t$x| DMAKE_SD_PLAY.CLI [!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. 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]& & [!edirectory [!pathname %0\%.cli]] [!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 & & %1-%& & %0/config=%& & [!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]& & sd_console sd_x_read_char& & 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 inner.lb 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] [!end] [!end] [!end][!end] pop .D!Á't!Á(/LOGOFF_AVERT_3.00.03.PAT (;--------------------------------------------------------------------- ; LOGOFF_AVERT_3.00.03.PAT 28-AUG-91 ; ;This patch corrects a problem with the Automatic Logoff feature causing ; the host program's timeout value for the input to be set to an unknown ; value when Logoff was suppressed because of either the special program ; option NO_LOGOFF or the No Logoff time range. This could cause earlier ; revisions of the ICOBOL interpreter to panic. ; ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 67530 130170 130670 67554 121570 124270 67671 121711 161451 67672 0 2 67673 0 121731 67674 121731 0 67675 0 1 67676 3 121711 67677 161451 0 67700 2 0 67703 1 3 70756 467 471 70760 60 11 70761 472 474 70763 11 60 ;End of patch .D%OG't%OGICX.PATCH_LIST assign_con_num_3.00.03.pat,& inpfld_177_curadr_3.00.03.pat,& inpfld_d400_3.00.03.pat,& icx_hot_env_3.00.03.pat,& mon_8bit_3.00.03.pat,& true_charsets_3.00.03.pat,& binary_read_8bit_3.00.03.pat,& d470_def_char_3.00.03.pat,& no_delim_del_3.00.03.pat,& read_?ifop_3.00.03.pat,& graphic_cursor_3.00.03.pat,& ?esfc_rtn_bits_3.00.03.pat,& input_bad_curadr_3.00.03.pat,& urgent_mail_notyah_3.00.03.pat,& conlog_sfalt_3.00.03.pat,& ?proc_conlog_3.00.03.pat,& get_image_args_3.00.03.pat,& no_?esrd_no_?esbb_3.00.03.pat,& short_mail_3.00.03.pat,& inbuf_len_3.00.03.pat,& ?idgoto_tsched_3.00.03.pat,& urg_mail_fun_keys_3.00.03.pat,& beep_timing_3.00.03.pat,& non_?esse_3.00.03.pat,& d400_input_shift_3.00.03.pat,& d460_graphics_3.00.03.pat,& hot_key_term_3.00.03.pat,& auto_logoff_times_3.00.03.pat,& flush_interference_3.00.03.pat,& ?kwait_error_hang_3.00.03.pat,& mail_print_priswi_3.00.03.pat,& read_screen_size_3.00.03.pat,& spec_prog_no_turbo_3.00.03.pat,& final_attrb_reset_3.00.03.pat,& bad_chan_io_3.00.03.pat,& obtain_input_3.00.03.pat,& binary_read_?idgoto_3.00.03.pat,& urgent_mail_deliv_3.00.03.pat,& output_ofc_3.00.03.pat,& sd_input_string_3.00.03.pat,& sd_message_only_jsr_3.00.03.pat,& sm_notyah_3.00.03.pat& .nlnlSD_POSSESS_ICX_1.52.PATsd_possess_icx_1.51.pat.D!b't!bQ?TERM_IR_3.00.03.PAT ;--------------------------------------------------------------------- ; ?TERM_IR_3.00.03.PAT 30-AUG-91 modified 18-SEP-91 ; ;This patch corrects an error in Screen Demon's ?TERM system call ; interceptor resulting in an infinite loop if a program ; issued ?TERM to terminate itself. ; ; Applies ONLY to the file SD_INTERFACE_IR.OB in Screen Demon rev 3.00.03 %USERFILE 4063 162571 116571 4067 124271 135711 ^+1 101670 0 ^+1 135711 0 ^+1 0 124271 ^+1 0 101370 4076 114211 160211 4106 102571 165571 ^+1 123111 115571 ^+1 102671 102571 ^+1 147051 123111 ^+1 4 102671 ^+1 167111 153051 ^+1 125711 4 ^+1 0 173111 ^+1 0 176571 4124 171270 101033 4143 177773 177772 4147 110211 160211 4270 143031 107051 ^+1 100006 5 ^+1 304 123311 ^+1 101033 30000 ^+1 101111 0 ^+1 105571 0 ^+1 151111 304 4554 570 566 4560 1257 677 ^+1 61 0 ;End of patch .D!͉'t!͉!/zOUTPUT_TIMEOUT_3.00.03.PAT !;--------------------------------------------------------------------- ; OUTPUT_TIMEOUT_3.00.03.PAT 9-SEP-91 ; ;This patch suppresses the automatic Redraw attempted following ; a ?WRITE to the console that failed because of a timeout ; error. This redraw attempt won't help if the terminal is ; still unavailable, and would cause a resource deadlock if ; the attempted output was due to a pre-input flush. ; ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 115707 100271 101033 ;End of patch .D"#FR't"#FRT.oWP_CLI_3.00.03.PAT T;--------------------------------------------------------------------- ; WP_CLI_3.00.03.PAT 24-SEP-91 ; ;This patch corrects an error in the CLI interface routine in the ; WordPerfect shell integration module. When not running under ; WordPerfect Library or Office, the initial CLI command string ; was built incorrectly so that it did not include the pathname ; to CLI specified in the configuration file. ; ; Applies ONLY to the file SD_WP_SHELL.OB in Screen Demon rev 3.00.03 %USERFILE 1435 147371 157151 ^+1 0 137051 ^+1 0 4 1773 1277 677 ^+1 12 0 ;End of patch .D!j't!jT' BAD_CHAN_3.00.03.PAT T;--------------------------------------------------------------------- ; BAD_CHAN_3.00.03.PAT 24-OCT-91 ; ;This patch allows Screen Demon to protect itself against invalid ; channel numbers passed as system call arguments. Bad channel ; numbers, such as -1, caused a hardware trap when the host program ; used them with system calls such as ?STOM. ; ; This patch is definitely necessary when using Screen Demon with ; CyberScience CQCS programs. ; ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 36412 161271 101211 36413 101170 100570 36416 115571 147011 36417 100211 77472 36420 123651 163211 36421 161571 377 36422 147011 161611 36423 76253 175170 41151 161611 101170 41160 115571 147011 41161 100211 75571 41162 123651 163251 41163 161571 377 41164 147011 100670 41165 74104 101170 41174 115571 147011 41175 100211 75276 41176 123651 101211 41177 161571 161611 41200 147011 175270 41201 74057 171270 41246 161611 110170 41305 115571 147011 41306 100211 75444 41307 123651 163251 41310 161571 377 41311 147011 101270 41312 73757 101670 41326 115571 147011 41327 100211 75144 41330 123651 101211 41331 161571 161611 41332 147011 175170 41333 73725 161570 41411 161611 110070 41447 115571 147011 41450 100211 75302 41451 123651 163251 41452 161571 377 41453 147011 101270 41454 73615 101670 41470 115571 147011 41471 100211 75002 41472 123651 101211 41473 161571 161611 41474 147011 175170 41475 73563 161670 41521 161611 104170 41540 115571 147011 41541 100211 75211 41542 123651 163251 41543 161571 377 41544 147011 101270 41545 73524 101570 41560 115571 147011 41561 100211 74712 41562 123651 101211 41563 161571 161611 41564 147011 175270 41565 73473 165670 41611 161611 110670 42176 115571 147011 42177 100211 75074 42200 123651 163251 42201 161571 377 42202 147011 101270 42203 73407 101570 42216 115571 147011 42217 100211 74575 42220 123651 101211 42221 161571 161611 42222 147011 175270 42223 73356 161170 ;End of patch .D"*r't"*r /BINARY_READ_8BIT_3.00.03.PAT ;--------------------------------------------------------------------- ; BINARY_READ_8BIT_3.00.03.PAT 8-DEC-91 ; ;This patch modifies Screen Demon's system call interceptor for binary ; ?READ's so that it uses the SD_XGETCHAR (extended character GETCHAR) ; to do the input. This allows 8-bit characters to be input from ; the terminal without having the high bit stripped. ; ; In order for this patch to have any effect, the SD_X_READ_CHAR.OB ; module must have been linked with the program being patched. ; ; Applies to programs linked with Screen Demon rev 3.00.03 ;Patch for non-inner ring version SD_SYSCALL_INTERCEPTOR+3017 [WMOV 1,0] [WMOV 2,0] (SD_XGETCHAR)&(SD_SYSCALL_GATE=0) SD_SYSCALL_INTERCEPTOR+3037 [LJSR SD_GETCHAR,1] [LJSR SD_XGETCHAR,1] (SD_XGETCHAR)&(SD_SYSCALL_GATE=0) ^+1 [] [] (SD_XGETCHAR)&(SD_SYSCALL_GATE=0) ^+1 [] [] (SD_XGETCHAR)&(SD_SYSCALL_GATE=0) ^+1 [WLDB 0,0] [WSLT 0,0] (SD_XGETCHAR)&(SD_SYSCALL_GATE=0) ^+1 [WSEQI 200,0] [WBR .+16] (SD_XGETCHAR)&(SD_SYSCALL_GATE=0) ^+1 [] [WSLEI -400,0] (SD_XGETCHAR)&(SD_SYSCALL_GATE=0) ^+1 [WBR .+4] [] (SD_XGETCHAR)&(SD_SYSCALL_GATE=0) ^+1 [NLDAI 76,0] [WBR .+4] (SD_XGETCHAR)&(SD_SYSCALL_GATE=0) ^+1 [] [NLDAI 76,0] (SD_XGETCHAR)&(SD_SYSCALL_GATE=0) ^+1 [WBR .+17] [] (SD_XGETCHAR)&(SD_SYSCALL_GATE=0) ^+1 [WNADI -200,0] [WBR .+16] (SD_XGETCHAR)&(SD_SYSCALL_GATE=0) ^+1 [] [WNEG 0,0] (SD_XGETCHAR)&(SD_SYSCALL_GATE=0) ^+1 [WSGT 0,0] [NLDAI 36,1] (SD_XGETCHAR)&(SD_SYSCALL_GATE=0) ^+1 [WBR .+10] [] (SD_XGETCHAR)&(SD_SYSCALL_GATE=0) ;;;^+1 [LNSTA 0,PENDING_FUNKEY_CHAR,1] [... (SD_XGETCHAR)&(SD_SYSCALL_GATE=0) ;;;^+1 [] [... (SD_XGETCHAR)&(SD_SYSCALL_GATE=0) ;;;^+1 [] [... (SD_XGETCHAR)&(SD_SYSCALL_GATE=0) ^+4 [LDATS 3] [WMOV 1,0] (SD_XGETCHAR)&(SD_SYSCALL_GATE=0) ^+1 [NLDAI 36,1] [LDATS 3] (SD_XGETCHAR)&(SD_SYSCALL_GATE=0) ^+1 [] [WSTB 3,0] (SD_XGETCHAR)&(SD_SYSCALL_GATE=0) ^+1 [WSTB 3,1] [NOP] (SD_XGETCHAR)&(SD_SYSCALL_GATE=0) ;Patch for inner ring version ;this line isn't accepted by PATCH (because of conditionals above?), so is done with @. instead ;;;SD_SYSCALL_INTERCEPTOR+3045 [WMOV 1,0] [WMOV 2,0] SD_XGETCHAR&SD_SYSCALL_GATE SD_SYSCALL_INTERCEPTOR+3045 @. [WMOV 2,0] SD_XGETCHAR&SD_SYSCALL_GATE SD_SYSCALL_INTERCEPTOR+3065 [LJSR SD_GETCHAR,1] [LJSR SD_XGETCHAR,1] SD_XGETCHAR&SD_SYSCALL_GATE ^+1 [] [] SD_XGETCHAR&SD_SYSCALL_GATE ^+1 [] [] SD_XGETCHAR&SD_SYSCALL_GATE ^+1 [WLDB 0,0] [WSLT 0,0] SD_XGETCHAR&SD_SYSCALL_GATE ^+1 [WSEQI 200,0] [WBR .+16] SD_XGETCHAR&SD_SYSCALL_GATE ^+1 [] [WSLEI -400,0] SD_XGETCHAR&SD_SYSCALL_GATE ^+1 [WBR .+4] [] SD_XGETCHAR&SD_SYSCALL_GATE ^+1 [NLDAI 76,0] [WBR .+4] SD_XGETCHAR&SD_SYSCALL_GATE ^+1 [] [NLDAI 76,0] SD_XGETCHAR&SD_SYSCALL_GATE ^+1 [WBR .+17] [] SD_XGETCHAR&SD_SYSCALL_GATE ^+1 [WNADI -200,0] [WBR .+16] SD_XGETCHAR&SD_SYSCALL_GATE ^+1 [] [WNEG 0,0] SD_XGETCHAR&SD_SYSCALL_GATE ^+1 [WSGT 0,0] [NLDAI 36,1] SD_XGETCHAR&SD_SYSCALL_GATE ^+1 [WBR .+10] [] SD_XGETCHAR&SD_SYSCALL_GATE ;;;^+1 [LNSTA 0,PENDING_FUNKEY_CHAR,1] [... SD_XGETCHAR&SD_SYSCALL_GATE ;;;^+1 [] [... SD_XGETCHAR&SD_SYSCALL_GATE ;;;^+1 [] [... SD_XGETCHAR&SD_SYSCALL_GATE ^+4 [LDATS 3] [WMOV 1,0] SD_XGETCHAR&SD_SYSCALL_GATE ^+1 [NLDAI 36,1] [LDATS 3] SD_XGETCHAR&SD_SYSCALL_GATE ^+1 [] [WSTB 3,0] SD_XGETCHAR&SD_SYSCALL_GATE ^+1 [WSTB 3,1] [NOP] SD_XGETCHAR&SD_SYSCALL_GATE ;End of patch .D"Dd 't"DdREAD_?IFOP_3.00.03.PAT ;--------------------------------------------------------------------- ; READ_?IFOP_3.00.03.PAT 10-DEC-91 ; revised 6-JAN-92 ; ;This patch makes Screen Demon aware of the fact that the ?ISTI flag ; bit ?IFOP disables echoing for console ?READ's. This bit was ; being ignored by Screen Demon. ; ; Applies to programs linked with Screen Demon rev 3.00.03 SD_INPUT_FIELD+503 [XNLDA 0,1,2] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [NSANA 100000,0] [] ^+1 [] [SKIP] #SD_PATCH 0 [XNLDA 0,1,2] ^+1 0 [] ^+1 0 [XNLDA 1,33,3] ^+1 0 [] ^+1 0 [NSANA 4000,0] ^+1 0 [] ^+1 0 [WBR .+4] ^+1 0 [WADC 1,1] ^+1 0 [XNSTA 1,33,3] ^+1 0 [] ^+1 0 [NSANA 100000,0] ^+1 0 [] ^+1 0 [ISZTS] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+16\ ^+1 [] [] SD_INPUT_FIELD+614 [XNLDA 0,1,2] [XNLDA 1,1,2] ^+1 [] [] ^+1 [NSANA 100000,0] [NSANA 100000,1] ^+1 [] [] SD_INPUT_FIELD+632 [XNLDA 0,0,3] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [WMOV 0,1] [] #SD_PATCH 0 [XNLDA 1,0,3] ^+1 0 [] ^+1 0 [WANDI 400,0] ^+1 0 [] ^+1 0 [] ^+1 0 [WIOR 1,0] ^+1 0 [WMOV 0,1] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+10\ ^+1 [] [] ;End of patch .D"*~'t"*~0READ_?ETSP_3.00.03.PAT ;--------------------------------------------------------------------- ; READ_?ETSP_3.00.03.PAT 11-DEC-91 ; ;This patch modifies the method used by Screen Demon to inspect the ; screen management subpacket address optional in a ?READ packet. ; Screen Demon did not use the subpacket unless the ?ETSP address ; slot in the ?READ packet had the high bit set. The operating ; system actually returns information to the ?ETSP address specified ; in the ?READ packet, even if it does not have the high bit set and ; is not the same address as originally specified. This patch causes ; Screen Demon to recognize the ?ETSP subpacket even if the high bit ; is not set. ; ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 354453 100000 177777 354454 0 177777 354614 100000 177777 354615 0 177777 354725 100000 177777 354726 0 177777 364415 100000 177777 364416 0 177777 ;End of patch .D"3y^'t"3y_#;SCROLL_UP_3.00.03.PAT ;--------------------------------------------------------------------- ; SCROLL_UP_3.00.03.PAT 20-DEC-91 ; ;This patch corrects an error in Screen Demon's processing of a "<36>H" ; (Scroll Up) terminal command. In some cases, this command was not ; actually sent to the screen, resulting in a complete redisplay of ; the scrolled area as if the terminal did not support Scroll Up. ; ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 102005 150631 151211 ;End of patch .D"3|'t"3|,PLAY.OB.PATCH_LIST play_reset_3.00.03.pat& .D"6^d't"6^dpTAB_ECHO_3.00.03.PAT ;--------------------------------------------------------------------- ; TAB_ECHO_3.00.03.PAT 23-DEC-91 ; ;This patch corrects a problem with Screen Demon's echoing of input data ; into the active window image buffer. Any TAB characters entered ; would be discarded, instead of being expanded into an appropriate ; number of spaces. This affected SED and CLI. ; ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 360631 135711 125711 360634 174671 124671 360637 170651 130651 360640 155571 145571 360641 170531 130531 360667 157151 165451 360670 165451 73 360671 73 124271 360672 124271 120370 360673 120270 165451 360674 165451 43 360675 43 125151 ;End of patch .D"Oo|'t"Oo}SD_MEM_SL_3.00.03.PAT ;--------------------------------------------------------------------- ; SD_MEM_SL_3.00.03.PAT 17-JAN-92 ; ;This patch corrects a problem with Screen Demon's memory allocation ; routines when running from a shared library. If the host program ; contained LANG_RT, it was possible for a memory conflict to occur, ; resulting in aberrant behavior. ; ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 47764 100271 101033 ;End of patch .D"\'t"\GGET_IMAGE_3.00.03.PAT ;--------------------------------------------------------------------- ; GET_IMAGE_3.00.03.PAT 24-JAN-92 ; revised 30-JAN-92 ; ;This patch corrects a problem with the SD_GET_IMAGE call, which ; could sometimes result in a hardware protection error if ; only one argument was supplied. ; ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 132443 145451 141451 132445 165471 161471 132447 145451 141451 132451 165471 161471 132453 145451 141451 132455 165471 161471 132560 145451 141451 132562 165471 161471 132564 145451 141451 132566 165471 161471 132570 145451 141451 132572 165471 161471 ;End of patch .D!N't!N6MAKE_SD_ICX.CLI 6[!equal,,comment] *** MAKE_SD_ICX *** This macro creates a new ICOBOL interpreter linked for use with the SCREEN DEMON Screen Management Package. Usage: MAKE_SD_ICX{/switches} {additional modules} The /CONFIG=configname switch indicates that the specified alternate SCREEN DEMON configuration file should be used instead of SD_ICX_CONFIG.OB The /NOTURBO global switch can be specified to force Turbo Display mode to be completely off. Use this switch only when absolutely necessary - it can disrupt SCREEN DEMON's windowing environment. Try /PARTURBO instead. The /PARTURBO global switch can be specified to have the interpreter 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. The /LANGRT global switch should be specified if the LANG_RT library should be linked into the interpreter. The /CBCALL global switch can be specified if the DG-provided CBCALL library should also be linked with the new interpreter. THIS IS NOT REQUIRED!!! SCREEN DEMON provides compatible routines that perform most of the same functions, but do not require LANG_RT.LB to be linked in also. The /COB32 global switch should be specified if 32-bit COBOL subprograms are also being linked with the new interpreter. The /PRISWI global switch causes the Printer Switcher routine to be linked with the new ICOBOL interpreter. The SD_PRISWI_CONFIG file must be available at runtime. The /CEO global switch includes an interface to CEO Mail and to its Interrupt Menu. This interface uses routines from CEO Toolkit, which must be available on your system. The /WP global switch includes WordPerfect Library/Office Shell interface routines. This interface requires the SHELLCOM.32.OB file supplied with WordPerfect Library/Office. The /MULTISAM global switch includes Threshold's MULTISAM routine. MULTISAM, which must be purchased separately, allows an ICOBOL program to simultaneously access rev 1.4 and rev 1.5 ISAM files. If /MULTISAM is used, the following additional switches may be included: /OPEN=rev# specifies the version of MINISAM to try first for OPEN's, where rev# is either 14 or 15 (15 format is the same as rev 1.6). If the OPEN fails, then the alternate version of MINISAM is called. The default value is the revision of the ICX being created. /CREATE=rev# specifies the version of MINISAM to use for creating any new files, where rev# is either 14 or 15. The default value is the revision of the ICX being created. /13 must be included if the old MINISAM is actually revision 1.3 instead of 1.4 The /WLI global switch includes Threshold's WHO_LOCKED_IT? routine, which must be purchased separately. When a user encounters a locked record, WHO_LOCKED_IT? identifies the terminal and user that has the record locked. If the locked record pop-up window should automatically be displayed, then use /WLI=AUTO. [!end] [!equal,,%0/o=%] %0\%%0\o%/o=SD_ICX %1-% [!else] push prompt pop comment Adjust this searchlist command to fit your file system searchlist [!searchlist]& :UTIL:ICOBOL& [!nequal,,%0/COB32%]& :UTIL:COBOL& [!end]& [!nequal,,%0/LANGRT/CBCALL/COB32/CEO%]& :UTIL:LANG_RT& [!end]& [!edirectory [!pathname %0\%.cli]] comment Determine the revision of ICOBOL being used, if possible. comment Use default revision if revision cannot be determined. delete/2=ignore =?[!pid].tmp [!equal,,[!path icx.pr]] string 1.40 [!else] revision/l==?[!pid].tmp icx.pr string [=?[!pid].tmp] string [!ename [!ename [!string]]] string [!uadd,0,[!ename [!string]]][!eextension [!string]] delete/2=ignore =?[!pid].tmp [!end] write/l==?[!pid].tmp [!string][!ascii 46] [!nequal,,%0/MULTISAM%] [!nequal,,[!equal [!string],1.40]t[!end][!equal [!string],1.41]t[!end]] var9 14 [!else] var9 15 [!end] [!end] write string/k [!equal,,%0/config=%] [!equal,,[!path SD_ICX_CONFIG.OB]] write ,,,,Configuration file SD_ICX_CONFIG.OB not found! string ERROR [!else] write ,,,,Using configuration file [!path SD_ICX_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 [!equal,,[!string]] ((write x/s),x/s) link& /rev=[=?[!pid].tmp]& [!nequal,,%0/LANGRT/COB32/CBCALL/CEO%]/Mtop=1[!else]/Ktop=205[!end]& /stack=10000/tasks=6/pid_size=HYBRID& [!nequal,,%0/CEO%]/ULAST=STACK[!end]& %0\NOTURBO\PARTURBO\COB32\CBCALL\LANGRT\CEO\WP\CONFIG\PRISWI\MULTISAM\OPEN\CREATE\13\WLI% & & .RESERVE/VAL=128 MAIN/START & & [!nequal,,%0/MULTISAM%]& MULTISAM & MULTI_ICX_REV/VALUE=[!var9] & MULTI_OPEN_REV/VALUE=[!nequal,,%0/OPEN=%]%0/OPEN=%[!else][!var9][!end] & MULTI_CREATE_REV/VALUE=[!nequal,,%0/CREATE=%]%0/CREATE=%[!else][!var9][!end] & [!end]& & ICX.LB& & %1-% NAMTB& & [!nequal,,%0/CONFIG=%]%0/CONFIG=%[!else]SD_ICX_CONFIG[!end]& & [!nequal,,%0/WLI%]& [!equal,AUTO,%0/WLI=%]& AUTO_WHO_LOCKED_IT & [!end]& WHO_LOCKED_IT?.LB & [!end]& & [!nequal,,%0/CEO%]& SD_CEO_INTERFACE :UTIL:CEO_DIR:IT_LIB.LB/MULTIPLE& [!end]& & [!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/CBCALL%]& CBCALL.LB/F& [!end]& & SD_ICX_INTF& & [!nequal,,%0/COB32%]& SD_COBOL32_INTF& [!end]& & [!nequal,,%0/PRISWI%]& SD_PRISWI& [!end]& & SCREEN_DEMON.LB& & [!nequal,,%0/COB32%]& COBOL.LB ICALL32.OB& [!end]& & [!nequal,,%0/LANGRT/CBCALL/COB32/CEO%]& MULTITASKING NO_QUEUED_TASK_MGR LANG_RT.LB& [!else]& SD_NO_LANG_RT& [!end] [!end] [!equal,(),([!string])] delete/2=ignore [!path %0/o=%.PR].PH x patch/t=[!path %0/o=%.PR]/p=SD_POSSESS_ICX_[=?[!pid].tmp].PAT/yes [!nequal,,%0/PARTURBO%] x patch/t=[!path %0/o=%.PR]/p=PAR_TURBO.PAT/yes [!else][!nequal,,%0/NOTURBO%] x patch/t=[!path %0/o=%.PR]/p=NO_TURBO.PAT/yes [!end][!end] comment Install all applicable fix patches [!nequal,,[!path ICX.PATCH_LIST]] x patch/t=[!path %0/o=%.PR]/p=([ICX.PATCH_LIST])/yes [!end] comment Install optional Screen Demon patch file [!nequal,,[!path SCREEN_DEMON.PAT]] x patch/t=[!path %0/o=%.PR]/p=SCREEN_DEMON.PAT/yes [!end] [!nequal,,%0/13%] x patch/t=[!path %0/o=%.PR]/p=MULTISAM_1.3.PAT/yes [!end] [!nequal,,%0/WLI%] patch_wli_icx %0/o=% [!end] [!end] delete/2=ignore =?[!pid].tmp pop [!end] .D!NJ't!NJ19CTRL_D_3.00.03.PAT ;--------------------------------------------------------------------- ; CTRL_D_3.00.03.PAT 3-SEP-91 ; ;This patch corrects an error that resulted in a hardware trap ; when ^D was pressed at an input where it was to be treated ; as an End-Of-File indication, such as in CLI or SED. ; ; Applies ONLY to the SCREEN_DEMON.LB file in Screen Demon rev 3.00.03 %USERFILE 360073 135711 125711 360076 177051 167051 ;End of patch .D!~c't!~c=!SD_POSSESS_ICX_1.53.PAT =;The patches in this file activate the SCREEN DEMON routines. ; ;This file applies only to revision 1.53 of the Interactive COBOL ; interpreter running under AOS/VS, using revision 3.00 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 [] [] ;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+153] [] 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. ; Conditionals check for presence of DG patch AV_IC_153_ICX.03 ASPRG+62 [XJSR WRPGD,1] [LJMP SD_ICX_ASPRG,1] #(ASPRG+60)=62400200 ^+1 [] [] #(ASPRG+60)=62400200 ^+1 [WBR ASPRG+136] [] #(ASPRG+60)=62400200 ASPRG+75 [XJSR WRPGD,1] [LJMP SD_ICX_ASPRG,1] #(ASPRG+73)=62400200 ^+1 [] [] #(ASPRG+73)=62400200 ^+1 [WBR ASPRG+136] [] #(ASPRG+73)=62400200 ICX_ASPRG_SUCCESSFUL ASPRG+65\ ASPRG+100\ #(ASPRG+73)=62400200 ^+1 [] [] #(ASPRG+73)=62400200 LDPRG+7 [XJSR RDPGD,1] [LJMP SD_ICX_LDPRG,1] ^+1 [] [] ^+1 [WBR LDPRG+35] [] ;Catch ICX Abort so that SCREEN DEMON can reset the window environment ; if control will return to LOGON. ; Note that the 342 in next line is actually ICX's STATUS address, ; which PATCH won't accept in the instruction format necessary. CSTOP+2 [LDA 0,342,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 [] [] ;Catch entry into the ICX Debugger so that debugger window can be activated DB0 [LDASB 3] [LPSHJ SD_ICX_ENTER_DEBUGGER,1] ^+1 [STASP 3] [] ^+1 [STAFP 3] [] SBUGG [LDASB 3] [LPSHJ SD_ICX_ENTER_DEBUGGER,1] ^+1 [STASP 3] [] ^+1 [STAFP 3] [] EBUGG [LDASB 3] [LPSHJ SD_ICX_ENTER_DEBUGGER,1] ^+1 [STASP 3] [] ^+1 [STAFP 3] [] ;Catch exit from the ICX Debugger so that debugger window can be deactivated DB0+132 [LDASB 3] [LPSHJ SD_ICX_LEAVE_DEBUGGER,1] ^+1 [STASP 3] [] ^+1 [STAFP 3] [] ;Intercept ICX's attempt to input a debugger command so that this can be done ; in a proper screenedit fashion. SCAN0+354 [XJSR RDFD,1] [LJSR SD_ICX_READ_DEBUGGER_COMMAND,1] ^+1 [] [] ^+1 [WBR SCAN0+333] [] ICX_DEBUG_RESTART_ADDR 0 SCAN0+303\ ^+1 0 [] ;********** Optional Patches ********** ;This optional patch causes Screen Demon to catch ICX-generated error ; messages displayed on line 24 so that the original contents of ; the line can be restored after showing the error message. INVAL+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+1341 [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+1360,1] ^+1 0 [] ^+1 0 [] SD_PATCH #SD_PATCH\ #SD_PATCH+7\ ^+1 [] [] ;The following patch is not absolutely necessary, but will improve performance ; if the advanced features of SCREEN DEMON are used. It eliminates the ; unnecessary ?LEFE system call that is always performed on returning from ; an assembler CALL routine. This does mean that any assembler routine ; that issues a ?LEFD must do its own ?LEFE before returning to ICX. CALAS+116 [XJSR @16000000006,0] [WBR .+4] ^+1 [] [NOP] ^+1 265 [NOP] ^+1 [WBR CALAS+134] [NOP] ;***** The remaining patches fix bugs in the ICX interpreter ***** ; Note that these patches are not the same ones supplied by Data General. ; The DG patches must also be applied to the new ICX interpreter. ;Fix effective address problems 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+100 [BTZ 2,1] [WBTZ 2,1] CHNOP+104 [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+117 [NLDAI 0,0] [NLDAI 11610,0] ^+1 [] [] ^+1 [NLDAI 11610,1] [WSUB 1,1] ^+1 [] [WSUB 2,2] ;End of patches .D!G(.j!G16ECHO_DELIM_3.00.03.PAT ;--------------------------------------------------------------------- ; ECHO_DELIM_3.00.03.PAT 18-SEP-91 ; ;This patch corrects Screen Demon's emulation of the "echo delimiters" ; option of the ?READ system call. All unprintable characters ; except
were being echoed as , instead of ; the actual character. ; ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 364553 163311 163351 ^+1 14 15 ;End of patch .D!|'t!|1SL.PATCH_LIST hot_acl_sl_3.00.03.pat& .D!_['t!_[)ASPY_VIEW_SYNC_3.00.03.PAT ;--------------------------------------------------------------------- ; SPY_VIEW_SYNC_3.00.03.PAT 30-SEP-91 ; ;This patch prevents SPY's View display task from continuing to run ; for a short period after the user exits from View mode. This ; could cause inconsistencies in the VM record cache, resulting ; in a trap. ; ; Applies ONLY to the program SD_SPY.PR in Screen Demon rev 3.00.03 SD_SPY+12440 [LNLDA 0,SD_UNSHARED_DATA_PART+617,1] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [] [] ^+1 [WSNE 0,0] [NOP] SD_SPY+12553 [LJSR SD.SYSCALL,1] {LPSHJ #SD_PATCH+24,1} ^+1 [] [] ^+1 [] [] ^+1 263 [NOP] #SD_PATCH 0 [WPSH 0,3] ^+1 0 [LLEF 0,FUN_MENU_FLAGS+1451,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WSUB 1,1] ^+1 0 [WSUB 2,2] ^+1 0 [LJSR SD.SYSCALL,1] ^+1 0 [] ^+1 0 [] ^+1 0 525 ^+1 0 [NOP] ^+1 0 [WADC 1,1] ^+1 0 [WSUB 2,2] ^+1 0 [LJSR SD.SYSCALL,1] ^+1 0 [] ^+1 0 [] ^+1 0 523 ^+1 0 [NOP] ^+1 0 [WPOP 3,0] ^+1 0 [WPOPJ] #SD_PATCH+24 0 [LJSR SD.SYSCALL,1] ^+1 0 [] ^+1 0 [] ^+1 0 263 ^+1 0 [NOP] ^+1 0 [XPSHJ (.-31),1] ^+1 0 [] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+34\ ^+1 [] [] ;End of patch .@!'t!r&SD_CEO_INTERFACE_RTD.OB _SD_CEO_INTERFACE_RTD.OB SD_CEO_INTERFACE_RTD.OBROOT?IG_TABLE_STARTROOT?IG_TABLE_PART  IT_UNDER_CEO  IT_START IT_CEO_TERMINAL  IT_INTERRUPT  IT_INVOKE_CLI  IT_TERMINATE  IT_CEO_MAIL N.ROOT?IG_TABLES   SD_CEO_INTERFACE.SL                        !  #     % .D$x}'t$x}B SD_CCL.CLI [!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 C 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 /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 /SDRING switch. 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 searchlist [!searchlist] [!edirectory [!pathname %0\%.cli]] write string/k [!equal,,%0/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\parturbo\noturbo\config\priswi\ceo\wp\sdring% %-% & & [!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& & [!else]& & [!nequal,,%0/config=%]& %0/config=%& [!else]& sd_sl_config& [!end]& & [!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]& & sd_console sd_x_read_char& screen_demon.lb& [!end]& [!end] comment If the link was successful, install applicable patches comment unless the /SDRING switch was used. [!equal,(),([!string]%0/sdring=%)] comment Install special anti-Turbo patches to the new program [!nequal,,%0/PARTURBO%] x patch/t=%1%.PR/p=PAR_TURBO.PAT/yes [!else][!nequal,,%0/NOTURBO%] x patch/t=%1%.PR/p=NO_TURBO.PAT/yes [!end][!end] comment Install user-selected patches to the new program [!nequal,,[!path SCREEN_DEMON.PAT]] x patch/t=%1%.pr/p=SCREEN_DEMON.PAT/yes [!end] comment Install fix patches if available [!nequal,,[!path NONICX.PATCH_LIST]] x patch/t=%1%.pr/p=([NONICX.PATCH_LIST])/yes [!end] [!end] pop .D!cO't!cO/tNO_ECHO_BIT_3.00.03.PAT ;--------------------------------------------------------------------- ; NO_ECHO_BIT_3.00.03.PAT 24-OCT-91 ; ;This patch corrects a problem in the field input routine where an ; input request without a ?READ packet ignored the "No Echo" ; bit passed in AC2. This prevented the "No Echo" flag in the ; SD_INPUT_STRING and SDInputString packets from working. ; ; Applies ONLY to the SCREEN_DEMON.LB file in Screen Demon rev 3.00.03 %USERFILE 354250 103231 107231 354253 147051 143051 ;End of patch .D"gT-'t"gT.q#uOD_SYSTEMS_3.00.03.OPTPAT q;--------------------------------------------------------------------- ; OD_SYSTEMS_3.00.03.OPTPAT 10-FEB-91 ; ;Software from OD Systems appears to define the symbol I.INIT as zero, ; rather than the address of LANG_RT's startup routine. This ; will cause Screen Demon's memory allocation routine to die ; when it attempts to determine whether or not LANG_RT is linked ; with the program. This patch suppresses the check, and causes ; Screen Demon to assume LANG_RT is present. ; Applies to programs from OD Systems linked with Screen Demon 3.00.03 SD_MEM_ALLOCATE+146 [WSEQ 0,0] [NOP] ;End of patch .D"h't"h0HOT_PM_OFF_3.00.03.PAT ;--------------------------------------------------------------------- ; HOT_PM_OFF_3.00.03.PAT 4-NOV-91 ; ;This patch forces Screen Demon to turn off page mode on the terminal ; when a PR or CLI type hot key call occurs, or when a call to the ; SD_PROC_PR routine is made. Without this patch, this will not ; happen unless the hot key definition includes the REDRAW option. ; ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 140516 104170 101033 ;End of patch .@"!-'t"!C!dSD_B32_USERSUBS.SR C;Interface routine for B32 that converts B32 UCALL parameters into ; standard AOS/VS subroutine calling convention format as if ; the call was being made from a COBOL program. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; ;;; Copyright (C) 1988 - 1991, ;;; ;;; 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 ;;; ;;; ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;************************************************************************** ;* UCALL HANDLER ROUTINE * ;************************************************************************** ;Symbols expected by B32 that are defined in this module .ENT USR_ENT ;UCALL entry point .NREL 7 ;Shared code ;Expects to be called via a *CALL instruction with AC0 containing ; the subroutine number of the UCALL routine to be executed, ; and AC2 containing the address of the B32 argument stack. ;Stack frame for this routine: .DUSR UA.ARGCT = 2 ;Number of args supplied with UCALL .DUSR LOOPCT = UA.ARGCT+1 ;Loop counter used to process each arg ; as it is converted to SD format ;Entry point USR_ENT: WSAVR USR_ENT?FRAME_SIZE ;Push stack frame CLM AC0,AC0 ;Is a SCREEN DEMON routine .WORD MIN?UCALL ; to be called? .WORD MAX?UCALL WRTN ;No, ignore for now ;The B32 arguments must be converted into SCREEN DEMON format. This is ; done from the last argument forward, so that the first argument is ; the last one pushed on the stack before calling the SD routine. LLEF AC3,USR_DEF+2 ;Load addr of B32 arg def table ; past the low & high limit words XNLDA AC1,-2,AC3 ;Load smallest UCALL # in table WSUB AC1,AC0 ;Calc UCALL offset from smallest WLSI 1,AC0 ;Multiply routine offset by 2 since ; table entries are dbl words WADD AC0,AC3 ;Calc addr of table slot for this UCALL XWLDA AC1,0,AC3 ; and load arg spec for this UCALL WANDI UA.ARGCT?MASK,AC1 ;Mask off all but # of args from spec LDAFP AC3 ;Restore frame ptr XNSTA AC1,UA.ARGCT,AC3 ; and save arg count for later WSGT AC1,AC1 ;Are there any args for this call? WBR CALL_SD_ROUTINE ;No, so don't need to convert them XNSTA AC1,LOOPCT,AC3 ;Also save arg count as loop counter WLSI 1,AC1 ;Multiply arg count by 2 giving ; # of dbl words on arg stack WADD AC1,AC2 ;Calc addr of last argument WSBI 2,AC2 ; on arg stack for this call LLEF AC3,SD_ARG_DEF ;Load addr of SD arg def table WADD AC0,AC3 ;Calc addr of table slot for this UCALL XWLDA AC0,0,AC3 ; and load SD arg spec for this UCALL CONVERT_ARGS_LOOP: NLDAI SD.ARG?MASK,AC1 ;Load mask that keeps only the lowest ; arg def of SCREEN DEMON arg spec WAND AC0,AC1 ;Get next arg def into AC1 WMOVR AC0 ;Shift SD arg spec WMOVR AC0 ; to discard arg def WMOVR AC0 ; just extracted WMOVR AC0 XWLDA AC3,0,AC2 ;Load addr of cur arg from arg stack WSBI 2,AC2 ; and bump arg addr to prev arg NSANA STRING,AC1 ;Is this arg a string type? WBR NUMERIC_TYPE ;No, go treat it as numeric XWLDA AC3,0,AC3 ;Yes, load byte ptr to start of string WBR PUSH_SD_ARG ;Go push it as arg for SD routine NUMERIC_TYPE: WADI 2,AC3 ;Bump addr to lower dbl word ; of 4-word numeric item NSANA WIDE,AC1 ;Is this a wide numeric type? WINC AC3,AC3 ;No, so bump addr to low word of item WLSI 1,AC3 ;Convert addr of numeric item into ; byte ptr as COBOL would do PUSH_SD_ARG: WPSH AC3,AC3 ;Push byte ptr to arg for SD routine LDAFP AC3 ;Restore frame ptr XNDSZ LOOPCT,AC3 ;Converted all arguments yet? WBR CONVERT_ARGS_LOOP ;No, go process the next one ;Finish setting up the stack by pushing arg count CALL_SD_ROUTINE: XNLDA AC1,UA.ARGCT,AC3 ;Load # of args supplied with UCALL WPSH AC1,AC1 ;Push as arg count for LCALL XWLDA AC0,CALLER_AC0,AC3 ;Retrieve UCALL subroutine # XWLDA AC2,CALLER_AC2,AC3 ; and addr of UCALL argument stack ; in case SD routine wants these values WMOV AC0,AC1 ;Make a copy of UCALL subroutine # LLEF AC3,USR_DSP ;Load addr of dispatch table XWSUB AC1,-4,AC3 ;Calc UCALL subroutine offset by ; subtracting min UCALL # WLSI 1,AC1 ;Multiply by 2 since table entries ; are double words WADD AC1,AC3 ;Calc addr of table slot for this UCALL XWADD AC3,0,AC3 ;Calc addr of SCREEN DEMON routine XCALL 0,AC3,1B0 ;Call desired SCREEN DEMON routine, ; with arg count on top of stack ;All done WRTN ;Return back to B32 .END .@"!K't"!0=SD_B32LINK.CLI WRITE Linking SD_B32.PR... X LINK/SYS=X32/TASKS=7/MTOP=3/PID_SIZE=HYBRID/o=sd_b32 & C32/START sd_b32_usersubs B32_USTATS B32_QUAD & DUMMY_NETBIOS & CCEO_IF B32.LB IT_LIB.LB & %1-% & sd_sl_config screen_demon.lb .D!g't"!<!SSD_B32_DEFINES.SR <;Interface for B32 allowing B32-BASIC programs to call ; SCREEN DEMON routines via UCALLs. .TITLE SD_B32_USERSUBS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; ;;; Copyright (C) 1988 - 1991, ;;; ;;; 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 ;;; ;;; ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Kill MASM's macro escape character .ESC ;Symbols expected by B32 that are defined in this module .ENT USR_DEF ;argument definitions for user routines .ENT USR_DSP ;dispatch table for user routines ;************************************************************************** ;* MACRO AND SYMBOL DEFINITIONS * ;************************************************************************** ;Stack frame size to use for USR_ENT routine ; Note: SD arg conversion routine needs this to be at least 1 .DUSR USR_ENT?FRAME_SIZE = 10 ;Base UCALL number for SCREEN DEMON UCALL's .DUSR MIN?UCALL = 1 ;A MAX?UCALL symbol will also be defined equal to the highest UCALL number ;Give reasonable names to the accumulators .DUSR AC0 = 0 .DUSR AC1 = 1 .DUSR AC2 = 2 .DUSR AC3 = 3 ;Give mnemonic names to the offsets to stack frame locations .DUSR CALLER_AC2 = -4 ;Caller's AC2 .DUSR CALLER_AC1 = -6 ;Caller's AC1 .DUSR CALLER_AC0 = -10 ;Caller's AC0 .DUSR ARGC = -11 ;Argument count .DUSR ARG1 = -14 ;Argument 1 .DUSR ARG2 = -16 ;Argument 2 .DUSR ARG3 = -20 ;Argument 3 ;An argument specifier for a B32 UCALL is a double word, where the lowest ; 4 bits contain the number of arguments expected by the routine, ; with argument types described by two-bit fields extending from ; bit 27 upward (arg 1 type is at bit 27, arg 2 at bit 25, etc.). ;Mask that extracts just the argument count from the specifier: .DUSR UA.ARGCT?MASK = 17 ;Argument types for B32 UCALL's: .DUSR UA.SEX = 0 ;string expression .DUSR UA.NEX = 1 ;numeric expression .DUSR UA.SV = 2 ;string variable .DUSR UA.NV = 3 ;numeric variable ;SCREEN DEMON argument types (4 bits each), as pointed to by byte ptr on stack: .DUSR NARROW = 0 ;single word .DUSR WIDE = 1 ;double word .DUSR STRING = 2 ;string ;Upper bit of 4-bit SD arg type is "returned data" flag .DUSR ?RTN = 10 ;Augmented arg types specifying that data of that type is returned in that arg .DUSR NARROW?RTN = (NARROW)!(?RTN) .DUSR WIDE?RTN = (WIDE)!(?RTN) .DUSR STRING?RTN = (STRING)!(?RTN) ;Mask that extracts just the lowest type from SCREEN DEMON arg specifier .DUSR SD.ARG?MASK = 17 ;B32 types anologous to each of the SCREEN DEMON argument types: .DUSR NARROW.B32 = UA.NEX .DUSR WIDE.B32 = UA.NEX .DUSR STRING.B32 = UA.SEX .DUSR NARROW?RTN.B32 = UA.NV .DUSR WIDE?RTN.B32 = UA.NV .DUSR STRING?RTN.B32 = UA.SV ;All .PART definitions are declared as CODE, even though they are really ; DATA, to avoid disturbing B32's placement of its .PM file ?SPAGE area, ; which is apparently not page .ALIGN'd ;Declare dispatch table .PART SD_B32_USR_DSP_PART ALIGN=1,CODE,LONG,SHARED,NORM,GLOBAL,MESS .DWORD MIN?UCALL ;Dbl word pair in front of table defines .DWORD MAX?UCALL ; beginning and ending table index USR_DSP: ;Declare B32 argument definition table .PART SD_B32_USR_DEF_PART ALIGN=1,CODE,LONG,SHARED,NORM,GLOBAL,MESS USR_DEF: .WORD MIN?UCALL ;Word pair at front of table defines .WORD MAX?UCALL ; beginning and ending table index ;Declare SCREEN DEMON argument conversion table .PART SD_B32_ARG_DEF_PART ALIGN=1,CODE,LONG,SHARED,NORM,GLOBAL,MESS SD_ARG_DEF: ;Declare SCREEN DEMON routine name/UCALL number tables .PART SD_B32_UCALL_NAMES_PART ALIGN=1,CODE,LONG,SHARED,NORM,GLOBAL,MESS SD_UCALL_NAMES: .PART SD_B32_UCALL_NUMS_PART ALIGN=1,CODE,LONG,SHARED,NORM,GLOBAL,MESS SD_UCALL_NUMBERS: ;Format of an entry in the SD_UCALL_NUMBERS table (each field is one word): .DUSR UN.ARGCT = 0 ;Number of arguments for this UCALL .DUSR UN.NAME = 1 ;Offset from SD_UCALL_NAMES in chars ; to name of UCALL routine .DUSR UN.NUM = 2 ;UCALL number for this UCALL .DUSR UN.SIZE = 3 ;Size of an entry in words ;Macro that creates a complete UCALL definition for a given routine. ; ; Usage: ; SD?UCALL RoutineName,Arg1Type,Arg2Type,...,ArgNType ; ; This macro will declare an RoutineName to be an external symbol, ; append an entry for the routine to the UCALL dispatch table, and ; append an argument specification to the argument definition table. .MACRO SD?UCALL ** ** .PUSH .NOCON ** .NOCON 1 ** ** .PUSH .RDXO ** .RDXO 10. ** ** ;Keep track of the number of UCALL's defined ** .IFE .MCALL .DUSR MAX?UCALL = MIN?UCALL ** .ELSE .DUSR MAX?UCALL = MAX?UCALL+1 ** .ENDC ** .RDXO .POP ** ** ;Note that routine is an external symbol ** .EXTL ^1 ** ** ;Add entry for this routine to the UCALL Name and Number tables ** .PART SD_B32_UCALL_NAMES_PART ALIGN=1,CODE,LONG,SHARED,NORM,GLOBAL,MESS ** ?NAME_PTR = (.-SD_UCALL_NAMES)*2 ** .TXT "^1" ** ** .PART SD_B32_UCALL_NUMS_PART ALIGN=1,CODE,LONG,SHARED,NORM,GLOBAL,MESS ** .WORD .ARGCT-1 ** .WORD ?NAME_PTR ** .WORD MAX?UCALL ** ** ;Add entry for this routine to the USR_DSP dispatch table ** .PART SD_B32_USR_DSP_PART ALIGN=1,CODE,LONG,SHARED,NORM,GLOBAL,MESS ** .DWORD ^1-. ** ** ;Build argument specification entries for both B32 and SD tables ** .DUSR B32?SPEC = .ARGCT-1 ;init B32 arg spec to arg count ** .DUSR B32?BIT = 27. ** .DUSR SD?SPEC = 0 ** .DUSR ?I = 1 ;skip first arg since it is routine name ** ** .DO .ARGCT-1 ** .DUSR ?I = ?I+1 ** .DUSR B32?SPEC = (B32?SPEC)!((^?I.B32)S(B32?BIT)) ** .DUSR B32?BIT = B32?BIT-2 ** .DUSR SD?SPEC = ((SD?SPEC)*16.)!(^?I) ** .ENDC ** ** ;Put now complete argument spec into B32's USR_DEF table ** .PART SD_B32_USR_DEF_PART ALIGN=1,CODE,LONG,SHARED,NORM,GLOBAL,MESS ** .DWORD B32?SPEC ** ** ;Put now complete SCREEN DEMON argument spec into SD_ARG_DEF table ** .PART SD_B32_ARG_DEF_PART ALIGN=1,CODE,LONG,SHARED,NORM,GLOBAL,MESS ** .DWORD SD?SPEC ** ** .NOCON .POP % .EOF .D"#D't"#DQ?CBSYS_3.00.03.PAT ;--------------------------------------------------------------------- ; ?CBSYS_3.00.03.PAT 3-DEC-91 ; ;This patch corrects a problem with Screen Demon's version of the ?CBSYS ; call which caused it to bypass the Screen Demon system call ; interceptors. If a system call normally processed by Screen Demon ; was made using the SD ?CBSYS call, unpredicable results would occur. ; The ?CBSYS call included in the CBCALL.LB library provided by ; Data General does not exhibit this problem. ; ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 411773 127351 101033 411774 0 143031 411775 0 100006 412000 1257 677 412001 10 0 ;End of patch .D!Á't!Á0HISTORY_CHARS_3.00.03.PAT ;--------------------------------------------------------------------- ; HISTORY_CHARS_3.00.03.PAT 29-AUG-91 ; ;This patch corrects an error causing the Input History access hot key ; characters to be eaten on a binary input (such as SD_READ_CHAR), ; instead of being returned to the SD_READ_CHAR call as documented. ; ; Applies ONLY to the file SCREEN_DEMON.LB of Screen Demon rev 3.00.03 %USERFILE 367171 0 1 367317 0 1 ;End of patch .D!b&'t!b'Pr?TERM_3.00.03.PAT ;--------------------------------------------------------------------- ; ?TERM_3.00.03.PAT 30-AUG-91 modified 18-SEP-91 ; ;This patch corrects an error in Screen Demon's ?TERM system call ; interceptor resulting in an infinite loop if a program ; issued ?TERM to terminate itself. ; ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 35212 162571 116571 35216 124271 135711 ^+1 101670 0 ^+1 135711 0 ^+1 0 124271 ^+1 0 101370 35225 114211 160211 35235 102571 165571 ^+1 123111 115571 ^+1 102671 102571 ^+1 147051 123111 ^+1 4 102671 ^+1 167111 153051 ^+1 125711 4 ^+1 0 173111 ^+1 0 176571 35253 171270 101033 35272 177773 177772 35276 110211 160211 35417 143031 107051 ^+1 100006 5 ^+1 304 123311 ^+1 101033 30000 ^+1 101111 0 ^+1 105571 0 ^+1 151111 304 36052 1027 1025 36056 1257 677 ^+1 61 0 ;End of patch .D!|'t!| (uMAKE_SCREEN_DEMON.SL.CLI [!equal,,comment] This macro rebuilds the SCREEN DEMON Shared Library file. Optional global switches: /CONFIG=filename specifies an alternate configuration file to use instead of SD_SL_CONFIG. /O=library_filename specifies an alternate shared library filename to build instead of the default SCREEN_DEMON.SL. The /PRISWI global switch causes the Printer Switcher routine to be linked with the new shared library. 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 shared library. 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 (IT_LIB), which must be linked into any root programs using this shared library. Additional object modules may be included by listing them on the command line. NOTE: any supplied modules must be position independent code (in particular, no COBOL programs). Optional patches will be installed if they are placed in a file called SCREEN_DEMON.SL.PAT. See the SCREEN_DEMON.OPTIONAL.PAT file for instructions on creating a SCREEN_DEMON.SL.PAT file. Also, all available fix patches, as specified in the NONICX.PATCH_LIST file, will be installed. [!end] push prompt pop Comment If both switches were not supplied, recurse with defaults [!nequal,,[!equal,,%0/config=%]NULL[!end][!equal,,%0/o=%]NULL[!end]] %0\%%0\config\o%/config=[!equal,,%0/config=%]SD_SL_CONFIG[!else]%0/config=%[!end]& /o=[!equal,,%0/o=%]SCREEN_DEMON.SL[!else]%0/o=%[!end] %-% [!else] searchlist [!searchlist] [!edirectory [!pathname %0\%.cli]] [!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=% write ((write x/s),x/s) & link/udf& /ring=0/nbot=1024/unusedsize=0/ulast=SD_UNINITIALIZED_DATA_PART& %0\config\priswi\ceo\wp% & & SL.DERR/value=0 & & sd_sl_mem_params & & root_sli_screen_demon root_screen_demon_sli & screen_demon_sld & & sd_sl_init & & %1-% & & %0/config=% & & [!nequal,,%0/ceo%]& sd_ceo_interface sd_ceo_interface_sli& [!end]& & [!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/priswi%]& sd_priswi& [!end]& & screen_demon.lb sd_no_lang_rt comment Replace the existing SCREEN_DEMON.SL only if there comment were no link errors. [!equal,(),([!string])] comment Install optional patches to the shared library [!nequal,,[!path SCREEN_DEMON.SL.PAT]] x patch/t==%0/o=%.PR/p=SCREEN_DEMON.SL.PAT/yes [!end] comment Install fix patches if available [!nequal,,[!path NONICX.PATCH_LIST]] delete/2=ignore =?[!pid]patches.tmp write/l==?[!pid]patches.tmp [!ascii 45]USERFILE copy/a =?[!pid]patches.tmp [NONICX.PATCH_LIST] x patch/t==%0/o=%.PR/p==?[!pid]patches.tmp/yes delete/2=ignore =?[!pid]patches.tmp [!end] [!nequal,,[!path SL.PATCH_LIST]] x patch/t==%0/o=%.PR/p=([SL.PATCH_LIST])/yes [!end] write write Renaming %0/o=%.PR to %0/o=% delete/2=ignore %0/o=% rename %0/o=%.pr %0/o=% [!end] [!end] [!end] pop .D!g't!g/REMOTE_DISCARD_3.00.03.PAT ;--------------------------------------------------------------------- ; REMOTE_DISCARD_3.00.03.PAT 5-SEP-91 ; ;While SPY has control of a terminal in Remote Input mode, characters entered ; on the remote terminal's keyboard are supposed to be discarded. Instead, ; the characters are held until SPY releases control. This patch causes ; the discard to occur as documented. ; ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 366175 0 42 366177 17 2 367364 115 11 374036 172011 101131 ^+1 56 124070 ^+1 141451 161451 ^+1 7 65 374155 101032 100670 374157 143051 172011 374160 1750 136 ^+1 124531 141231 ^+1 150531 151670 374166 263 502 374170 174770 175370 374345 141270 141670 ;End of patch .D!ݎ't!ݎ/xSCREENPRINT_PRISWI_3.00.03.PAT ;--------------------------------------------------------------------- ; SCREENPRINT_PRISWI_3.00.03.PAT 25-SEP-91 ; ;This patch suppresses the pop-up error message from the Screen Print ; routine if it cannot open the output file when the configuration ; option "SDSCREENPRINT_ASK_OUTPUT_NAME?" is set to NO. This will ; prevent the "File Does Not Exist" error from appearing when the ; operator presses at the SD_PRISWI Printer Switcher menu, ; if SD_PRISWI is used to handle Screen Print output. ; ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 254303 100611 101033 ;End of patch .D!ފ't!ފ,SD_REGISTER_VCON_3.00.03.PAT ;--------------------------------------------------------------------- ; SD_REGISTER_VCON_3.00.03.PAT 26-SEP-91 ; ;Some VCON and PC*I WCON terminal drivers apparently do not handle the ; ?GECHR/?SECHR system calls as documented. This can cause Screen ; Demon programs running on these virtual consoles to abort during ; startup. ; ; This patch modifies the appropriate routines in the SD_REGISTER.PR ; program so that this program can function correctly on virtual ; terminals as well as normal consoles. ; ; Applies ONLY to the SD_REGISTER.PR program in Screen Demon rev 3.00.03 %USERFILE 261074 17 5 261140 17 5 ;End of patch .D!߂F't!߂F)8SPY_LIST_RESET_3.00.03.PAT ;--------------------------------------------------------------------- ; SPY_LIST_RESET_3.00.03.PAT 27-SEP-91 ; ;This patch prevents the SPY program from resetting the Console Status ; Display console list back to the beginning if no user input occurs ; for a ten-second period. ; ; Applies ONLY to the SD_SPY.PR program in Screen Demon rev 3.00.03 SD_SPY+2534 [WSGE 0,0] [LNLDA 1,SD_UNSHARED_DATA_PART+264,1] ^+1 [WBR SD_SPY+2556] [] ^+1 [LNLDA 0,SD_UNSHARED_DATA_PART+617,1] [] ^+1 [] [WSLE 0,1] ^+1 [] [WBR SD_SPY+2556] ^+1 [WSNE 0,0] [LNLDA 2,SD_UNSHARED_DATA_PART+617,1] ^+1 [WBR SD_SPY+2554] [] ^+1 [LNLDA 0,SD_UNSHARED_DATA_PART+263,1] [] ^+1 [] [WSNE 2,2] ^+1 [] [WBR SD_SPY+2554] SD_SPY+3376 [LNSTA 0,SD_UNSHARED_DATA_PART+550,1] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [] [] #SD_PATCH 0 [LWLDA 1,SD_UNSHARED_DATA_PART+362,1] ^+1 0 [] ^+1 0 [] ^+1 0 [LWLDA 2,SD_UNSHARED_DATA_PART+366,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WSLT 1,2] ^+1 0 [WPOPJ] ^+1 0 [LNSTA 0,SD_UNSHARED_DATA_PART+550,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+14\ ^+1 [] [] ;End of patch .D!n't!n(, SD_CEO_INTERFACE.OB_3.00.03.PAT (;--------------------------------------------------------------------- ; SD_CEO_INTERFACE.OB_3.00.03.PAT 17-OCT-91 ; (replaces CEO_MAIL_3.00.03.PAT) ; ; Applies ONLY to the file SD_CEO_INTERFACE.OB in Screen Demon rev 3.00.03 %USERFILE ;This patch corrects a problem resulting in a fatal error when the ; CEO interface routine was completing a CEO mail check. ; 3061 145611 157151 ^+1 100770 145611 ^+1 131751 100670 ^+1 0 152271 ^+1 0 101033 3702 1257 677 ^+1 45 0 2453 167351 167251 ^+1 200 177 ;This patch corrects a problem resulting in a fatal error when the ; CEO interface routine attempted to reconnect to CEO_CP in a ; program CHAIN'd from the program originally PROC'd by CEO_CP. ; 1503 116571 172571 1525 160211 154211 1614 140211 154211 ;End of patch .D!'t!.0INPFLD_177_CURADR_3.00.03.PAT .;--------------------------------------------------------------------- ; INPFLD_177_CURADR_3.00.03.PAT 23-OCT-91 ; ;This patch allows Screen Demon to compensate for ?READ screen management ; subpacket cursor addresses that contain the value 177 for either the ; line or column. This value apparently indicates that the current line ; or column is to be used, rather than pegging the cursor at the end of ; the screen. ; ; This patch is definitely required when using Screen Demon ; with CQCS by CyberScience ; ; Applies to programs linked with Screen Demon rev 3.00.03 SD_INPUT_FIELD+675 [LNSTA 1,FLDSCRNPKT+2,1] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [] [] #SD_PATCH 0 [WPSH 0,3] ^+1 0 [MOVS 1,0] ^+1 0 [NLDAI 177,2] ^+1 0 [] ^+1 0 [WAND 2,0] ^+1 0 [WAND 2,1] ^+1 0 [LLEFB 3,(FLDSCRNPKT+2)*2,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WSEQ 2,0] ^+1 0 [WSTB 3,0] ^+1 0 [WINC 3,3] ^+1 0 [WSEQ 2,1] ^+1 0 [WSTB 3,1] ^+1 0 [WPOP 3,0] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+20\ ^+1 [] [] ;End of patch .D"#h't"#h3#ICX_HOT_ENV_3.00.03.PAT 3;--------------------------------------------------------------------- ; ICX_HOT_ENV_3.00.03.PAT 4-DEC-91 ; ;This patch resets the console environment to that expected by ICX ; when an hot key that invokes an ICOBOL program is pressed. ; Without the patch, the console delimiter table and characteristics ; would be left in their existing state. If the ICOBOL hot key ; was pressed while a nonICOBOL hot key routine, such as Notepad ; or Screen Print was active, this existing state was not valid for ; ICX, and caused function keys to work incorrectly, sometimes to the ; point of killing the interpreter. ; ; Additionally, the ..FCA field of ICX is saved and restored around ; the hot key call. The ICX OPEN routine uses this field, so it needs ; to be preserved if an ICOBOL hot key is pressed while the Printer ; Switcher menu is active (via an intercepted printer OPEN). Otherwise, ; a fatal error could occur when control finally returns to the ICX OPEN ; routine. ; ; This patch applies to an SD_ICX.PR after linking ; with Screen Demon rev 3.00.03 SD_CALL_ICOBOL_SUBPROGRAM+1 224 225 ^+1 [LWLDA 0,..PC,1] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [] [] #SD_PATCH 0 [WPSH 0,2] ^+1 0 [LLEF 2,DLMTB,1] ^+1 0 [] ^+1 0 [] ^+1 0 [LPSHJ SD_CONSOLE_SET_VIRTUAL_DELIM_TBL,1] ^+1 0 [] ^+1 0 [] ^+1 0 [LLEF 2,VIRTUAL_CON_CHARACTERISTICS,1] ^+1 0 [] ^+1 0 [] ^+1 0 [XNLDA 0,1,2] ^+1 0 [] ^+1 0 [ANDI 177573,0] ^+1 0 [] ^+1 0 [XNSTA 0,1,2] ^+1 0 [] ^+1 0 [WPOP 2,0] ^+1 0 [LWLDA 0,..FCA,1] ^+1 0 [] ^+1 0 [] ^+1 0 [XWSTA 0,450,3] ^+1 0 [] ^+1 0 [LWLDA 0,..PC,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+32\ ^+1 [] [] SD_CALL_ICOBOL_SUBPROGRAM+716 [LWSTA 0,SWTCH,1] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [] [] #SD_PATCH 0 [LWSTA 0,SWTCH,1] ^+1 0 [] ^+1 0 [] ^+1 0 [XWLDA 0,450,3] ^+1 0 [] ^+1 0 [LWSTA 0,..FCA,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+11\ ^+1 [] [] ;End of patch .D"wfo't"wfpeSD_HOT_KEY_DEF_SKEL.SR e .TITLE {PROGRAM}_HKD ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; ;;; Copyright (C) 1988 - 1991, ;;; ;;; 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 ;;; ;;; ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; .EXTL {PROGRAM} .EXTC EXTC_SD_HOT_KEY_LIST .NREL 5 ;Pre-defined shared data partition .DWORD EXTC_SD_HOT_KEY_LIST ;Link this entry in the EXTC list .DWORD NM_{PROGRAM}*2 ;Byte pointer to name text .WORD {TYPE} ;Type of hot key (0 = linked in) .WORD {FLAGS} ;Flags (1 = not aware of SCREEN DEMON) .DWORD {PROGRAM} ;Word address of CALL-able routine .DWORD 0 ;Dummy ACL pointer NM_{PROGRAM}: .TXT "{PROGRAM}" .END .D#;'t#; xHNON_?ESSE_3.00.03.PAT x;--------------------------------------------------------------------- ; NON_?ESSE_3.00.03.PAT 01-JUL-92 ; modified 9-SEP-92 ; ; This patch corrects a problem with Screen Demon's emulation of console ; ?READ's that did not use the ?ESSE (screenedit) option. In that case, ; the screenedit control characters would be expected to act the same as ; any other characters, but since Screen Demon always uses screenedit, ; this did not occur. Unless the host program specifically set the left ; and right arrow keys, ^A, ^B, etc. to be delimiters, they would never ; be returned from the ?READ. Consequently, programs like INQUIRE that ; expected to input such characters in this manner would be difficult or ; impossible to use. ; ; Applies to programs linked with Screen Demon rev 3.00.03 SD_SPY_REMOTE_INPUT+1 114 126 SD_INPUT_FIELD_TO_FULL+1 114 126 SD_INPUT_FIELD+1 114 126 SD_INPUT_FIELD+14 [WADC 1,1] {LPSHJ #SD_PATCH,1} ^+1 [XLEF 2,113,3] [] ^+1 [] [] #SD_PATCH 0 [XLEF 3,232,3] ^+1 0 [] ^+1 0 [LLEF 2,VIRTUAL_CON_DELIMITER_TABLE,1] ^+1 0 [] ^+1 0 [] ^+1 0 [NLDAI 16.,1] ^+1 0 [] ^+1 0 [WBLM] ^+1 0 [LDAFP 3] ^+1 0 [WADC 1,1] ^+1 0 [XLEF 2,113,3] ^+1 0 [] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+15\ ^+1 [] [] SD_INPUT_FIELD+616 [NSANA 100000,1] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [WBR SD_INPUT_FIELD+725] [] ^+1 [XWLDA 3,20,2] [WBR SD_INPUT_FIELD+725] ^+1 [] [WBR .+10] #SD_PATCH 0 [NSANA 100000,1] ^+1 0 [] ^+1 0 [WBR .+26] ^+1 0 [XWLDA 3,20,2] ^+1 0 [] ^+1 0 [WSANA 20000000000,3] ^+1 0 [] ^+1 0 [] ^+1 0 [WBR .+20] ^+1 0 [WANDI 17777777777,3] ^+1 0 [] ^+1 0 [] ^+1 0 [XNLDA 1,0,3] ^+1 0 [] ^+1 0 [ISZTS] ^+1 0 [WCOM 1,1] ^+1 0 [NSANA 100000,1] ^+1 0 [] ^+1 0 [WPOPJ] ^+1 0 [XNLDA 1,7,2] ^+1 0 [] ^+1 0 [WSEQI 1,1] ^+1 0 [] ^+1 0 [WPOPJ] ^+1 0 [LWLDA 1,VIRTUAL_CON_DELIMITER_TABLE,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WIORI 14667000300,1] ^+1 0 [] ^+1 0 [] ^+1 0 [LWSTA 1,VIRTUAL_CON_DELIMITER_TABLE,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+42\ ^+1 [] [] SD_INPUT_FIELD+6413 [XWADI 1,0,3] {LJMP #SD_PATCH,1} ^+1 [] [] ^+1 [WRTN] [] ^+1 [XWSTA 0,-10,3] {LJMP #SD_PATCH+3,1} ^+1 [] [] ^+1 [WRTN] [] #SD_PATCH 0 [XWADI 1,0,3] ^+1 0 [] ^+1 0 [WBR .+3] ^+1 0 [XWSTA 0,-10,3] ^+1 0 [] ^+1 0 [XLEF 2,232,3] ^+1 0 [] ^+1 0 [LLEF 3,VIRTUAL_CON_DELIMITER_TABLE,1] ^+1 0 [] ^+1 0 [] ^+1 0 [NLDAI 16.,1] ^+1 0 [] ^+1 0 [WBLM] ^+1 0 [WRTN] SD_PATCH #SD_PATCH\ #SD_PATCH+16\ ^+1 [] [] ;End of patch .D"u+'t"u/ %SPY_CON_NO_PIDS_3.00.03.PAT ;--------------------------------------------------------------------- ; SPY_CON_NO_PIDS_3.00.03.PAT 17-APR-92 ; ;This patch corrects a problem in the SD_SPY program that occasionally ; resulted in certain inactive consoles not being shown in the list, ; even when in "All Consoles" mode. ; Applies to SD_SPY.PR in Screen Demon rev 3.00.03 SD_SPY+1672 [WBR SD_SPY+1715] [WBR SD_SPY+1647] SD_SPY+1702 [WBR SD_SPY+1715] [WBR SD_SPY+1647] ;End of patch .D!L't!L/vMAIL_CACHE_3.00.03.PAT ;--------------------------------------------------------------------- ; MAIL_CACHE_3.00.03.PAT 9-SEP-91 ; ;This patch corrects an error where the displayed message cache was not ; cleared upon entry to the Read Mail routine. This sometimes caused ; one or more message lines to appear garbled in the inbox menu. ; ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 274035 123371 147051 ^+1 0 2304 ^+1 2304 126571 274050 100271 137051 ^+1 100670 4 ^+1 100531 111571 ^+1 121731 100531 ^+1 0 141471 ^+2 103651 155131 ^+1 172071 167231 ^+1 4 106611 ^+1 136351 163511 ^+1 0 147371 ^+1 460 0 ^+1 156571 460 274256 1257 677 ^+1 63 0 ^+1 70 71 ;End of patch .D"`'t"`/~INPFLD_ERROR_?IRLR_3.00.03.PAT ;--------------------------------------------------------------------- ; INPFLD_ERROR_?IRLR_3.00.03.PAT 5-NOV-91 ; ;This patch resets the ?READ packet "number of characters returned" slot ; to zero if an error occurs during a field input. This packet slot ; was being left at its original value, possibly from an earlier input, ; when an error occurred, such as an End of File induced via ^D. ; In some programs, such as CLI32, this caused a previously entered ; input string to be used as if it had been typed but not echoed. ; ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 354425 124671 100531 354426 105571 141471 354427 120651 10 354430 105571 101033 ;End of patch .D"0+'t"0-#GRAPHIC_CURSOR_3.00.03.PAT ;--------------------------------------------------------------------- ; GRAPHIC_CURSOR_3.00.03.PAT 17-DEC-91 ; ;This patch makes Screen Demon recognize the various graphic cursor ; commands supported by D460-series terminals. When one of these ; commands is encountered, Screen Demon will send it directly to ; the terminal. This permits programs using these commands to run ; with Turbo on, and prevents extraneous characters from the commands ; appearing on the screen, which can occur with terminal commands not ; supported by Screen Demon. ; ; This patch adds support for the following commands: ; <36>G>| Gcursor location ; <36>G?| Gcursor query ; <36>G@ Gcursor attributes ; <36>GA Gcursor reset ; <36>GB Gcursor on ; <36>GC Gcursor off ; <36>GH Gcursor track ; <36>GI Gcursor color ; ; This patch is unnecessary if none of the above commands ; will be output by the host programs. ; ; Applies to programs linked with Screen Demon rev 3.00.03 GFUNTBL+((76-60)*2) -1 SD_MONITOR_STRING+1166-.\ ^+1 -1 [] GFUNTBL+((77-60)*2) -1 SD_MONITOR_STRING+4375-.\ ^+1 -1 [] GFUNTBL+((100-60)*2) -1 SD_MONITOR_STRING+4457-.\ ^+1 -1 [] GFUNTBL+((101-60)*2) -1 SD_MONITOR_STRING+4457-.\ ^+1 -1 [] GFUNTBL+((102-60)*2) -1 SD_MONITOR_STRING+4457-.\ ^+1 -1 [] GFUNTBL+((103-60)*2) -1 SD_MONITOR_STRING+4457-.\ ^+1 -1 [] GFUNTBL+((110-60)*2) -1 SD_MONITOR_STRING+4375-.\ ^+1 -1 [] GFUNTBL+((111-60)*2) -1 SD_MONITOR_STRING+4375-.\ ^+1 -1 [] SD_MONITOR_STRING+1166 0 [NLDAI 7,0] ^+1 0 [] ^+1 0 [XJMP SD_MONITOR_STRING+4532,1] ^+1 0 [] ;End of patch .D" e't" er,HOT_PHYS_CLRSCN_3.00.03.PAT r;--------------------------------------------------------------------- ; HOT_PHYS_CLRSCN_3.00.03.PAT 8-NOV-91 ; ;The configuration file question PHYSICAL_SCREEN_CLEAR? declares ; whether or not Screen Demon should actually send a form feed ; to the terminal when the host program displays one. However, ; such a physical screen clear was always suppressed when a hot ; key was active to provide compatibility with older revisions ; of Screen Demon. This patch causes the clear to occur even ; if a hot key routine is active. You may not want to install ; this patch if you have hot key programs that clear the screen ; and then adjust their window size to less than the full screen; ; the resulting redraw might be annoying. ; ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 103105 100470 101033 ;End of patch .D$!y't$!ySPY.PATCH_LIST spy_list_reset_3.00.03.pat,& spy_reminp_clr_3.00.03.pat,& spy_view_sync_3.00.03.pat,& spy_exit_hang_3.00.03.pat,& spy_con_no_pids_3.00.03.pat,& spy_stop_3.00.03.pat& .D"o]'t"o_9.kBINARY_TIMEOUT_IR_3.00.03.PAT 9;--------------------------------------------------------------------- ; BINARY_TIMEOUT_IR_3.00.03.PAT 21-NOV-91 ; ;This patch corrects a problem in Screen Demon's system call interceptor ; that resulted in a hardware trap when a binary mode console input ; ended because of a non-Screen Demon timeout. This affected ICOBOL ; SECURE-type ACCEPTS using the TIME-OUT clause. ; ; Applies ONLY to the file SD_INTERFACE_IR.OB in Screen Demon rev 3.00.03 %USERFILE 6716 105571 124531 6725 121571 143051 6726 124531 76 6747 121751 135751 ;End of patch .D"SU't"SUk^LIBERTY_3.00.03.OPTPAT ^;--------------------------------------------------------------------- ; LIBERTY_3.00.03.OPTPAT 21-JAN-92 ; ;Screen Demon assumes that the cursor automatically wraps to the first ; column on the next line when a character is placed at the right ; margin column. Some DG "compatible" terminals, such as those made ; by Liberty, do not behave this way, but act more like DEC VT100 ; terminals where the wrap doesn't occur unless another printable ; character is received following the wrapping character. ; ; This optional patch forces a wrap to occur at the end of a line ; by using a cursor address, so that the wrapping assumption is ; valid for DG terminals as well as psuedo-compatible ones. Turbo ; displays will be somewhat slower with this patch because of the ; extra cursor addresses. ; ; Applies to programs linked with Screen Demon rev 3.00.03 SD_DISPLAY+1751 [WADD 1,1] {LPSHJ #SD_PATCH,1} ^+1 [WMOV 1,2] [] ^+1 [WLSI 4,1] [] #SD_PATCH 0 [XWLDA 2,65,3] ^+1 0 [] ^+1 0 [NLDAI 20,3] ^+1 0 [] ^+1 0 [WSTB 2,3] ^+1 0 [WINC 2,2] ^+1 0 [WSTB 2,0] ^+1 0 [WINC 2,2] ^+1 0 [WSTB 2,1] ^+1 0 [WINC 2,2] ^+1 0 [LDAFP 3] ^+1 0 [XWSTA 2,65,3] ^+1 0 [] ^+1 0 [WADD 1,1] ^+1 0 [WMOV 1,2] ^+1 0 [WLSI 4,1] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+21\ ^+1 [] [] ;End of patch .D"x't"x TRUE_CHARSETS_3.00.03.PAT ;--------------------------------------------------------------------- ; TRUE_CHARSETS_3.00.03.PAT 7-DEC-91 ; modified 20-MAY-92 ; ;When in Turbo mode, Screen Demon does not necessarily keep the terminal's ; character sets the way the host program expects. In particular, the ; primary character set was always set to the keyboard set. This could ; sometimes cause inputs to occur with an incorrect character set, after ; which Screen Demon would redisplay the entered characters in the proper ; set. This patch forces Screen Demon to leave the terminal character ; sets as the host program expects. ; ; Applies to programs linked with Screen Demon rev 3.00.03 except SD_PLAY! SD_DISPLAY+4144 [NSANA 20,0] [NOP] SD_PLAY=0 ^+1 [] [NOP] SD_PLAY=0 SD_DISPLAY+3412 [WSEQ 0,0] {LPSHJ #SD_PATCH,1} SD_PLAY=0 ^+1 [WBR SD_DISPLAY+3460] [] SD_PLAY=0 ^+1 [XWLDA 1,73,3] [] SD_PLAY=0 ^+1 [] [NOP] SD_PLAY=0 #SD_PATCH 0 [XWLDA 3,2,3] SD_PLAY=0 ^+1 0 [] SD_PLAY=0 ^+1 0 [WMOVR 3] SD_PLAY=0 ^+1 0 [XNLDA 1,7462,3] SD_PLAY=0 ^+1 0 [] SD_PLAY=0 ^+1 0 [LDAFP 3] SD_PLAY=0 ^+1 0 [WSNE 0,1] SD_PLAY=0 ^+1 0 [WBR .+5] SD_PLAY=0 ^+1 0 [WPOP 1,1] SD_PLAY=0 ^+1 0 [LJMP SD_DISPLAY+3460,1] SD_PLAY=0 ^+1 0 [] SD_PLAY=0 ^+1 0 [] SD_PLAY=0 ^+1 0 [XWLDA 1,73,3] SD_PLAY=0 ^+1 0 [] SD_PLAY=0 ^+1 0 [WPOPJ] SD_PLAY=0 SD_PATCH #SD_PATCH\ #SD_PATCH+17\ SD_PLAY=0 ^+1 [] [] SD_PLAY=0 SD_DISPLAY+3443 [XNLDA 1,60,3] [XNLDA 1,56,3] SD_PLAY=0 ^+1 [] [] SD_PLAY=0 ^+1 [WSNEI 30060,1] [WSEQ 0,1] SD_PLAY=0 ^+1 [] [WBR .+3] SD_PLAY=0 ^+1 [WBR SD_DISPLAY+3571] [XJMP SD_DISPLAY+3571] SD_PLAY=0 ^+1 [XNSTA 0,60,3] [] SD_PLAY=0 ^+1 [] [XNSTA 0,56,3] SD_PLAY=0 ^+1 [WSUB 0,0] [] SD_PLAY=0 ^+1 [XNSTA 0,56,3] {LPSHJ #SD_PATCH,1} SD_PLAY=0 ^+1 [] [] SD_PLAY=0 ^+1 [NLDAI 30060,0] [] SD_PLAY=0 ^+1 [] [NOP] SD_PLAY=0 #SD_PATCH 0 [WLSHI 177774,0] SD_PLAY=0 ^+1 0 [] SD_PLAY=0 ^+1 0 [LLEF 3,CHARACTER_SET_PALETTE,1] SD_PLAY=0 ^+1 0 [] SD_PLAY=0 ^+1 0 [] SD_PLAY=0 ^+1 0 [WADD 0,3] SD_PLAY=0 ^+1 0 [XNLDA 0,0,3] SD_PLAY=0 ^+1 0 [] SD_PLAY=0 ^+1 0 [LDAFP 3] SD_PLAY=0 ^+1 0 [XNSTA 0,60,3] SD_PLAY=0 ^+1 0 [] SD_PLAY=0 ^+1 0 [WPOPJ] SD_PLAY=0 SD_PATCH #SD_PATCH\ #SD_PATCH+14\ SD_PLAY=0 ^+1 [] [] SD_PLAY=0 ;End of patch .D"Tq't"TqSD_HOT_KEY_LINKAGE_3.62.OPTPAT ;--------------------------------------------------------------------- ; SD_HOT_KEY_LINKAGE_3.62.OPTPAT 22-JAN-92 ; ;This optional set of patches allows an argument to be passed on SCREEN DEMON ; hot key calls to 32-bit COBOL subprograms. This patch file is intended ; for use with rev 3.00.03 of SCREEN DEMON for 32-bit COBOL rev 3.62 only. ; ; ; Use of this patch file requires that the host program(s) define and ; maintain the following array: ; 01 PASSPTRS EXTERNAL. ; 05 PASS-FIELD-PTR OCCURS max-depth TIMES ; PIC S9(9) COMP. ; ; 01 CALLDEPTH EXTERNAL ; PIC 9(4) COMP VALUE ZERO. ; ; Note that 'max-depth' above should be replaced by an appropriate value. ; It must not be less than the length of the longest subprogram CALL chain. ; Example: "Program A CALLs B which CALLs C" requires a depth of 3. ; Note that 'max-depth' must also allow for hot-key calls. ; ; The value of the CALLDEPTH field will be automatically maintained by ; the code in this patch file. ; ; ; As soon as possible after program startup, the host program(s) should ; obtain a byte pointer (using ?CBBADDR) to the field to be passed as an ; argument to all hot key subprograms, and place this byte pointer in the ; array slot PASS-FIELD-PTR (CALLDEPTH). ; Example (assuming that WS-LINK-DATA is the field to be passed): ; CALL "?CBBADDR" USING WS-LINK-DATA, BYTE-PTR. ; MOVE BYTE-PTR TO PASS-FIELD-PTR (CALLDEPTH). ; BYTE-PTR must be an 01 level PIC S9(9) COMP field. ; ; Once the passing field byte pointer has been placed in the PASSPTRS ; array, no further action is required by the host program. The code ; in this patch file will automatically pass the proper pointer to any ; COBOL subprogram called by means of a hot key just as if it were called ; by means of a CALL...USING statement. NOTE: It is the host program's ; responsibility to ensure that the format of the passed field matches ; the hot key subprogram's LINKAGE section declarations. As designed, ; the code in this patch file passes only one argument. ; ; If the COBOL datanames specified above (PASSPTRS, CALLDEPTH) are not ; satisfactory, other names can be substituted for them provided that ; the names match both COBOL and PATCH symbol requirements. This means ; no dashes in the name. Change all occurances of the old name in this ; file to the desired new name. The PASS-FIELD-PTR dataname given above ; is not referenced in the patches below, so it can be any valid COBOL ; dataname. ; ; ; ; ; This patch can be applied to a COBOL program after linking with ; Screen Demon. To do this, type ; X PATCH/T=progname.PR/P=SD_HOT_KEY_LINKAGE.PAT/YES ;*************************************************************************** ; ; Beginning of patch ;Increment program call depth whenver a subprogram begins, and initialize ; pass field byte ptr for new depth to be zero. COBINIT+5 [WSKBZ 36] {LJMP #SD_PATCH,1} ^+1 [WRTN] [] ^+1 [LCALL GET_COBOL_DATA,1,0] [] ^+1 [] [NOP] ^+1 [] [NOP] ^+1 [] [NOP] #SD_PATCH 0 [WPSH 0,2] ^+1 0 [LLEF 2,(PASSPTRS-2),1] ^+1 0 [] ^+1 0 [] ^+1 0 [LNADI 1,CALLDEPTH,1] ^+1 0 [] ^+1 0 [] ^+1 0 [LNLDA 0,CALLDEPTH,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WLSI 1,0] ^+1 0 [WADD 0,2] ^+1 0 [WSUB 1,1] ^+1 0 [XWSTA 1,0,2] ^+1 0 [] ^+1 0 [WPOP 2,0] ^+1 0 [WSKBZ 36] ^+1 0 [WRTN] ^+1 0 [LCALL GET_COBOL_DATA,1,0] ^+1 0 [] ^+1 0 [] ^+1 0 [] ^+1 0 [LJMP COBINIT+13,1] ^+1 0 [] ^+1 0 [] SD_PATCH #SD_PATCH\ #SD_PATCH+31\ ^+1 [] [] ;Decrement program call depth whenever a subprogram exits COBEXIT+3 [LWSTA 1,COBEXCP,1] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [] [] #SD_PATCH 0 [LWSTA 1,COBEXCP,1] ^+1 0 [] ^+1 0 [] ^+1 0 [LNSBI 1,CALLDEPTH,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+7\ ^+1 [] [] ;Push proper argument before calling 32-bit COBOL hot key subprogram. If ; no argument ptr was supplied for current program depth, pass a byte ; ptr to the string "????" SD_CALL_HOT_KEY_ROUTINE+372 [XCALL 0,2,0] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [] [] #SD_PATCH 0 [WPSH 0,2] ^+1 0 [LLEF 2,(PASSPTRS-2),1] ^+1 0 [] ^+1 0 [] ^+1 0 [LNLDA 0,CALLDEPTH,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WLSI 1,0] ^+1 0 [WADD 0,2] ^+1 0 [XWLDA 3,0,2] ^+1 0 [] ^+1 0 [WPOP 2,0] ^+1 0 [WSEQ 3,3] ^+1 0 [WBR .+3] ^+1 0 [XLEFB 3,(.+7)*2,1] ^+1 0 [] ^+1 0 [WPSH 3,3] ^+1 0 [XCALL 0,2,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WPOPJ] ^+1 0 "?? ^+1 0 "?? ^+1 0 0 SD_PATCH #SD_PATCH\ SD_PATCH+25\ ^+1 [] [] ;End of patch .D"ct't"cublGETCHAR_ERSCA_3.00.03.PAT b;--------------------------------------------------------------------- ; GETCHAR_ERSCA_3.00.03.PAT 6-FEB-92 ; ;Normally, Screen Demon considers unknown errors resulting from ; console ?READ's to be fatal. This patch causes them to be ; ignored. This is necessary when running under AcuCOBOL, or ; any other AOS/VS C program using UNIX emulation where alarm() ; is used to abort a read(), since a "System Call Abort" error ; will terminate the console ?READ in that case. ; ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 374315 101170 101470 ;End of patch .D"_'t"_GETCHAR_INTR_3.00.03.PAT ;--------------------------------------------------------------------- ; GETCHAR_INTR_3.00.03.PAT 17-MAR-92 ; ;This patch corrects a problem with the SD_READ_CHAR/SD_GETCHAR routines ; where a fatal error would occur if the input was interrupted for ; some reason, such as an ?IDGOTO ; ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 372357 166031 166071 ;End of patch .D"j't"jbIR_INIT_3.00.03.PAT ;--------------------------------------------------------------------- ; IR_INIT_3.00.03.PAT 9-JUN-92 ; ;This patch corrects a problem with Screen Demon's inner ring ; initialization routine where the contents of AC0 would be ; trashed on the first intercepted system call, resulting in ; unpredictable behavior. ; Applies ONLY to Screen Demon rev 3.00.03 inner ring programs SD_SYSCALL_GATE-5 [XNLDA 3,-11,3] {LPSHJ #SD_PATCH,1} SD_SYSCALL_GATE<>0 ^+1 [] [] SD_SYSCALL_GATE<>0 ^+1 [WSGT 3,3] [] SD_SYSCALL_GATE<>0 #SD_PATCH 0 [XNLDA 0,-11,3] SD_SYSCALL_GATE<>0 ^+1 0 [] SD_SYSCALL_GATE<>0 ^+1 0 [WSGT 0,0] SD_SYSCALL_GATE<>0 ^+1 0 [WRTN] SD_SYSCALL_GATE<>0 ^+1 0 [XWLDA 0,-10,3] SD_SYSCALL_GATE<>0 ^+1 0 [] SD_SYSCALL_GATE<>0 ^+1 0 [ISZTS] SD_SYSCALL_GATE<>0 ^+1 0 [WPOPJ] SD_SYSCALL_GATE<>0 SD_PATCH #SD_PATCH\ #SD_PATCH+10\ SD_SYSCALL_GATE<>0 ^+1 [] [] SD_SYSCALL_GATE<>0 ;End of patch .D"'iO't"'iO,SD_SET_CLI_INIT_CMD.NOTE ;If the SD_CLI_INTERFACE routine is not declared as a hot key, ; and neither the CEO or WordPerfect interfaces are included, ; and the user program being linked does not call the Screen ; Demon routine SD_SET_CLI_INIT_CMD, a LINK error will result ; from the symbol SD_SET_CLI_INIT_CMD being undefined. ; ;As a work-around to suppress this error, add the following group ; of lines to your configuration file (e.g, SD_CONFIG.SR) immediately ; after the line that reads ; END_HOT_KEYS ; ; WARNING: These lines should ONLY be added if the above described ; LINK error actually occurs!!! ;Suppress LINK error for SD_SET_CLI_INIT_CMD being undefined .ENT SD_SET_CLI_INIT_CMD SD_SET_CLI_INIT_CMD: WSAVR 0 WRTN ;End of note .D"'d't"'j? .iINIT_KBD_LANG_3.00.03.PAT  ;--------------------------------------------------------------------- ; INIT_KBD_LANG_3.00.03.PAT 8-DEC-91 ; ;This optional patch causes Screen Demon to set the initial keyboard ; language to "1" rather than "0" (see terminal <36>Ff command). ; This is necessary if 8-bit characters are to be entered through ; the use of the key. ; ; Applies to programs linked with Screen Demon rev 3.00.03 SD_INIT+2135 143051 147051 SD_INIT+2137 121731 125731 SD_INIT+2145 100531 101131 ;End of patch .D")['t")[12D470_DEF_CHAR_3.00.03.PAT ;--------------------------------------------------------------------- ; D470_DEF_CHAR_3.00.03.PAT 10-DEC-91 ; ;On D470 terminals, the Define Characters command (<36>FR...) has ; four less argument characters than on other DG terminals, ; probably because the character cell is only 8x10, instead of 10x12. ; This patch causes Screen Demon to check the terminal type to ; determine the number of argument bytes to collect for this command. ; This problem affected WordPerfect Office and WordPerfect WP. ; ; This patch applies to programs linked with Screen Demon rev 3.00.03 SD_MONITOR_STRING+4516 [NLDAI 31,0] {LJMP #SD_PATCH,1} ^+1 [] [] ^+1 [WBR .+12] [] #SD_PATCH 0 [NLDAI 31,0] ^+1 0 [] ^+1 0 [LLDB 1,CON_MODELID*2,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WSNEI 54,1] ^+1 0 [] ^+1 0 [WSBI 4,0] ^+1 0 [LJMP SD_MONITOR_STRING+4532] ^+1 0 [] ^+1 0 [] SD_PATCH #SD_PATCH\ #SD_PATCH+13\ ^+1 [] [] ;End of patch .@"*['t"*i-SD_X_READ_CHAR.OB  SD_READ_CHAR4!&!;H#U2SD_UNSHARED_DATA_PARTSD_UNINITIALIZED_DATA_PARTSD_SHARED_DATA_PART1  5F^v ,?[t   .9IMRX^dv  ..RIPSD_CALL_HOT_KEY_ROUTINESD_REDRAWSD_FLUSH_IF_NEEDED_JSRSD_REMOVE_WINDOW_NO_FLUSHSD_CONSOLE_INPUT_PREPSD_RESET_TIMEOUTSSD_PROCESS_TIMEOUT_ERRORSD_EXECUTE_LIST_OF_CALLSSD_ENTER_HOT_KEYSD_EXIT_HOT_KEYSD_OUTPUT_STRINGSD_MONITOR_STRINGSD_LOG_CONSOLE_EVENTSD_CLOSE_CONSOLE_LOG_FILESD_FATAL_ERRORSD_TERMINATESD_REQUEST_INPUT_THROUGH_SPYSD_ACQUIRE_RESOURCESD_RELEASE_RESOURCESD_FIND_CONSOLE_CHANNEL_INFOHOT_KEY_ASSIGNMENTS_TABLEHOT_ESCAPE_KEYCON_FLAGSPID_FLAGSCON_LAST_DELIMSD_PERIODIC_CALLS_LISTSD_PRE_HOT_CALLS_LISTSD_POST_HOT_CALLS_LISTRETURN_INPUT_STRINGRETURN_INPUT_SIZEOBTAIN_INPUT_SIZERETURN_INPUT_DELIMITERCON_HOT_KEYCONLOG_OPEN_FLAGCTRLICTRLICTRL2CON_VMPID_VMSD_INPUT_SEMAPHORESD_INPUT_TASK_IDSD_INPUT_ABORT_ADDRSD_CUR_PIDCON_ACTIVE_PIDINPUT_ERROR_WINDOWSD_?IDGOTO_TARGET_TASKSSD_HOT_INPUT_TYPESD.SYSCALL  Im:z   , GSD_READ_CHARREADCHARSD_GETCHARSD_READ_CHAR_ONLYSD_GETCHAR_ONLYSD_EXTENDED_READ_CHARSD_XGETCHARSDXGetCharSD_SPY_REMOTE_GETCHARSD_DISCARD_TYPE_AHEADREAD_CHAR_CONSOLE_CHAN  G          G  @CONSOLE@INPUT0(  qrstuvwxabcdefgh12345678!"#$%&'(yz{|}~pijklmn`9:;<=>0)*+,-. \]^_)4I9 9 9 Y8)4Y9 9 I9 x)4Y9 9 I9 IY)x 8 x)4I9 Y9 9 )4Y9 9 9 I9Y9 YI fۂ щx)4I9 Y9 9 x)4I9 Y9 9 8)4Y9 9 9 I99 YI fۂ)   )I9 97)9:)9c8Y)9:)9c9 щy7) щx))@x)y)94Y9;9<=EGI9d9e9599I96A?)c) )Yi9cx)Y 9iY9 899)9I) 88Y)fxY 9 9 u88)) I9 9 9 ")) 9Ɖxb8i y99 9iY)8 ) xI9 Y)8) щ8 xiI)й ̫)) xy9 ))Љ)8)IIYI 9)y))I8I)8)9YY9YIyXxYIXxyIYyYIXyIyyiY щ } ~ iY))) 8 89 )))8 ) щx x  yɂ8YI)I9 d;; 0*01 >C OVY8^8af8i9/67$!. "/ -!%)(*,+1,4:;:? D:JM)P+U(e)i+n r x {           ()  )/"/-      l щ))Y9I)) 8)I O) )YY)8) xY1)8 ?)494 cCG93) 8) 89) ) )I9 ) 8Y)) ) I)Y))x) 3)ٮx)f  3)y9 #yyi݁ i) )ˉYʩ)ci9c)h)YY 3»x))YYYY)Y1) )I))c9c щ);9Y9 ~ 7)) 8)IY)xY12x8x) Q ~û)YY)Y) i)c9c>Y))) ~)xxi)Y1) ))f8Y i9Y ~))'*/1092</B T af/l&or%ux'{~//#/ 3/"11911105 4 3;3';.41/92< ?#HK0o/w2/ 34/ #/$3 2#$9 0 .D"}i{'t"}i|N?RETURN_FXTD_3.00.03.PAT ;--------------------------------------------------------------------- ; ?RETURN_FXTD_3.00.03.PAT 3-MAR-92 ; ;This patch causes Screen Demon to disable fixed point traps ; when processing a ?RETURN system call. If enabled by the ; host program, this would occasionally cause a fatal error. ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 35167 163631 123571 35170 163631 145170 46034 627 775 ;End of patch .D#m't#maHURGENT_MAIL_NOTYAH_3.00.03.PAT a;--------------------------------------------------------------------- ; URGENT_MAIL_NOTYAH_3.00.03.PAT 18-MAY-92 ; ;This patch causes Screen Demon to discard any typed-ahead characters ; when automatically calling the Read Mail function because of ; urgent mail. This prevents the typed-ahead characters from ; being interpreted as Mail commands. ; ; Applies to programs linked with Screen Demon rev 3.00.03 SD_CHECK_FOR_NEW_MAIL+166 [LCALL SD_READ_MAIL,1,0] {LCALL #SD_PATCH,1,0} @(SD_READ_MAIL+1)<>0 ^+1 [] [] @(SD_READ_MAIL+1)<>0 ^+1 [] [] @(SD_READ_MAIL+1)<>0 ^+1 [] [] @(SD_READ_MAIL+1)<>0 #SD_PATCH 0 [LLEF 0,ICTRL2,1] @(SD_READ_MAIL+1)<>0 ^+1 0 [] @(SD_READ_MAIL+1)<>0 ^+1 0 [] @(SD_READ_MAIL+1)<>0 ^+1 0 [NLDAI 17,1] @(SD_READ_MAIL+1)<>0 ^+1 0 [] @(SD_READ_MAIL+1)<>0 ^+1 0 [WBTO 0,1] @(SD_READ_MAIL+1)<>0 ^+1 0 [LJMP SD_READ_MAIL,1] @(SD_READ_MAIL+1)<>0 ^+1 0 [] @(SD_READ_MAIL+1)<>0 ^+1 0 [] @(SD_READ_MAIL+1)<>0 SD_PATCH #SD_PATCH\ #SD_PATCH+11\ @(SD_READ_MAIL+1)<>0 ^+1 [] [] @(SD_READ_MAIL+1)<>0 ;End of patch .D"V't"VMsICX_1.4_TIMEOUT_3.00.03.PAT M;--------------------------------------------------------------------- ; ICX_1.4_TIMEOUT_3.00.03.PAT 27-MAY-92 ; ;This patch causes the ICOBOL rev 1.40 interpreter to return an ; ESCAPE KEY value of 99 if a console timeout occurs, instead ; of aborting with a "Runtime System Panic". This patch is ; necessary if an ACCEPT could terminate because of a timeout, ; via either the SD_SET_ACCEPT_TIMEOUT call in Screen Demon ; rev 3.00.03, or a ?STOM system call before the input. ; ; This patch affects ICX routines only, not Screen Demon. The ; SD_PATCH path area is used for convenience, but this patch could ; be applied to a standard ICX if it is changed to use ICX's normal ; patch area instead. ; ; For Screen Demon rev 3.00.03, it is suggested that this patch be ; appended to the SD_POSSESS_ICX_1.40.PAT file. RDFD+1354 [NLDAI 67,1] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [SUB# 0,1,SZR] [] #SD_PATCH 0 [WSNEI 76,0] ^+1 0 [] ^+1 0 [WBR .+5] ^+1 0 [WSNEI 67,0] ^+1 0 [] ^+1 0 [ISZTS] ^+1 0 [WPOPJ] ^+1 0 [WPOP 1,1] ^+1 0 [XNLDA 1,10,2] ^+1 0 [] ^+1 0 [XWADD 1,4,2] ^+1 0 [] ^+1 0 [WSUB 0,0] ^+1 0 [WSTB 1,0] ^+1 0 [NLDAI 99.,0] ^+1 0 [] ^+1 0 [LJMP RDFD+1100,1] ^+1 0 [] ^+1 0 [] SD_PATCH #SD_PATCH\ #SD_PATCH+23\ ^+1 [] [] ;End of patch .D"Lb't"Ld JNO_TURBO_TABS_IR_3.00.03.PAT  ;--------------------------------------------------------------------- ; NO_TURBO_TABS_IR_3.00.03.PAT 9-JUL-92 ; ;This patch corrects a problem with handling of TAB characters when ; running with Turbo mode off. In programs that did nonbinary ; ?WRITEs with a cursor address specified in the packet, PMGR ; was not aware of the cursor position because of the way that ; Screen Demon processed the system call. Consequently, TABs ; would not necessarily be expanded properly in that call and ; subsequent calls (if /ST characteristics was on). This was ; noticed in SED. ; Applies ONLY to the file SD_INTERFACE_IR.OB in Screen Demon rev 3.00.03 %USERFILE 7410 127351 100370 7543 177051 101033 7544 1000 101033 7545 100470 115070 ;End of patch .D#m 't#mIMENU_COL_3.00.03.PAT ;--------------------------------------------------------------------- ; MENU_COL_3.00.03.PAT 17-JUL-92 ; ;This patch corrects a problem with SD_MENU and SD_POP_UP_MENU that ; caused 3 to be added to the given menu column number if the menu ; was displayed in a box. ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 344610 142271 101033 344620 142611 101033 ;End of patch .D#f`'t#f`Q'ICX_1.50_TIMEOUT_3.00.03.PAT Q;--------------------------------------------------------------------- ; ICX_1.50_TIMEOUT_3.00.03.PAT 4-MAR-93 ; ;This patch causes the ICOBOL rev 1.50 interpreter to return an ; ESCAPE KEY value of 99 if a console timeout occurs, instead ; of aborting with a "Runtime System Panic". This patch is ; necessary if an ACCEPT could terminate because of a timeout, ; via either the SD_SET_ACCEPT_TIMEOUT call in Screen Demon ; rev 3.00.03, or a ?STOM system call before the input. ; ; This patch affects ICX routines only, not Screen Demon. The ; SD_PATCH patch area is used for convenience, but this patch could ; be applied to a standard ICX if it is changed to use ICX's normal ; patch area instead. ; ; For Screen Demon rev 3.00.03, it is suggested that this patch be ; appended to the SD_POSSESS_ICX_1.50.PAT file. SETDLM+1134 [NLDAI 67,1] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [SUB# 0,1,SZR] [] #SD_PATCH 0 [WSNEI 76,0] ^+1 0 [] ^+1 0 [WBR .+5] ^+1 0 [WSNEI 67,0] ^+1 0 [] ^+1 0 [ISZTS] ^+1 0 [WPOPJ] ^+1 0 [WPOP 1,1] ^+1 0 [XNLDA 1,10,2] ^+1 0 [] ^+1 0 [XWADD 1,4,2] ^+1 0 [] ^+1 0 [WSUB 0,0] ^+1 0 [WSTB 1,0] ^+1 0 [NLDAI 99.,0] ^+1 0 [] ^+1 0 [LJMP SETDLM+667,1] ^+1 0 [] ^+1 0 [] SD_PATCH #SD_PATCH\ #SD_PATCH+23\ ^+1 [] [] ;End of patch .D#kf't#nhPLAY_STOP_3.00.03.PAT ;--------------------------------------------------------------------- ; PLAY_STOP_3.00.03.PAT 23-MAR-93 ; ;This patch corrects a problem with SD_PLAY where pressing ; to exit the program could cause Play to hang if the display task ; was not paused at the time. ; Applies ONLY to SD_PLAY.PR in Screen Demon rev 3.00.03 SD_PLAY+1143 [WSUB 0,0] 101711 SD_PLAY<>0 ^+1 125711 (#(SD_PLAY+717)+SD_PLAY+717)&17777777777\ SD_PLAY<>0 ^+1 @. [] SD_PLAY<>0 ^+1 @. [NSALA 3,0] SD_PLAY<>0 ^+1 [WSUB 2,2] [] SD_PLAY<>0 ^+1 [LJSR SD.SYSCALL,1] [SKIP] SD_PLAY<>0 ^+1 [] [WBR .+4] SD_PLAY<>0 ^+1 [] {LJMP #SD_PATCH,1} SD_PLAY<>0 ^+1 514 [] SD_PLAY<>0 ^+1 [NOP] [] SD_PLAY<>0 #SD_PATCH 0 101751 SD_PLAY<>0 ^+1 0 (#(SD_PLAY+717)+SD_PLAY+717)&17777777777\ SD_PLAY<>0 ^+1 0 [] SD_PLAY<>0 ^+1 0 [NLDAI 16,1] SD_PLAY<>0 ^+1 0 [] SD_PLAY<>0 ^+1 0 [WBTO 0,1] SD_PLAY<>0 ^+1 0 [NLDAI 1000.,0] SD_PLAY<>0 ^+1 0 [] SD_PLAY<>0 ^+1 0 [WSUB 1,1] SD_PLAY<>0 ^+1 0 [WSUB 2,2] SD_PLAY<>0 ^+1 0 [LJSR SD.SYSCALL,1] SD_PLAY<>0 ^+1 0 [] SD_PLAY<>0 ^+1 0 [] SD_PLAY<>0 ^+1 0 263 SD_PLAY<>0 ^+1 0 [NOP] SD_PLAY<>0 ^+1 0 [LJMP SD_PLAY+1143,1] SD_PLAY<>0 ^+1 0 [] SD_PLAY<>0 ^+1 0 [] SD_PLAY<>0 SD_PATCH #SD_PATCH\ #SD_PATCH+22\ SD_PLAY<>0 ^+1 [] [] SD_PLAY<>0 ;End of patch .D# ~'t# OUTPUT_OFC_3.00.03.PAT ;--------------------------------------------------------------------- ; OUTPUT_OFC_3.00.03.PAT 22-JUL-92 ; ;This patch forces the /OFC (output flow control) characteristic on ; during Screen Demon initialization. This will prevent possible ; dropped characters on outputs to the console before the first ; input occurs. ; ; Note: This patch is not necessary if /OFC is already on when ; calling the Screen Demon program. ; ; Applies to programs linked with Screen Demon rev 3.00.03 SD_INIT+233 [LWLDA 0,SD_INIT_CALLS_LIST,1] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [] [] #SD_PATCH 0 [LLEF 2,ACTUAL_CON_CHARACTERISTICS,1] ^+1 0 [] ^+1 0 [] ^+1 0 [XNLDA 0,4,2] ^+1 0 [] ^+1 0 [IORI 40000,0] ^+1 0 [] ^+1 0 [XNSTA 0,4,2] ^+1 0 [] ^+1 0 [LPSHJ SD_CONSOLE_SET_CHARACTERISTICS,1] ^+1 0 [] ^+1 0 [] ^+1 0 [LWLDA 0,SD_INIT_CALLS_LIST,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+20\ ^+1 [] [] ;End of patch .D#!d't#!dMVW_3.00.03.OPTPAT ;--------------------------------------------------------------------- ; MVW_3.00.03.PAT 2-APR-92 ; ; This patch provides work-arounds for various problems experienced ; when running MultiView Windows from Digital Dynamics, Inc. ; under Screen Demon rev 3.00.03 ; ; This patch should be applied ONLY to MVW2.PR, and requires ; that no function keys be declared as hot keys, translated keys, ; or the hot escape key. FORCE_ON_CON_CHARACTERISTICS+1 1604 1600 ;;;SD_INPUT_FIELD+1324 [WSGE 0,0] [WUSGT 2,0] SD_INPUT_FIELD+3174 [WBR .+2] [NOP] SD_INPUT_FIELD+5062 [WSEQI 36,0] [LNSTA 0,CON_LAST_DELIM,1] ^+1 [] [] ^+1 [WBR .+6] [] ^+1 [WINC 2,2] [WSEQI 36,0] ^+1 [WLDB 2,0] [] ^+1 [WIORI 200,0] [WBR .+6] ^+1 [] [XJMP (.+436),1] ^+1 [] [] ;;;SD_INPUT_FIELD+4737 [WSBI 2,0] {LPSHJ #SD_PATCH,1} ;;;^+1 [WSGE 0,1] [] ;;;^+1 [WBR .+21] [] ;;; adjusted for NO_ECHO_RESTART_3.00.03.PAT: SD_INPUT_FIELD+4737 [XPSHJ SD_INPUT_FIELD+1120,1] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [WBR .+21] [] SD_INPUT_FIELD+5017 [XNLDA 2,36,3] {LPSHJ #SD_PATCH+16,1} ^+1 [] [] ^+1 [WSGT 1,2] [] #SD_PATCH 0 [WSBI 2,0] ;;;This instr causes problems with F11 (cut) in SED ;;;^+1 0 [LNSTA 0,FLDSCRNPKT+1,1] ;;;^+1 0 [] ;;;^+1 0 [] ^+1 0 [NOP] ^+1 0 [NOP] ^+1 0 [NOP] ^+1 0 [WSLT 0,1] ^+1 0 [WPOPJ] ^+1 0 [LNLDA 1,FLDPKT+10,1] ^+1 0 [] ^+1 0 [] ^+1 0 [XPSHJ (.+13),1] ^+1 0 [] ^+1 0 [LJMP SD_INPUT_FIELD+4762,1] ^+1 0 [] ^+1 0 [] #SD_PATCH+16 0 [XNLDA 2,36,3] ^+1 0 [] ^+1 0 [WSGT 1,2] ^+1 0 [WBR .+3] ^+1 0 [ISZTS] ^+1 0 [WPOPJ] ^+1 0 [LNLDA 2,VIRTUAL_CON_CHARACTERISTICS+1,1] ^+1 0 [] ^+1 0 [] ^+1 0 [NSANA 4,2] ^+1 0 [] ^+1 0 [WPOPJ] ^+1 0 [WSGTI 1,1] ^+1 0 [] ^+1 0 [WPOPJ] ^+1 0 [LWLDA 2,FLDPKT+4,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WADD 1,2] ^+1 0 [WSBI 2,2] ^+1 0 [WLDB 2,1] ^+1 0 [WSEQI 36,1] ^+1 0 [] ^+1 0 [WPOPJ] ^+1 0 [WPOP 0,0] ^+1 0 [WINC 2,2] ^+1 0 [WLDB 2,0] ^+1 0 [LNSTA 0,CON_LAST_DELIM,1] ^+1 0 [] ^+1 0 [] ^+1 0 [LJMP SD_INPUT_FIELD+5060,1] ^+1 0 [] ^+1 0 [] SD_PATCH #SD_PATCH\ #SD_PATCH+57\ ^+1 [] [] SD_SYSCALL_INTERCEPTOR+2236 [LNLDA 3,VIRTUAL_CON_CHARACTERISTICS+1,1] [XNLDA 3,10,2] ^+1 [] [] ^+1 [] [XNLDA 1,7,2] ^+1 [WNADI 177600,0] [] ^+1 [] [WSGT 3,1] ^+1 [NSANA 4,3] [WBR .+11] ^+1 [] [XNSTA 1,10,2] ^+1 [WSGT 0,0] [] ^+1 [WBR .+6] [LNLDA 0,CON_LAST_DELIM,1] ^+1 [XNSBI 1,10,2] [] ^+1 [] [] SD_SYSCALL_INTERCEPTOR+2346 [XPSHJ (.+537),1] {LJMP #SD_PATCH,1} ^+1 [] [] ^+1 [WPOP 2,2] [] #SD_PATCH 0 [WSEQI 67,0] ^+1 0 [] ^+1 0 [WBR .+47] ^+1 0 [LDATS 2] ^+1 0 [XNLDA 3,10,2] ^+1 0 [] ^+1 0 [XNLDA 1,7,2] ^+1 0 [] ^+1 0 [WSGT 3,1] ^+1 0 [WBR .+12] ^+1 0 [XNSTA 1,10,2] ^+1 0 [] ^+1 0 [LNLDA 2,CON_LAST_DELIM,1] ^+1 0 [] ^+1 0 [] ^+1 0 [LNSTA 2,(SD_?IDGOTO_TARGET_TASKS-43),1] ^+1 0 [] ^+1 0 [] ^+1 0 [LDATS 2] ^+1 0 [WSEQ 3,1] ^+1 0 [WBR .+25] ^+1 0 [LNLDA 3,VIRTUAL_CON_CHARACTERISTICS+1,1] ^+1 0 [] ^+1 0 [] ^+1 0 [NSANA 4,3] ^+1 0 [] ^+1 0 [WBR .+17] ^+1 0 [WSGTI 1,1] ^+1 0 [] ^+1 0 [WBR .+14] ^+1 0 [XWLDA 3,4,2] ^+1 0 [] ^+1 0 [WADD 1,3] ^+1 0 [WSBI 2,3] ^+1 0 [WLDB 3,1] ^+1 0 [WSEQI 36,1] ^+1 0 [] ^+1 0 [WBR .+4] ^+1 0 [LJMP SD_SYSCALL_INTERCEPTOR+2254,1] ^+1 0 [] ^+1 0 [] ^+1 0 [LPSHJ SD_SYSCALL_INTERCEPTOR+3105,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WPOP 2,2] ^+1 0 [LJMP SD_SYSCALL_INTERCEPTOR+2351,1] ^+1 0 [] ^+1 0 [] SD_PATCH #SD_PATCH\ #SD_PATCH+60\ ^+1 [] [] ;End of patch .D"x't"xpSCREEN_SAVER_3.00.03.OPTPAT ;--------------------------------------------------------------------- ; SCREEN_SAVER_3.00.03.OPTPAT 21-APR-92 ; ;This optional patch modifies the way Screen Demon's screen saver ; routine blanks the screen on D400-series terminals. The standard ; method may not work ; properly with some PC terminal emulator programs, such as PopTerm, ; which do not fully emulate the Set Cursor Type command. ; The method used by this patch will work correctly with these ; emulators as well as actual DG terminals. ; ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 73300 144511 125131 73453 31014 30014 ;End of patch .D"p't"p!NO_?ESRD_NO_?ESBB_3.00.03.PAT ;--------------------------------------------------------------------- ; NO_?ESRD_NO_?ESBB_3.00.03.PAT 2-JUN-92 ; ;This patch forces the ?ESBB screen management flag bit off for a console ; ?READ unless the ?ESRD flag is also set. This is a possible work-around ; for an AOS/VS II 2.10 bug where, contrary to documentation, ?ESBB is NOT ; ignored when ?ESRD is not set, but causes hidden input buffer contents ; to be returned from the ?READ. ; Applies to programs linked with Screen Demon rev 3.00.03 SD_INPUT_FIELD+2437 [LWLDA 0,SD_PRE_?READ_CALLS_LIST,1] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [] [] #SD_PATCH 0 [LLEF 2,FLDSCRNPKT,1] ^+1 0 [] ^+1 0 [] ^+1 0 [NLDAI 13,1] ^+1 0 [] ^+1 0 [XNLDA 0,0,2] ^+1 0 [] ^+1 0 [NSANA 40000,0] ^+1 0 [] ^+1 0 [WBTZ 2,1] ^+1 0 [LWLDA 0,SD_PRE_?READ_CALLS_LIST,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+16\ ^+1 [] [] ;End of patch .D" 't" SHORT_MAIL_3.00.03.PAT ;--------------------------------------------------------------------- ; SHORT_MAIL_3.00.03.PAT 10-JUN-92 ; ;This patch corrects a problem with reading Screen Demon mail where ; the message file did not end with a delimiter, such as NEW LINE. ; Such a message file could be created using the SD_SEND_MAIL call, ; but would not be displayed corrected by the Read Mail hot key. ; Applies to programs linked with Screen Demon rev 3.00.03 sd_nread+61 [WNEG 0,0] {LPSHJ #SD_PATCH,1} sd_nread<>0 ^+1 [XWSTA 0,-10,3] [] sd_nread<>0 ^+1 [] [] sd_nread<>0 #SD_PATCH 0 [WSEQI 30,0] sd_nread<>0 ^+1 0 [] sd_nread<>0 ^+1 0 [WBR .+6] sd_nread<>0 ^+1 0 [XNLDA 1,22,3] sd_nread<>0 ^+1 0 [] sd_nread<>0 ^+1 0 [ISZTS] sd_nread<>0 ^+1 0 [WSLE 1,1] sd_nread<>0 ^+1 0 [WPOPJ] sd_nread<>0 ^+1 0 [WNEG 0,0] sd_nread<>0 ^+1 0 [XWSTA 0,-10,3] sd_nread<>0 ^+1 0 [] sd_nread<>0 ^+1 0 [WRTN] sd_nread<>0 SD_PATCH #SD_PATCH\ #SD_PATCH+14\ sd_nread<>0 ^+1 [] [] sd_nread<>0 ;End of patch .D$^4't$^5tENO_?ESBB_3.00.03.OPTPAT t;--------------------------------------------------------------------- ; NO_?ESBB_3.00.03.PAT 6-AUG-92 ; ;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 ; and rev 2.20 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, because it will result in ; less efficient console I/O. ; ; NOTE2: If this patch is installed, the Screen Demon configuration file ; option TRIM_SPACE_UNDERSCORE_ON_INPUT? must be set to NO. ; ; Applies to programs linked with Screen Demon rev 3.00.03 SD_INPUT_FIELD+1267 104271 101033 SD_INPUT_FIELD+172 20 0 SD_INPUT_FIELD+567 20 0 SD_INPUT_FIELD+643 20 0 ;End of patch .D#x't#yBEEP_TIMING_3.00.03.PAT ;--------------------------------------------------------------------- ; BEEP_TIMING_3.00.03.PAT 29-JUL-92 ; ;This patch corrects a problem with the timing of beeps when Turbo mode ; is in effect. In some circumstances, if a program displayed a bell ; character after it had displayed other characters, Screen Demon ; would actually send the bell before the other characters. This ; could be confusing to the operator if a large number of characters ; were being displayed. ; Applies to programs linked with Screen Demon 3.00.03 SD_FLUSH+435 [LLEF 2,ICTRL,1] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [] [] #SD_PATCH 0 [LLEF 2,ICTRL,1] ^+1 0 [] ^+1 0 [] ^+1 0 [XNLDA 1,3,3] ^+1 0 [] ^+1 0 [WSNE 1,1] ^+1 0 [WPOPJ] ^+1 0 [WPOP 1,1] ^+1 0 [LJMP SD_FLUSH+501,1] ^+1 0 [] ^+1 0 [] SD_PATCH #SD_PATCH\ #SD_PATCH+13\ ^+1 [] [] ;End of patch .D#L't#LI5OBTAIN_INPUT_3.00.03.PAT ;--------------------------------------------------------------------- ; OBTAIN_INPUT_3.00.03.PAT 11-FEB-93 ; ;This patch corrects a problem with the SD_OBTAIN_INPUT call. If more than ; one argument was supplied, a fatal error would result. ; Applies to programs linked with Screen Demon rev 3.00.03 SD_OBTAIN_INPUT+16 [XNLDA 3,0,2] [LNLDA 1,OBTAIN_INPUT_SIZE,1] ^+1 [] [] ^+1 [LNLDA 0,OBTAIN_INPUT_SIZE,1] [] ^+1 [] [LLDB 0,(CON_HOT_FROM)*2,1] ^+1 [] [] ^+1 [LLDB 1,(CON_HOT_FROM)*2,1] [] ^+1 [] [WSGTI 40,0] ^+1 [] [] ^+1 [WSGTI 40,1] [WADC 1,1] ^+1 [] [XNLDA 0,0,2] ^+1 [WADC 0,0] [] ^+1 [WSLE 0,3] [WSLE 1,0] ^+1 [WMOV 3,0] [WMOV 0,1] ^+1 [XNSTA 0,0,2] [XNSTA 1,0,2] ^+1 [] [] ^+1 [WSGE 0,0] [WSGE 1,1] ^+1 [WBR SD_OBTAIN_INPUT+55] [WBR SD_OBTAIN_INPUT+55] ^+1 [WPSH 3,0] [WPSH 0,1] ^+1 [WMOV 0,1] [WMOV 1,0] ;End of patch .D#'t#' BINARY_READ_?IDGOTO_3.00.03.PAT ;--------------------------------------------------------------------- ; BINARY_READ_?IDGOTO_3.00.03.PAT 8-MAR-93 ; ;This patch corrects a problem where a fatal error would occur if a binary ; ?READ from the console, such as a Screen Demon SD_READ_CHAR call, was ; interrupted by an ?IDGOTO system call. ; Applies to programs linked with Screen Demon rev 3.00.03 ;Patch for standard version from SCREEN_DEMON.LB SD_READ_CHAR+322 [XLDB 1,14,3] [XLEFB 1,14,3] SD_XGETCHAR=0 ^+1 [] [] SD_XGETCHAR=0 ;Patch if SD_X_READ_CHAR.OB is linked with the program SD_READ_CHAR+356 [XLDB 1,14,3] [XLEFB 1,14,3] SD_XGETCHAR<>0 ^+1 [] [] SD_XGETCHAR<>0 ;End of patch .D% zo't% zoڵ SD_MESSAGE_ONLY_JSR_3.00.03.PAT ;--------------------------------------------------------------------- ; SD_MESSAGE_ONLY_JSR_3.00.03.PAT 23-JUL-93 ; modified 17-DEC-93 ; ;This patch corrects a problem in the SD_MESSAGE_ONLY_JSR routine. The code ; would fall into the SD_MESSAGE_JSR routine, and clear the "ONLY" flag. ; This problem does not affect any of the COBOL-callable SD_MESSAGE calls. ; Applies to programs linked with Screen Demon 3.00.03 SD_MESSAGE_ONLY_JSR+5 [XWLDA 0,-10,3] [WBR SD_MESSAGE_JSR+5] ^+1 [] [NOP] ;End of patch .D%f't%kV3DECL_USER_SIG_HDLR_3.00.03.PAT V;--------------------------------------------------------------------- ; DECL_USER_SIG_HDLR_3.00.03.PAT 20-DEC-93 ; ;This patch causes the undocumented SD_DECLARE_SIGNAL_HANDLER routine ; to function the same as in revision 3.52, so that the address of the ; previous user handler routine is returned in AC0. ; This patch is required for Who_Locked_It? rev 2.0 to function properly ; under Screen Demon rev 3.00.03 ; Applies to programs linked with Screen Demon rev 3.00.03 SD_DECLARE_SIGNAL_HANDLER [LWSTA 0,?KWAIT_CHAR+4,1] {LJMP #SD_PATCH,1} ^+1 [] [] ^+1 [] [] #SD_PATCH 0 [WPSH 3,3] ^+1 0 [LWLDA 3,?KWAIT_CHAR+4,1] ^+1 0 [] ^+1 0 [] ^+1 0 [LWSTA 0,?KWAIT_CHAR+4,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WMOV 3,0] ^+1 0 [WPOP 3,3] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+12\ ^+1 [] [] ;End of patch .D%Džr't%dž@Y.STAMP_REBUILD_3.00.03.PAT @;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.00.03 SD_INPUT_MAIL+2446 [XWSTA 1,14,2] {LPSHJ #SD_PATCH,1} SD_INPUT_MAIL<>0 ^+1 [] [] ^ ^+1 [WMOV 0,1] [] ^ #SD_PATCH 0 [XWSTA 1,14,2] ^ ^+1 0 [] ^ ^+1 0 [LWLDA 1,SD_PO_BOX_CHAN+205,1] ^ ^+1 0 [] ^ ^+1 0 [] ^ ^+1 0 [WSBI 1,1] ^ ^+1 0 [WSTB 1,0] ^ ^+1 0 [WMOV 0,1] ^ ^+1 0 [WPOPJ] ^ SD_INPUT_MAIL+2652 [LCALL SD_REMOVE_WINDOW,1,0] {LPSHJ #SD_PATCH+11,1} ^ ^+1 [] [] ^ ^+1 [] [] ^ ^+1 [] [WRTN] ^ #SD_PATCH+11 0 [LWLDA 1,SD_PO_BOX_CHAN+205,1] ^ ^+1 0 [] ^ ^+1 0 [] ^ ^+1 0 [WSUB 0,0] ^ ^+1 0 [WSTB 1,0] ^ ^+1 0 [WSBI 1,1] ^ ^+1 0 [NLDAI 72,0] ^ ^+1 0 [] ^ ^+1 0 [WSTB 1,0] ^ ^+1 0 [LCALL SD_REMOVE_WINDOW,1,0] ^ ^+1 0 [] ^ ^+1 0 [] ^ ^+1 0 [] ^ ^+1 0 [WPOPJ] ^ SD_PATCH #SD_PATCH\ #SD_PATCH+27\ ^ ^+1 [] [] ^ ;End of patch .D"Y}'t"Yw| SAV_RESTORE_SCRN_3.00.03.OPTPAT ;--------------------------------------------------------------------- ; SAV_RESTORE_SCRN_3.00.03.OPTPAT 13-MAY-92 ; ;This patch activates Screen Demon support for the Save/Restore Screen ; feature of newer DG terminals. The SD_SAVE_RESTORE_SCREEN.OB module ; must have been linked with the program in order for this patch to ; apply. SD_MONITOR_STRING+3010 [LDSP 0,XFUNTBL,1] [LJMP SD_XFUNTBL_DISPATCH,1] SD_XFUNTBL_DISPATCH ^+1 [] [] SD_XFUNTBL_DISPATCH ^+1 [] [] SD_XFUNTBL_DISPATCH SD_REMOVE_WINDOW+71 [LPSHJ SD_EXECUTE_LIST_OF_CALLS,1] [LPSHJ SD_REMOVE_CLONE_WINDOW,1] SD_XFUNTBL_DISPATCH ^+1 [] [] SD_XFUNTBL_DISPATCH ^+1 [] [] SD_XFUNTBL_DISPATCH ;End of patch .D"S/'t"S|CONLOG_SFALT_3.00.03.PAT |;--------------------------------------------------------------------- ; CONLOG_SFALT_3.00.03.PAT 20-MAY-92 ; ;This patch prevents a stack fault from occurring when a record is ; built to be written to the console log file. This would be a ; fatal error in certain cases when running Screen Demon in an ; inner ring. This was responsible for hot key programs such as ; the Calculator mysteriously exiting after displaying their screen. ; Applies to programs linked with Screen Demon rev 3.00.03 SD_LOG_CONSOLE_EVENT+643 [WPSH 2,2] {LJMP #SD_PATCH,1} ^+1 [LDASP 2] [] ^+1 [XWSTA 2,204,3] [] ^+1 [] [NOP] #SD_PATCH 0 [LPSHJ SWITCH_TO_SCREEN_DEMON_STACK,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WPSH 2,2] ^+1 0 [LDASP 2] ^+1 0 [XWSTA 2,204,3] ^+1 0 [] ^+1 0 [LJMP SD_LOG_CONSOLE_EVENT+647,1] ^+1 0 [] ^+1 0 [] SD_LOG_CONSOLE_EVENT+1057 [WNEG 0,0] {LJMP #SD_PATCH+12,1} ^+1 [WMSP 0] [] ^+1 [WPOPJ] [] #SD_PATCH+12 0 [WNEG 0,0] ^+1 0 [WMSP 0] ^+1 0 [LPSHJ RESTORE_USER_STACK,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+20\ ^+1 [] [] ;End of patch .D"p't"pGET_IMAGE_ARGS_3.00.03.PAT ;--------------------------------------------------------------------- ; GET_IMAGE_ARGS_3.00.03.PAT 28-MAY-92 ; ;This patch corrects a problem with the SD_GET_IMAGE call where ; the optional arguments specifying the desired image size ; were sometimes ignored, resulting in a full-size image ; being returned. ; Applies to programs linked with Screen Demon rev 3.00.03 SD_GET_IMAGE+24 [XWLDA 0,-14,3] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [WSGTI 1,1] [] ^+1 [] [SKIP] #SD_PATCH 0 [XWLDA 0,-14,3] ^+1 0 [] ^+1 0 [XNLDA 1,-11,3] ^+1 0 [] ^+1 0 [WSGTI 1,1] ^+1 0 [] ^+1 0 [ISZTS] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+10\ ^+1 [] [] ;End of patch .@#&V<'t#&VNOSD_SHIFT_VIEWING_AREA.OB  SD_SHIFT_VIEWING_AREA"#!/SD_SHARED_DATA_PARTSD_UNSHARED_DATA_PART=$7JOT XbSD_ACQUIRE_RESOURCESD_RELEASE_RESOURCEAWDSCICTRLCTRLTIB_WNDDSCEXTC_SD_PRE_INPUT_CALLS+ :"SD_SHIFT_VIEWING_AREA_LEFTSD_SHIFT_VIEWING_AREA_RIGHT  g)Y)Y)y))iyx)YY)y))))P)y)YXy)I9) ) )    % 2 5D K S V \d   .D#kye't#kznFLUSH_INTERFERENCE_3.00.03.PAT ;--------------------------------------------------------------------- ; FLUSH_INTERFERENCE_3.00.03.PAT 06-OCT-92 ; modified 27-OCT-92 ; ;If two tasks attempted a screen flush at about the same time, one of ; the tasks skipped its flush, to prevent duplicate terminal output. ; However, in rare cases, depending on how the tasks were scheduled, ; it was possible for the first task to miss some information that ; should have been flushed, resulting in an incompletely updated ; terminal screen. This was noticed in programs that called SD_MENU ; soon after startup, where the menu entries sometimes did not appear ; on the screen immediately, even though the menu routine was actually ; waiting for user input. ; Applies to programs linked with Screen Demon rev 3.00.03 SD_FLUSH+52 @. [WBR SD_FLUSH+122] ^+1 @. [LLEF 0,CTRL,1] ^+1 @. [] ^+1 [NLDAI 0,1] [] ^+1 [] [WBR SD_FLUSH+143] ^+1 [WSZBO 0,1] [NOP] ^+1 [WRTN] [NOP] SD_FLUSH+100 [WBR SD_FLUSH+122] [WBR SD_FLUSH+53] SD_FLUSH+120 [XJMP SD_FLUSH+554,1] [XJMP SD_FLUSH+536,1] ^+1 [] [] SD_FLUSH+140 [LLEF 0,CTRL,1] [WBR SD_FLUSH+61] ^+1 [] [NOP] ^+1 [] [NOP] ;End of patch .D#f't#fQ'ICX_1.53_TIMEOUT_3.00.03.PAT Q;--------------------------------------------------------------------- ; ICX_1.53_TIMEOUT_3.00.03.PAT 4-MAR-93 ; ;This patch causes the ICOBOL rev 1.53 interpreter to return an ; ESCAPE KEY value of 99 if a console timeout occurs, instead ; of aborting with a "Runtime System Panic". This patch is ; necessary if an ACCEPT could terminate because of a timeout, ; via either the SD_SET_ACCEPT_TIMEOUT call in Screen Demon ; rev 3.00.03, or a ?STOM system call before the input. ; ; This patch affects ICX routines only, not Screen Demon. The ; SD_PATCH patch area is used for convenience, but this patch could ; be applied to a standard ICX if it is changed to use ICX's normal ; patch area instead. ; ; For Screen Demon rev 3.00.03, it is suggested that this patch be ; appended to the SD_POSSESS_ICX_1.53.PAT file. SETDLM+1164 [NLDAI 67,1] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [SUB# 0,1,SZR] [] #SD_PATCH 0 [WSNEI 76,0] ^+1 0 [] ^+1 0 [WBR .+5] ^+1 0 [WSNEI 67,0] ^+1 0 [] ^+1 0 [ISZTS] ^+1 0 [WPOPJ] ^+1 0 [WPOP 1,1] ^+1 0 [XNLDA 1,10,2] ^+1 0 [] ^+1 0 [XWADD 1,4,2] ^+1 0 [] ^+1 0 [WSUB 0,0] ^+1 0 [WSTB 1,0] ^+1 0 [NLDAI 99.,0] ^+1 0 [] ^+1 0 [LJMP SETDLM+717,1] ^+1 0 [] ^+1 0 [] SD_PATCH #SD_PATCH\ #SD_PATCH+23\ ^+1 [] [] ;End of patch .D!h't$VMORETASKS.CLI comment ***** MORETASKS.CLI ***** [!equal,,[!path %1%.PR]] write File does not exist:,,%1%.PR [!else] push prompt pop superuser on comment Unless this has already been done, save the original program comment under a backup name, and make a new copy to patch. [!equal,,[!path %1%.PR.BU]] rename/1=error/2=error %1%.PR %1%.PR.BU copy [!efile %1%].PR %1%.PR.BU [!end] comment Patch the new program file x/m fed/u/l=@NULL [!efile %1%].PR ; Set the link in the last TCB (or list header) to the next avail TCB ((@412=1)&441)!((@412>1)&(240+(@412*206)))\446+(@412*206);3 ; Insert next avail TCB in free TCB list (prev link = old last ptr) 446+(@412*206)\.+206;3 .+2\#443 ; Insert second avail TCB in free TCB list .+204\-1 .+2\.-210;3 ; Set last free TCB pointer to last TCB just inserted 443\654+(@412*206);3 ; Bump number of tasks up by 2 412/@.+2 ) pop [!end] .W$x~'t$x~,N&URGENT_MAIL_DELIV_3.00.03.PAT ,;--------------------------------------------------------------------- ; URGENT_MAIL_DELIV_3.00.03.PAT 23-APR-93 ; modified 23-JUL-93 ; (conditionals added) ; ;This patch corrects a problem with Urgent mail delivery that can result ; in the message appearing on only one terminal, if the target user is ; using more than one. ; Applies to programs linked with Screen Demon 3.00.03 ..sc..sd_mail+3401 [XWLDA 0,-14,3] [WBR ..sc..sd_mail+3430] ..sc..sd_mail<>0 ^+1 [] [NOP] ..sc..sd_mail<>0 ..sc..sd_mail+3421 [XWLDA 0,-14,3] [XWSTA 0,-14,3] ..sc..sd_mail<>0 ^+1 [] [] ..sc..sd_mail<>0 ^+1 [WANDI 37777,0] [WBR ..sc..sd_mail+3454] ..sc..sd_mail<>0 ^+1 [] [NOP] ..sc..sd_mail<>0 ^+1 [] [NOP] ..sc..sd_mail<>0 ..sc..sd_mail+3434 [XLEFB 2,20,3] [LPEF ..ud..sd_mail+264,1] ..sc..sd_mail<>0 ^+1 [] [] ..sc..sd_mail<>0 ^+1 [NLDAI 76,1] [] ..sc..sd_mail<>0 ^+1 [] [LCALL SDMenu,1,1] ..sc..sd_mail<>0 ^+1 [LLEFB 3,(..ud..sd_mail+264)*2,1] [] ..sc..sd_mail<>0 ^+1 [] [] ..sc..sd_mail<>0 ^+1 [] [] ..sc..sd_mail<>0 ^+1 [WMOV 1,0] [XWLDA 0,-14,3] ..sc..sd_mail<>0 ^+1 [WCMV] [] ..sc..sd_mail<>0 ^+1 [LDAFP 3] [NSANA 140000,0] ..sc..sd_mail<>0 ^+1 [XPEF 10,3] [] ..sc..sd_mail<>0 ^+1 [] [WBR ..sc..sd_mail+3454] ..sc..sd_mail<>0 ^+1 [LCALL SDMenu,1,1] [WANDI 37777,0] ..sc..sd_mail<>0 ^+1 [] [] ..sc..sd_mail<>0 ^+1 [] [] ..sc..sd_mail<>0 ^+1 [] [WBR ..sc..sd_mail+3415] ..sc..sd_mail<>0 ;End of patch .W'TS't'TS:SCREEN_DEMON.CONTYPES  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; $Id: screen_demon.contypes,v 1.2 1994/03/11 16:55:11 mark Exp mark $ ; ; $Log: screen_demon.contypes,v $ ; Revision 1.2 1994/03/11 16:55:11 mark ; Added RCS Id and Log fields ; ; Revision 1.1 1994/03/10 22:05:09 mark ; Initial revision ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Definitions for parameters maintained in SCREEN_DEMON_3.00.VM file, ; including console types and terminal model assignments. ; ; Screen Demon rev 3.52.01 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; ;;; Copyright (C) 1988 - 1993, ;;; ;;; Threshold, Inc. ;;; ;;; Auburn, Alabama U.S.A. ;;; ;;; All rights reserved. ;;; ;;; ;;; ;;; SCREEN DEMON and its associated hot-key routines ;;; ;;; are proprietary property of Threshold, Inc. ;;; ;;; Except as provided for by the License Agreement; these ;;; ;;; shall not be copied, used, or disclosed for any purpose or ;;; ;;; reason in whole or in part, without the express written ;;; ;;; consent of: ;;; ;;; ;;; ;;; Threshold, Inc. ;;; ;;; 118 North Ross Street ;;; ;;; Auburn, Alabama 36830 ;;; ;;; ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;--------------- SCREEN DEMON Console Type Definitions --------------- ; ; Specify the console type names of all terminals that will be ; running Screen Demon, followed by the lowest and highest ; unit number in use for each type of console. The console ; types CON, BATCH, and NOCON should always be included. ; ; The value for the BATCH type is the number of simultaneous ; BATCH_INPUT streams that will be used. Batch streams with names ; other than BATCH_INPUT can also be listed, but specify only the ; first word of the batch stream name. ; ; The value for the NOCON type is the maximum number of processes ; that will be running without a console simultaneously, not ; including batch processes that have their own type. ; ; ; For example: ; ; BEGIN_CON_TYPES ; CON_TYPE CON 2 17 ; CON_TYPE VCON 0 4 ; CON_TYPE BATCH 1 2 ; CON_TYPE NOCON 0 8 ; END_CON_TYPES ; ; indicates: ; terminals CON2 through CON17 exist, ; virtual terminals VCON0 through VCON4 exist, ; there will be at most two Batch streams running, ; and there will never be more than 8 nonbatch processes ; running without a console at the same time. ; ;----------------------------------------------------------------------- BEGIN_CON_TYPES ;Specify your actual console configuration here: CON_TYPE CON 0 512 CON_TYPE BATCH 1 4 CON_TYPE NOCON 0 32 END_CON_TYPES ;------------- SCREEN DEMON Console Model Id Definitions ------------- ; ; Optionally, the model ids of terminals on specific console ; lines can be declared, assuming that a given terminal is ; always connected to the same console line. Declaring the ; terminal model ids here will eliminate the need for SCREEN ; DEMON to determine the terminal's model id at runtime. ; ; This is also useful when terminal emulators running on PC's ; are being used. Although the emulator may respond to a ; Read Model Id request as if it was a D400, it may actually ; lack certain capabilities, such as underlining. Since ; SCREEN DEMON will be unable to know this based on the ; returned model id, an entry for the emulator's console line ; can be included in the table below to describe its true ; capabilities. ; ; Each entry in the TERMINAL_ASSIGNMENTS table below specifies ; a terminal model name from the SD_TERMCAPS.SR file. This file ; lists all known Data General terminal models, along with the ; capabilities of each, and should be updated if necessary when ; new DG terminals are installed. Special entries for terminal ; emulators can also be added to the SD_TERMCAPS.SR file. ; ; Following the terminal model name in the table entry, a console ; type name and range of unit numbers are given, which indicates ; that all terminals attached to that range of console lines are ; the specified model. There may be more than one line specifying ; the same terminal model. If only one unit number is specified ; for a console type, then it is assumed that only that single ; console line is being described. If no unit numbers are ; specified, but just a console type, then all units for that ; type are set to the given terminal model. If a particular ; console line is declared more than once, such as when it is ; part of a range on one line and then is specified individually ; on another, the last declaration is used. ; ; For example: ; ; BEGIN_TERMINAL_ASSIGNMENTS ; D210 CON 9 ; D410 CON 13 15 ; D210 VCON ; PC_WITH_CGA_EMULATING_D400 CON 6 ; END_TERMINAL_ASSIGNMENTS ; ; specifies that CON9 is a D210 terminal, CON13, CON14, ; and CON15 are all D410 terminals, every VCON is to be ; considered a D210, and CON6 is a PC emulator that can't ; do underlining. All other console lines will have their ; terminal model ids determined at runtime. ; ;----------------------------------------------------------------------- BEGIN_TERMINAL_ASSIGNMENTS ;Specify any terminal model id assignments here: END_TERMINAL_ASSIGNMENTS ;----------------------------------------------------------------------- ; ;End of SCREEN_DEMON.CONTYPES .END .D"V't"V'PRINTABLE_CMDS_3.00.03.OPTPAT ;--------------------------------------------------------------------- ; PRINTABLE_CMDS_3.00.03.PAT 13-APR-92 ; ;This patch forces certain extended terminal commands to contain only ; printable characters. This may be necessary if non-Data General ; hardware is being used on terminal lines, since control characters ; could be interpreted inappropriately. This patch is not necessary ; when only Data General terminals are being used. ; ; Applies to programs linked with Screen Demon rev 3.00.03 SD_DISPLAY+1137 [WINC 2,2] {LPSHJ #SD_PATCH,1} ^+1 [WSTB 2,0] [] ^+1 [WINC 2,2] [] SD_DISPLAY+1226 [WINC 2,2] {LPSHJ #SD_PATCH,1} ^+1 [WSTB 2,0] [] ^+1 [WINC 2,2] [] SD_DISPLAY+1315 [WINC 2,2] {LPSHJ #SD_PATCH,1} ^+1 [WSTB 2,0] [] ^+1 [WINC 2,2] [] #SD_PATCH 0 [WINC 2,2] ^+1 0 [ANDI 17,0] ^+1 0 [] ^+1 0 [IORI 60,0] ^+1 0 [] ^+1 0 [WSTB 2,0] ^+1 0 [WINC 2,2] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+10\ ^+1 [] [] SD_DISPLAY+4477 [WSNE 0,1] [NOP] ;End of patch .D"l't"mINBUF_LEN_3.00.03.PAT ;--------------------------------------------------------------------- ; INBUF_LEN_3.00.03.PAT 19-JUN-92 ; ;When determining the number of displayable characters initially in the ; input buffer, Screen Demon considers both the position of the first ; delimiter in the buffer and the initial cursor offset field in the ; screen management extension packet. If the cursor offset field ; was larger than the offset to the delimiter, Screen Demon expanded ; the field by padding it with spaces out the the specified cursor ; offset. This is opposite to the behavior of nonScreen Demon inputs ; in this situation, where the delimiter position overrides the ; cursor offset value. This patch makes Screen Demon act the same ; as standard AOS/VS ?READ's in this case. ; Applies to programs linked with Screen Demon rev 3.00.03 SD_INPUT_FIELD+1316 [LWSUB 2,FLDPKT+4,1] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [] [] ^+1 [LNLDA 0,FLDSCRNPKT+1,1] [WSLT 0,0] ^+1 [] [WSLE 0,1] ^+1 [] [WMOV 1,0] ^+1 [WSGE 0,0] [NOP] ^+1 [WMOV 2,0] [NOP] #SD_PATCH 0 [WMOV 3,1] ^+1 0 [LWSUB 1,FLDPKT+4,1] ^+1 0 [] ^+1 0 [] ^+1 0 [LNLDA 0,FLDSCRNPKT+1,1] ^+1 0 [] ^+1 0 [] ^+1 0 [LDAFP 2] ^+1 0 [XWLDA 2,111,2] ^+1 0 [] ^+1 0 [WSNE 2,2] ^+1 0 [WSGT 0,0] ^+1 0 [SKIP] ^+1 0 [WMOV 0,1] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+17\ ^+1 [] [] ;End of patch .D#=N 't#=N,vZHOT_KEY_TERM_3.00.03.PAT v;--------------------------------------------------------------------- ; HOT_KEY_TERM_3.00.03.PAT 11-SEP-92 ; ;This patch corrects a problem with program termination via ^C^B or SPY. ; If a hot key was active at the time, it was possible for shutdown ; processing to hang until the user exitted from the hot key. This ; would occur in VS/COBOL programs linked with the SD_COBOL32_INTF.OB ; module, programs using the CEO interface, and programs declaring ; any other nonScreen Demon SHUTDOWN procedure that issues system calls. ; Applies to programs linked with Screen Demon rev 3.00.03 SD_ABORT_ALL_LOCKS+26 [WBLM] {LJMP #SD_PATCH,1} ^+1 [WPOP 3,0] [] ^+1 [WPOPJ] [] #SD_PATCH 0 [WBLM] ^+1 0 [LPSHJ SD_ABORT_HOT_KEY_HOLDS,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WPOP 3,0] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+6\ ^+1 [] [] ;End of patch .D#HQ't#HQZAUTO_LOGOFF_TIMES_3.00.03.PAT ;--------------------------------------------------------------------- ; AUTO_LOGOFF_TIMES_3.00.03.PAT 22-SEP-92 ; ;This patch modifies the handling of the optional time range for automatic ; logoff. If a time range was specified, it was assumed to be defining ; a "no logoff" range, rather than a "logoff ok" range. So, if the ; "after" time was earlier than the "before" time, this was treated the ; same as if no range had been specified. This patch causes Screen Demon ; to check whether a "no logoff" or "logoff ok" type of range was given, ; and test the current time accordingly. ; Applies to programs linked with Screen Demon rev 3.00.03 SD_PROCESS_TIMEOUT_ERROR+235 [WUSGE 0,1] [LWLDA 2,LOGOFF_OK_BEFORE_TIME,1] ^+1 [WBR .+6] [] ^+1 [LWLDA 0,LOGOFF_OK_BEFORE_TIME,1] [] ^+1 [] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [WUSGT 0,1] [] #SD_PATCH 0 [WUSGT 2,0] ^+1 0 [WBR .+6] ^+1 0 [WUSGE 1,0] ^+1 0 [WPOPJ] ^+1 0 [WUSGT 1,2] ^+1 0 [ISZTS] ^+1 0 [WPOPJ] ^+1 0 [WUSGE 0,1] ^+1 0 [WBR .-3] ^+1 0 [WUSGT 2,1] ^+1 0 [WPOPJ] ^+1 0 [WBR .-6] SD_PATCH #SD_PATCH\ #SD_PATCH+14\ ^+1 [] [] ;End of patch .D#ȇ7't#ȇ8@FINAL_ATTRB_RESET_3.00.03.PAT ;--------------------------------------------------------------------- ; FINAL_ATTRB_RESET_3.00.03.PAT 28-JAN-93 ; ;This patch prevents Screen Demon from resetting console attributes such ; as dim, blink, scroll disable, etc., when a program ends. If the ; parent program was also a Screen Demon program, this caused the parent ; to think the reset attributes were the proper state, which might not ; match what the host program expected. This could cause incorrect ; screen displays, including scrolling of the entire screen. ; Applies to programs linked with Screen Demon rev 3.00.03 ;Version for everything but inner rings SD_SYSCALL_INTERCEPTOR+644 [LNSTA 3,@AWATR,1] [NOP] SD_SYSCALL_GATE=0 ^+1 [] [NOP] SD_SYSCALL_GATE=0 ^+1 [] [NOP] SD_SYSCALL_GATE=0 SD_SYSCALL_INTERCEPTOR+1122 [LNSTA 3,@AWATR,1] [NOP] SD_SYSCALL_GATE=0 ^+1 [] [NOP] SD_SYSCALL_GATE=0 ^+1 [] [NOP] SD_SYSCALL_GATE=0 ;Version for inner rings SD_SYSCALL_INTERCEPTOR+665 [LNSTA 3,@AWATR,1] [NOP] SD_SYSCALL_GATE<>0 ^+1 [] [NOP] SD_SYSCALL_GATE<>0 ^+1 [] [NOP] SD_SYSCALL_GATE<>0 SD_SYSCALL_INTERCEPTOR+1143 [LNSTA 3,@AWATR,1] [NOP] SD_SYSCALL_GATE<>0 ^+1 [] [NOP] SD_SYSCALL_GATE<>0 ^+1 [] [NOP] SD_SYSCALL_GATE<>0 ;End of patch .D#ψ't#ψj CHSET_ERASE_EOL_OPT_3.00.03.PAT j;--------------------------------------------------------------------- ; CHSET_ERASE_EOL_OPT_3.00.03.PAT 4-FEB-93 ; ;This patch corrects a problem with Screen Demon's display optimization ; when determining whether or not an ERASE EOL would be more efficient ; than spacing over existing characters. If there are no characters ; on the line past the current position in the desired image, then ; an ERASE EOL can be used to blank the remainder of the line. Since ; underlined or reverse video spaces count as visible characters, a ; scan for these attributes is made. However, if there were underlined ; or reverse video spaces whose character set was not the primary set, ; they would be missed by the scan. This could result in these spaces ; being blanked out. A screen redraw would repaint them properly. ; ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 122657 0 7777 ^+1 0 7777 ^+1 0 7777 ^+1 0 7777 ^+1 0 7777 ^+1 0 7777 ^+1 0 7777 ^+1 0 7777 ^+1 0 7777 ^+1 0 7777 ^+1 0 7777 ^+1 0 7777 ^+1 0 7777 ^+1 0 7777 ;End of patch .D#V-'t#V- BAD_CHAN_IO_3.00.03.PAT ;--------------------------------------------------------------------- ; BAD_CHAN_IO_3.00.03.PAT 5-FEB-93 ; ;This patch prevents a fatal error when the host program attempts a ; ?READ or ?WRITE system call using an invalid channel. With this patch, ; the system call will fail the same as it would if Screen Demon was not ; present. This patch is definitely required when using Screen Demon ; with CQCS from CyberScience. ; ; Applies to programs linked with Screen Demon rev 3.00.03 SD_FIND_CONSOLE_CHANNEL_INFO-1266 [XNLDA 0,0,2] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [WSNB 3,0] [] #SD_PATCH 0 [XNLDA 0,0,2] ^+1 0 [] ^+1 0 [WSGTI 377,0] ^+1 0 [] ^+1 0 [WSGE 0,0] ^+1 0 [WPOPJ] ^+1 0 [WSZB 3,0] ^+1 0 [ISZTS] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+11\ ^+1 [] [] SD_FIND_CONSOLE_CHANNEL_INFO+55 [XNLDA 0,0,2] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [WSZB 3,0] [] #SD_PATCH 0 [XNLDA 0,0,2] ^+1 0 [] ^+1 0 [WSGTI 377,0] ^+1 0 [] ^+1 0 [WSGE 0,0] ^+1 0 [WBR .+2] ^+1 0 [WSNB 3,0] ^+1 0 [ISZTS] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+11\ ^+1 [] [] ;End of patch .D#f('t#f)Y'ICX_1.51_TIMEOUT_3.00.03.PAT Y;--------------------------------------------------------------------- ; ICX_1.51_TIMEOUT_3.00.03.PAT 4-MAR-93 ; ;This patch causes the ICOBOL rev 1.51 or 1.52 interpreter to return ; an ESCAPE KEY value of 99 if a console timeout occurs, instead ; of aborting with a "Runtime System Panic". This patch is ; necessary if an ACCEPT could terminate because of a timeout, ; via either the SD_SET_ACCEPT_TIMEOUT call in Screen Demon ; rev 3.00.03, or a ?STOM system call before the input. ; ; This patch affects ICX routines only, not Screen Demon. The ; SD_PATCH patch area is used for convenience, but this patch could ; be applied to a standard ICX if it is changed to use ICX's normal ; patch area instead. ; ; For Screen Demon rev 3.00.03, it is suggested that this patch be ; appended to the SD_POSSESS_ICX_1.51.PAT file. SETDLM+1135 [NLDAI 67,1] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [SUB# 0,1,SZR] [] #SD_PATCH 0 [WSNEI 76,0] ^+1 0 [] ^+1 0 [WBR .+5] ^+1 0 [WSNEI 67,0] ^+1 0 [] ^+1 0 [ISZTS] ^+1 0 [WPOPJ] ^+1 0 [WPOP 1,1] ^+1 0 [XNLDA 1,10,2] ^+1 0 [] ^+1 0 [XWADD 1,4,2] ^+1 0 [] ^+1 0 [WSUB 0,0] ^+1 0 [WSTB 1,0] ^+1 0 [NLDAI 99.,0] ^+1 0 [] ^+1 0 [LJMP SETDLM+670,1] ^+1 0 [] ^+1 0 [] SD_PATCH #SD_PATCH\ #SD_PATCH+23\ ^+1 [] [] ;End of patch .D$h't$hI`tPRE_?READ_?IDGOTO_3.00.03.PAT I;--------------------------------------------------------------------- ; PRE_?READ_?IDGOTO_3.00.03.PAT 26-OCT-93 ; ;This patch causes the check for pending ?IDGOTO that occurs before Screen ; Demon issues a console ?READ to jump to the same place that the check ; following the ?READ goes to. Certain variables were not being cleaned ; up on the "before" case, which could result in a stack fault if console ; logging was active. ; Applies to programs linked with Screen Demon rev 3.00.03 SD_INPUT_FIELD+2161 [XJMP .+3636,1] [XJMP .+5450,1] ^+1 [] [] ;End of patch .D%WW't%WW| NO_SPACE_ATR_OPT_3.00.03.OPTPAT ;--------------------------------------------------------------------- ; NO_SPACE_ATR_OPT_3.00.03.OPTPAT 3-MAR-94 ; ;This patch disables Screen Demon's optimization of attribute settings for ; spaces during Turbo Display. This optimization considers spaces with ; the dim and/or blink attribute to be visually identical to normal spaces, ; and so will not necessarily set the exact attribute settings. For color ; terminals, where different background colors can be assigned to various ; attribute combinations, dim and/or blinking spaces may actually look ; different, so the optimization is not desired. ; Applies to programs linked with Screen Demon rev 3.00.03 SD_DISPLAY+3074 [WSEQI 40,2] [NOP] ^+1 [] [NOP] ;End of patch .D"ug't"v?IDGOTO_TSCHED_3.00.03.PAT ;--------------------------------------------------------------------- ; ?IDGOTO_TSCHED_3.00.03.PAT 24-JUN-92 ; ;This patch modifies Screen Demon's task scheduling emulator so that ; ?IDGOTO'd and ?IDKIL'd tasks are allowed to execute even if task ; scheduling has been disabled. This matches normal AOS/VS task ; processing. ; Applies to programs linked with Screen Demon rev 3.00.03 SD_SYSCALL_INTERCEPTOR+4630 [LLEF 1,SD_?IDGOTO_TARGET_TASKS,1] {LPSHJ #SD_PATCH,1} SD_SYSCALL_GATE=0 ^+1 [] [] SD_SYSCALL_GATE=0 ^+1 [] [] SD_SYSCALL_GATE=0 SD_SYSCALL_INTERCEPTOR+4656 [LLEF 1,SD_?IDGOTO_TARGET_TASKS,1] {LPSHJ #SD_PATCH,1} SD_SYSCALL_GATE<>0 ^+1 [] [] SD_SYSCALL_GATE<>0 ^+1 [] [] SD_SYSCALL_GATE<>0 #SD_PATCH 0 [LLEF 1,SD_?IDGOTO_TARGET_TASKS,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WBTO 1,0] ^+1 0 [WADI 4,1] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+6\ ^+1 [] [] SD_SYSCALL_INTERCEPTOR+5304 [NSANA 2000,3] {LPSHJ #SD_PATCH,1} SD_SYSCALL_GATE=0 ^+1 [] [] SD_SYSCALL_GATE=0 ^+1 [SKIP] [] SD_SYSCALL_GATE=0 SD_SYSCALL_INTERCEPTOR+5332 [NSANA 2000,3] {LPSHJ #SD_PATCH,1} SD_SYSCALL_GATE<>0 ^+1 [] [] SD_SYSCALL_GATE<>0 ^+1 [SKIP] [] SD_SYSCALL_GATE<>0 #SD_PATCH 0 [WPSH 0,1] ^+1 0 [NSANA 2000,3] ^+1 0 [] ^+1 0 [SKIP] ^+1 0 [WBR .+17] ^+1 0 [NLDAI -1,1] ^+1 0 [] #SD_PATCH+7 0 [LJSR SD_SYSCALL_INTERCEPTOR+6024,1] SD_SYSCALL_GATE=0 ^+1 0 [] SD_SYSCALL_GATE=0 ^+1 0 [] SD_SYSCALL_GATE=0 #SD_PATCH+7 0 [LJSR SD_SYSCALL_INTERCEPTOR+6117,1] SD_SYSCALL_GATE<>0 ^+1 0 [] SD_SYSCALL_GATE<>0 ^+1 0 [] SD_SYSCALL_GATE<>0 #SD_PATCH+12 0 [NOP] ^+1 0 [LNLDA 1,SD_?IDGOTO_TARGET_TASKS+10,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WSEQ 0,1] ^+1 0 [WBR .+4] ^+1 0 [WPOP 1,0] ^+1 0 [ISZTS] ^+1 0 [WPOPJ] ^+1 0 [WPOP 1,0] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+25\ ^+1 [] [] ;End of patch .D"L 't"Lb 5NO_TURBO_TABS_3.00.03.PAT  ;--------------------------------------------------------------------- ; NO_TURBO_TABS_3.00.03.PAT 9-JUL-92 ; ;This patch corrects a problem with handling of TAB characters when ; running with Turbo mode off. In programs that did nonbinary ; ?WRITEs with a cursor address specified in the packet, PMGR ; was not aware of the cursor position because of the way that ; Screen Demon processed the system call. Consequently, TABs ; would not necessarily be expanded properly in that call and ; subsequent calls (if /ST characteristics was on). This was ; noticed in SED. ; Applies ONLY to the file SCREEN_DEMON.LB in Screen Demon rev 3.00.03 %USERFILE 40646 127351 100370 41001 177051 101033 41002 1000 101033 41003 100470 115070 ;End of patch .D&l't&l\URG_MAIL_FUN_KEYS_3.00.03.PAT \;--------------------------------------------------------------------- ; URG_MAIL_FUN_KEYS_3.00.03.PAT 14-JUL-92 ; modified 9-SEP-92 ; modified 20-FEB-95 ; ;This patch corrects a problem causing the console environment (current ; characteristics, delimiter table, etc.) to be destroyed. If Urgent mail ; was automatically displayed (rather than via the Read Mail hot key), and ; the Print option was accessed while viewing the message, the environment ; would be changed to that required to input the Print filename. When ; control returned to the original input, this new environment would be ; retained. If this input was an ICOBOL ACCEPT, function keys would no ; longer work because the /FKT characteristic would have been turned on; ; the result was unpredictable behavior when function keys were pressed, ; possibly even killing the ICX interpreter. ; ; Applies to programs linked with Screen Demon rev 3.00.03 SD_INPUT_FIELD+1 50 114 SD_INPUT_FIELD_TO_FULL+1 50 114 SD_SPY_REMOTE_INPUT+1 50 114 SD_PROCESS_TIMEOUT_ERROR+1 11 114 SD_READ_CHAR+1 62 114 SD_XGETCHAR=0 ;SD_READ_CHAR+1 64 114 SD_XGETCHAR<>0 ; ^this won't work if prev conditional is false, ; even though it is the proper "old" value SD_READ_CHAR+1 @. 114 SD_XGETCHAR<>0 SD_GETCHAR+1 62 114 SD_XGETCHAR=0 ;SD_GETCHAR+1 64 114 SD_XGETCHAR<>0 ; ^this won't work if prev conditional is false! ; even though it is the proper "old" value SD_GETCHAR+1 @. 114 SD_XGETCHAR<>0 SD_PROCESS_TIMEOUT_ERROR+37 [LPSHJ SD_EXECUTE_LIST_OF_CALLS,1] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [] [] SD_INPUT_FIELD+1167 [LPSHJ SD_EXECUTE_LIST_OF_CALLS,1] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [] [] SD_READ_CHAR+1252 [LPSHJ SD_EXECUTE_LIST_OF_CALLS,1] {LPSHJ #SD_PATCH,1} SD_XGETCHAR=0 ^+1 [] [] SD_XGETCHAR=0 ^+1 [] [] SD_XGETCHAR=0 #SD_PATCH 0 [WPSH 2,2] ^+1 0 [LNLDA 2,INPUT_CASE_CONVERSION,1] ^+1 0 [] ^+1 0 [] ^+1 0 [XNSTA 2,154,3] ^+1 0 [] ^+1 0 [LNLDA 2,USER_TIMEOUT,1] ^+1 0 [] ^+1 0 [] ^+1 0 [XNSTA 2,155,3] ^+1 0 [] ^+1 0 [LNLDA 2,ACCEPT_TIMEOUT,1] ^+1 0 [] ^+1 0 [] ^+1 0 [XNSTA 2,156,3] ^+1 0 [] ^+1 0 [LNLDA 2,VIRTUAL_CON_TIMEOUT,1] ^+1 0 [] ^+1 0 [] ^+1 0 [XNSTA 2,157,3] ^+1 0 [] ^+1 0 [WSUB 2,2] ^+1 0 [LNSTA 2,INPUT_CASE_CONVERSION,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WADC 2,2] ^+1 0 [LNSTA 2,USER_TIMEOUT,1] ^+1 0 [] ^+1 0 [] ^+1 0 [LNSTA 2,ACCEPT_TIMEOUT,1] ^+1 0 [] ^+1 0 [] ^+1 0 [LNSTA 2,VIRTUAL_CON_TIMEOUT,1] ^+1 0 [] ^+1 0 [] ^+1 0 [XLEF 2,160,3] ^+1 0 [] ^+1 0 [LPSHJ SD_CONSOLE_GET_VIRTUAL_DELIM_TBL,1] ^+1 0 [] ^+1 0 [] ^+1 0 [XLEF 2,200,3] ^+1 0 [] ^+1 0 [LPSHJ SD_CONSOLE_GET_VIRTUAL_CHAR,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WPOP 2,2] ^+1 0 [LPSHJ SD_EXECUTE_LIST_OF_CALLS,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WPSH 2,2] ^+1 0 [XNLDA 2,154,3] ^+1 0 [] ^+1 0 [LNSTA 2,INPUT_CASE_CONVERSION,1] ^+1 0 [] ^+1 0 [] ^+1 0 [XNLDA 2,155,3] ^+1 0 [] ^+1 0 [LNSTA 2,USER_TIMEOUT,1] ^+1 0 [] ^+1 0 [] ^+1 0 [XNLDA 2,156,3] ^+1 0 [] ^+1 0 [LNSTA 2,ACCEPT_TIMEOUT,1] ^+1 0 [] ^+1 0 [] ^+1 0 [XNLDA 2,157,3] ^+1 0 [] ^+1 0 [LNSTA 2,VIRTUAL_CON_TIMEOUT,1] ^+1 0 [] ^+1 0 [] ^+1 0 [XLEF 2,160,3] ^+1 0 [] ^+1 0 [LPSHJ SD_CONSOLE_SET_VIRTUAL_DELIM_TBL,1] ^+1 0 [] ^+1 0 [] ^+1 0 [XLEF 2,200,3] ^+1 0 [] ^+1 0 [LPSHJ SD_CONSOLE_SET_VIRTUAL_CHAR,1] ^+1 0 [] ^+1 0 [] ^+1 0 [WPOP 2,2] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+122\ ^+1 [] [] ;End of patch .@"'t#H6SD_MODEL_ID.OB 6 SD_MODEL_IDY 4DY _ jvy  SD_OUTPUT_STRINGSD_CONSOLE_MATCH_?CTOICTRL2CON_MODELIDCON_TERMCAPSTIBTIBOFSSD_DAD_PIDACTUAL_CON_TIMEOUTCONSOLE_CHANSD.SYSCALLSD_CONSOLE_INIT_MODELID) Y)YY 9)P99$) 9Y9999   I9) yxـ \9)Ή) ) 9E8 at the SD_PRISWI Printer Switcher menu, ; if SD_PRISWI is used to handle Mail Print output. ; ; Applies to programs linked with Screen Demon rev 3.00.03 ..sc..sd_mail+1751 [WSNE 0,0] [NOP] ..sc..sd_mail<>0 ;End of patch .D#R$'t#SRnTREAD_SCREEN_SIZE_3.00.03.PAT ;--------------------------------------------------------------------- ; READ_SCREEN_SIZE_3.00.03.PAT 7-DEC-92 ; ;This patch allows Screen Demon to recognize the Read Screen Size ; command supported by newer DG terminals. Screen Demon was ; treating it as invalid and ignoring it, so the command would ; not be sent to the terminal if Turbo mode was on. Any program, ; such as CEO_CP, that issued this command would hang, since the ; expected response would not be returned by the terminal. ; ; Applies to programs linked with Screen Demon rev 3.00.03 SD_MONITOR_STRING+3010 [LDSP 0,XFUNTBL,1] {LJMP #SD_PATCH,1} ^+1 [] [] ^+1 [] [] #SD_PATCH 0 [WSEQI 164,0] ^+1 0 [] ^+1 0 [WBR .+3] ^+1 0 [NLDAI 144,0] ^+1 0 [] ^+1 0 [LDSP 0,XFUNTBL,1] ^+1 0 [] ^+1 0 [] ^+1 0 [LJMP SD_MONITOR_STRING+3013,1] ^+1 0 [] ^+1 0 [] SD_PATCH #SD_PATCH\ #SD_PATCH+13\ ^+1 [] [] ;End of patch .D#eO't#eOGO??KWAIT_ERROR_HANG_3.00.03.PAT G;--------------------------------------------------------------------- ; ?KWAIT_ERROR_HANG_3.00.03.PAT 21-OCT-92 ; ;One of Screen Demon's auxiliary tasks is constanting waiting for ; console interrupts. If the ?KWAIT system call that is used ; to do this ever takes the error return, this task will attempt ; to ?KILL itself. If LANG_RT is present, this will result in ; the program hanging. This patch causes the ?KWAIT to be ; retried instead. ; Applies to programs linked with Screen Demon 3.00.03 SD_?KWAIT_HANDLER+10 [WBR .-16] [WBR .-4] ;End of patch .D$!y't$!y)0SPY_STOP_3.00.03.PAT );--------------------------------------------------------------------- ; SPY_STOP_3.00.03.PAT 27-APR-93 ; ;This patch prevents a possible Agent trap from occurring on exit from ; SPY when LANG_RT has been linked with SD_SPY, due to interference ; from LANG_RT's task handlers. This patch is not necessary if LANG_RT ; is not present, but will have no adverse effect. ; Applies ONLY to SD_SPY.PR in Screen Demon rev 3.00.03 SD_SPY+7773 [LJSR SD.SYSCALL,1] [LPSHJ SD_SPY+15376,1] ^+1 [] [] ^+1 [] [] ^+1 514 [NOP] ;End of patch .@#z|x't#z~B2BymSD_SHCON_IPC_ADJ_STATE.OB  SD_SHCON_IPC_ADJ_STATE&! #9bSD_SHCON_IPC_IGNORE_PIDS_PARTSD_SHARED_DATA_PARTI( 6?EW[v CON_ACTIVE_PIDCON_FLAGSICTRL2ACTUAL_CON_TIMEOUTCTRLVIRTUAL_CON_CHARACTERISTICSEXTC_SD_INIT_CALLSSD.SYSCALLSD_SHCON_IPC_ADJ_STATEb  h           ) 3 =GKOSW[_cg nz           ' 1< M W e m {             $ 0 ; E O Z e q {      ?MXPL?MXUN?MXFN?CLMAX?SHCO?IOPH??SCSIGNLSD?XCALL?CLMAXSD_REV.MAJORSD_REV.MINORSD_REV.UPDATESD_REVISIONAC0AC1AC2AC3FPAC0CALLER_PCCALLER_FPCALLER_AC2CALLER_AC1CALLER_AC0ARGCARG1ARG2ARG3ARG4ARG5ARG6ARG7SYSCALLVARIABLE?LENPASSTHRUBEEPFLAGPERIODICSIN_BATCHTERMUNDFINPOCCRBLD_RDLSUPRDLMODMAPID_TRIGNO_CONPASSIVE_MONKWAITIC_HOTSPEC_CONLOGFLTM_ENABLEIN_INITSD_DEADAICTRL_FAKE_BITBE_DEMOBE_DEMO_CHECKIC2.NOTYAHIC2.FROM_SDIC2.FROM_SD_CHAINIC2.SCRSAVIC2.STOPSCRSAVIC2.TERMIC2.UNDFCHARISIC2.UNDFINDLMIC2.UNDFOUTDLMIC2.MONPENDIC2.TSCHEDIC2.FLTM_SUPPRESSIC2.NO_PROCSIC2.FLOATIC2.REMINPOCCIC2.ODDRDLBYPASSREFSCNFTURBOPARTURBOFLUSHUNDER_CEOUNDER_WPSHLNOHOTKEYSIGNRDLMODMAPCNF.PHYSCLRCNF.REDOUTCNF.IGNINTCNF.LNDRBOXCNF.LNDRLINCNF.TRSPUNININTR_ERASEINTR_REDRAWINTR_ECHOSHCON_IPC_HANDLING.FLUSHSHCON_IPC_HANDLING.ENVRSHCON_IPC_HANDLING.REDRAWDIMFBLINKFUNDERFREVRSFSHIFTFCHSETPROTF`0P Q O    0!1 (2 13 :4 C5 M6X7^ f q |          # ,5:? E P [ fqx "       )8GWh w  b PAGEMODEALTSETALTMARNOHSCRLPROTENNOBLINKEIGHTBITLPPCPLCPSDUMB_CPLNORMAL_CPLCOMPRS_CPLDEF_LMARDEF_RMARTAB_WIDTH?STRUCT_SIZE?FRAME_SIZEIMGCHPLIMGATPLIMGOFSIMGATRBIMGCHSPRIIMGCHSALTIMGCURTYPIMGKEYLANGIMGSCRLRATEIMGSIZIMGALLOCIMGSIZ_1.31IMGSIZ_2.01VIEWVIBLINVIEWVIBCOLVIEWTIBLINVIEWTIBCOLVIEWHTVIEWWDVIEWNXTVIEWFLGVIEWDSCSIZVWF.COMVWFMASK.D400WNDVIBWNDABOVEWNDBELOWWNDACTUPWNDACTDNWNDFLGWND_UNUSEDWNDTIBLOFWNDTIBCOFWNDVIBLOFWNDVIBCOFWNDHTWNDWDWNDVD1VIEW1VIBLINVIEW1VIBCOLVIEW1TIBLINVIEW1TIBCOLVIEW1HTVIEW1WDVIEW1NXTVIEW1FLGWNDLMARWNDRMARWNDOLMARWNDORMARWNDCLONEWNDDSCSIZWNDINTFWNDFLOATFWNDWRPFWNDD400FRDLVIBRDLVOFRDLLENRDLTOFRDLMODBEGRDLMODENDRDLESZCON_CHAN.CHANCON_CHAN.RECLENCON_CHAN.BUFPTRCON_CHAN.RECFMTCON_CHAN.SMFLAGSCON_CHAN.SMOFFSETCON_CHAN.UNUSEDCON_CHAN.NEXTCON_CHAN.PARAMS_SIZEMAX_SD_CON_NUMVMHDR.CON_MAPVMHDR.PID_BLKOFSVMHDR.TERMCAPSVMHDR.CON_TYPESVMHDR.SIZEN     " & 3@N\ l w     )>Tex_ "`/a>bPcfdze              ( 1 < B J R \ ent   CONTYPE_LENCONTYPE_BASCONTYPE_QTYCONTYPE.FIX_SIZECONTYPE_NAMVMCON.TIBIMGVMCON.TIB_WNDDSCVMCON.TIB_VIEWSVMCON.UPD_COUNTVMCON.CONNAMEVMCON.MODELIDVMCON.TERMCAPSVMCON.FIRSTPIDVMCON.ACTIVE_PIDVMCON.FLAGSVMCON.FLAGS_XPVMCON.USERNAMEVMCON.RET_CHARSRET_INBUF_LENVMCON.RET_INBUFVMCON.HOT_FROMVMCON.CHARACTERISTICSVMCON.CHARACTERISTICS_SIZEVMCON.INDELIMTBLVMCON.OUTDELIMTBLVMCON.TIMEOUTVMCON.SPYIN_SPYER_PIDVMCON.SPYIN_SPYER_UTIDVMCON.SPYIN_FLAGSVMCON.SPYIN_SMFLAGSVMCON.SPYIN_LENVMCON.SPYIN_LINEVMCON.SPYIN_COLVMCON.SPYIN_CUROFFVMCON.SPYIN_ERRVMCON.SPYIN_RTNLENVMCON.SPYIN_BUF?SIZEVMCON.SPYIN_BUFVMCON.?CHAIN_?PROC_PROGVMCON.OBT_CHARSVMCON.HOT_KEYVMCON.RET_DELIMVMCON.SHUTDOWN_PIDVMCON.?CHAIN_?PROC_PIDVMCON.SPY_VIEW_COUNTVMCON.USED_SIZEVMCON.SIZECONFLG.LOGCONFLG.NEWLOGCONFLG.MIDCONFLG.CHNCONFLG.CURSCONFLG.NOCONCONFLG.BATCHCONFLG.SPYINPCONFLG.SPYREQCONFLG.IGN_?SHCOCONFLG_SVMSKTC.UNDERTC.REVERSTC.ALTSETTC.COMPRESSTC.HDWTC.VSCRLTC.HSCRLTC.MARGINSTC.CHINDLTC.LNINDLTC.ALLSPYINFLG.GETCHARSEMINLOCK.READSEMINLOCK.SPYHOTTYPE.INPFLDHOTTYPE.GETCHARVMPID.CMPIMGVMPID.UPD_COUNTVMPID.FLAGSVMPID.FLAGS_XP W  ' 4 AK'Y/ h0s13B RS             -:IYiy       8  $ . 7 C N Wbu}      + 5 ?IXjz    VMPID.SDCONVMPID.NEXTPIDVMPID.PREVPIDVMPID.PROGVMPID.USERNAMEVMPID.LISN_UTIDVMPID.DELIMVMPID.IDLE_TIMEVMPID.CHARACTERISTICSVMPID.INDELIMTBLVMPID.TIMEOUTVMPID.USED_SIZEVMPID.SIZEPIDFLG.RUNPIDFLG.ICXPIDFLG.INPPIDFLG.TIMPIDFLG.DIEPIDFLG.SUSPIDFLG.HOTPIDFLG.SPYINPPIDFLG.SPYRTNVMCON.LOCK_ONVMCON.LOCK_LINKVMCON.LOCK_SPYEEVMCON.LOCK_SPYERVMCON.LOCK_XBITSVMPID.LOCK_BASEVMPID.LOCK_ONVMPID.LOCK_XBITSVMREC.SIZELR.EVENTLR.IDATELR.ITIMELR.LENLR.DATACONEV.SYNCLR.SY_CONLR.SY_USERLR.SY_PROGLR.SY_IMAGECONEV.DISPLAYCONEV.INPUT_AFTERLR.IA_LINELR.IA_COLLR.IA_CUROFSLR.IA_DELIMLR.IA_LENLR.IA_CHARSCONEV.GETCHAR_AFTERHI.CONEVIBSIZEIBCHARSIBUSEDIBDATAISBUFISSIZEISCHARSISLINEISCOLISCUROFSISTIMOISDELIMISRTNFULLISNOECHOISFILLERISPKSIZXLC_PARE BNT_LINKXLC_CALL_ADDRXLC_ELEMENT_SIZESD_HOT_TYPESD_HOT_FLAGSSD_HOT_PTRSD_HOT_ACLSD_HOT_DIRSD_HOT_DEF_SIZESD303_HOT_DEF_SIZESD_ROOT_HOT_EXTCSD_ROOT_HOT_NAME_PTRSD_ROOT_HOT_KEY_DEFSD_ROOT_HOT_ENTRY_SIZESD_HOT_LINKEDSD_HOT_COBOL32SD_HOT_ICOBOLSD_HOT_CLISD_HOT_PRSD_HOT_IN_ROOT Z@ N [ ht{    $%& ' ( )  * +  (3;CJRY als@ {!  D I SNP A    ! +8F U a j v   !"#$    # - 7 A K X b mw     SD_HOT_UNAWARESD_HOT_REDRAWSD_HOT_CANCELSD_HOT_IMMEDMNPKREVMNPKLINMNPKCOLMNPKDEFMNPK.MNUMNPK.DSCMNPKDLINMNPKDCOLMNPK.HDRMNPK.FTRMNPK.KDFMNPK.IBFMNPKFLAGSMNPKFMTMNPKWNDMNPKBOXMNPKDIRSLMNPKCURSMMNPKDRWRETMNPKTOPBNDMNPKBOTBNDMNPKHLONATMNPKHLOFFATMNPKTIMEMNPK.DLMMNPKDLMMNPK.SLIMNPKSLIMNPK.SLSMNPK_2_SIZEMNPKMAXMNPKSORTMNPK_SIZEKA.UNSPECIFIEDKA.IGNOREKA.SELECTKA.NEXTKA.PREVKA.ABORTKA.MAXKAL.UNSPECIFIEDKAL.IGNOREKAL.SELECTKAL.NEXTKAL.PREVKAL.ABORTSPECL_NAME_OFSSPECL_FLAGSSPECL_UNUSEDSPECL_SIZESPECF_NOTURBOSPECF_PARTURBOSPECF_NO_LOGOFFSPECF_BYPASSSPECF_LOGSPECF_NO_WLISPECF_NOHOTKEYSSVENV_CHARSSVENV_DELIMSVENV_USER_TIMEOUTSVENV_ACCEPT_TIMEOUTSVENV_VIR_TIMEOUTSVENV_INPUT_CASE_CONVSVENV_SD_HOT_KEY_UTIDSVENV_STRUCT_SIZESDLOCK.LOCKSDLOCK.TERMSDLOCK.MONSDLOCK.MEMSDLOCK.WNDSDLOCK.FOBSDLOCK.CONLOGSDLOCK.HOTSDLOCK.INITSDLOCK.MAXMEM_DATAMEM_SIZEMEM_BEGMEM_ENDMEM_OVHMEM_HEAD_LINKMEM_TAIL_LINKMEM_MIN_DATA_SIZESD_SL_?NMAXSD_SL_?SBOTSD_SL_?NTOP $ +7 ERa@ p?}  T  p)SD_SL_UNINIT_BEGINSD_SL_MEM_PARAMS_SIZEMAIL_NO.MSGSMAIL_NO.UNREADMAIL_MSG.NUMSMAIL_URGENT_BITMAIL_UNREAD_BITMAIL_MSG_ONLYASSERT_MAIL_ON.ENT...SD.SYSCALLDUMMYNOSHMESKYSD_SHCON_IPC_IGNORE_PIDS?.SCIIIFN?.SCIIIFP?.SCIIIFCSHCON_IPC_ADJ_CONSOLE_STATEXSHCON_IPC_ADJ_CON_UNDEFSHCON_IPC_ADJ_CON_IGNORE?SHCON_IPC_ADJ_CON_CHK_IGN_LOOP  CEO_MGR:CEO_POA !)YYNI         CEO_MGR:CEO_FSA !)YYNI       CEO_MGR:CEO_CSA ! )0YYNI          $! $CEO_MGR:CEO_QMA" #!0)HYYNI  $ ,% ,& ,0' 0( 0CEO_MGR:CEO_NSA) *!@)`YYNI  + 8, 8- 8@. </  ?!p)YYNI  @ ]A ^B ^pC DX;y))88)88)xY8) )))) ♠   # 1 4E .D%h't%i; !SM_NOTYAH_3.00.03.PAT ;;--------------------------------------------------------------------- ; SM_NOTYAH_3.00.03.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.00.03 SD_INPUT_FIELD+614 [XNLDA 0,1,2] [XNLDA 1,1,2] ^+1 [] [] ^+1 [NSANA 100000,0] [NSANA 100000,1] ^+1 [] [] SD_INPUT_FIELD+632 [XNLDA 0,0,3] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [WMOV 0,1] [] #SD_PATCH 0 [XNLDA 1,0,3] ^+1 0 [] ^+1 0 [WANDI 20400,0] ^+1 0 [] ^+1 0 [] ^+1 0 [WIOR 1,0] ^+1 0 [WMOV 0,1] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+10\ ^+1 [] [] ;End of patch .D#C't#C0SPEC_PROG_NO_TURBO_3.00.03.PAT ;--------------------------------------------------------------------- ; SPEC_PROG_NO_TURBO_3.00.03.PAT 18-JAN-93 ; ;This patch corrects a problem with programs declared as NO_TURBO ; in the SPECIAL_PROGRAMS list in the SD_CONFIG configuration ; file. If Turbo was on when such a program was encountered, ; other control settings, such as the No Hot Keys flag, would ; be randomly changed. ; Applies to programs linked with Screen Demon rev 3.00.03 SD_INIT+5637 [LCALL SD_FLUSH,1,0] {LPSHJ #SD_PATCH,1} ^+1 [] [] ^+1 [] [] ^+1 [] [NOP] #SD_PATCH 0 [WMOV 3,2] ^+1 0 [LCALL SD_FLUSH,1,0] ^+1 0 [] ^+1 0 [] ^+1 0 [] ^+1 0 [WMOV 2,3] ^+1 0 [WPOPJ] SD_PATCH #SD_PATCH\ #SD_PATCH+7\ ^+1 [] [] ;End of patch .D$('t$(4HOT_?IDGOTO_3.00.03.PAT ;--------------------------------------------------------------------- ; HOT_?IDGOTO_3.00.03.PAT 4-MAY-93 ; ;This patch corrects problems with Screen Demon's hot key multitasking ; lockout code. If a hot key routine currently at a ?READ was active ; in a task which was the target of another task's ?IDGOTO, it was possible ; for the redirected task to hang on return from the hot key. If the hang ; did not occur, and the hot key was reentered, and another ?IDGOTO ; was attempted, it was possible for the ?READ to restart continually ; without accepting any characters. ; Applies to programs linked with Screen Demon rev 3.00.03 SD_EXIT_HOT_KEY+34 121711 121731 ;non-inner ring version SD_SYSCALL_INTERCEPTOR+1732 502 406 SD_SYSCALL_GATE=0 ^+2 103111 171570 SD_SYSCALL_GATE=0 ;inner ring version SD_SYSCALL_INTERCEPTOR+1760 502 406 SD_SYSCALL_GATE<>0 ^+2 103111 171570 SD_SYSCALL_GATE<>0 ;End of patch $