Trailing-Edge
-
PDP-10 Archives
-
BB-H138E-BM
-
6-1-sources/lshow.bli
There are 10 other files named lshow.bli in the archive. Click here to see a list.
%TITLE 'LSHOW - SHOW line-mode command'
MODULE LSHOW ( ! SHOW line-mode command
IDENT = '3-007' ! File: LSHOW.B36 Edit: CJG3007
) =
BEGIN
!
! COPYRIGHT (c) 1981, 1985 BY
! DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
! ALL RIGHTS RESERVED.
!
! THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
! ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
! INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
! COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
! OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
! TRANSFERRED.
!
! THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
! AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
! CORPORATION.
!
! DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
! SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
!
!++
! FACILITY: EDT -- The DEC Standard Editor
!
! ABSTRACT:
!
! This module executes the line mode SHOW command.
!
! ENVIRONMENT: Runs at any access mode - AST reentrant
!
! AUTHOR: Bob Kushlis, CREATION DATE: February 3, 1978
!
! MODIFIED BY:
!
! 1-001 - Original. DJS 30-JAN-1981. This module was created by
! extracting the routine EDT$$SHW_CMD from the module EXEC.BLI.
! 1-002 - Regularize headers. JBS 20-Mar-1981
! 1-003 - Change E_VERSION to VER . JBS 31-Mar-1981
! 1-004 - Use the ASSERT macro. JBS 01-Jun-1981
! 1-005 - Use new message codes. JBS 06-Aug-1981
! 1-006 - Add show command for REPEAT. STS 26-Aug-1981
! 1-007 - Add show command for FNF. TMV 10-Sept-1981
! 1-008 - Add show command for WPS search type and SUMMARY.
! Also a stub for PROMPT. STS 01-Oct-1981
! 1-009 - Add show command for the text of page and end. STS 06-Oct-1981
! 1-010 - Implement SHOW PROMPT. JBS 21-Oct-1981
! 1-011 - Add show word and show para. STS 22-Oct-1981
! 1-012 - Add four more prompts and don't document their lengths. JBS 23-Oct-1981
! 1-013 - remove external reference to INI_TXT. It was never used here
! anyway. STS 06-Nov-1981
! 1-014 - Add SHOW HELP command. SMB 18-Dec-1981
! 1-015 - Change SHO BUF to call 48-bit count display module. SMB 5-Feb-1982
! 1-016 - Add show autorepeat. JBS 09-Feb-1982
! 1-017 - Use VERSION.REQ to define the version number of EDT JBS 09-Mar-1982
! 1-018 - Add SHOW COMMAND. JBS 04-May-1982
! 1-019 - Change format of SHOW HELP. SMB 25-May-1982
! 1-020 - Change SHOW HELP for the 11's. SMB 2-Jun-1982
! 1-021 - Track changes to SET COMMAND in SHOW COMMAND. JBS 07-Jun-1982
! 1-022 - Make all the show messages look alike. STS 08-Jun-1982
! 1-023 - Correct counts in SHOW WORD and SHOW PARA messages. JBS 09-Jun-1982
! 1-024 - Modify for new message processing. SMB 29-Jun-1982
! 1-025 - Add CRLF to SHOW BUFFER if using TI_WRSTR. SMB 02-Jun-1982
! 1-026 - Use EDT$$FMT_CRLF instead of EDT$$OUT_FMTBUF. JBS 05-Jul-1982
! 1-027 - Remove prompt PRTC. 07-Jul-1982
! 1-028 - Add two new SHOW SEARCH possibilities. JBS 20-Jul-1982
! 1-029 - Add the SHOW FILES command. SMB 04-Aug-1982
! 1-030 - Add a check for READONLY output files to edit 1-029. SMB 09-Aug-1982
! 1-031 - New design for defined keys. JBS 13-Aug-1982
! 1-032 - Make use of the bit masks for the options word. 17-Aug-1982
! 1-033 - Fix up references to the EDT$M_ symbols. JBS 23-Aug-1982
! 1-034 - Add information to SHOW TERM. JBS 02-Sep-1982
! 1-035 - Improve SHOW TERM printout and add copyright statement to SHOW VERSION. JBS 17-Sep-1982
! 1-036 - More improvements to SHOW TERMINAL. JBS 29-Oct-1982
! 1-037 - Change placement of colons in SHOW FILES. SMB 20-Dec-1982
! 1-038 - Add conditionals for WPS support and VT220 support. JBS 10-Feb-1983
! 1-039 - Correct the sense of SHOW WORD. JBS 11-Feb-1983
! 1-040 - Print key definitions in segments. JBS 07-Mar-1983
! 3-001 - Fix various string ptrs, %C's and string constants. Make this
! a 10/20 specific module. GB 28-Feb-1983
! 3-002 - Change numbers to symbols to make the module more readable.
! CJG Ides of March, 1983
! 3-003 - Fix EDT$$FMT_STR and EDT$$FMT_STRCNT. CJG 22-Mar-1983
! 3-004 - Add SHOW CONTROL-T command. CJG 25-Sep-1983
! 3-005 - Add new message for SHOW FILES when invoked with CREATE. CJG 12-Oct-1983
! 3-006 - Add ignore string to SHOW SEARCH. CJG 2-Nov-1983
! 3-007 - Modify ASSERT macro to include error code. CJG 30-Jan-1984
!--
%SBTTL 'Declarations'
!
! TABLE OF CONTENTS:
!
REQUIRE 'EDTSRC:TRAROUNAM';
FORWARD ROUTINE
EDT$$SHW_CMD : NOVALUE; ! Process the SHOW command
!
! INCLUDE FILES:
!
LIBRARY 'EDTSRC:SUPPORTS';
LIBRARY 'EDTSRC:KEYPADDEF';
REQUIRE 'EDTSRC:EDTREQ';
REQUIRE 'EDTSRC:PARLITS';
REQUIRE 'EDTSRC:VERSION';
!
! MACROS:
!
! NONE
!
! EQUATED SYMBOLS:
!
! NONE
!
! OWN STORAGE:
!
! NONE
!
! EXTERNAL REFERENCES:
!
! In the routine
%SBTTL 'EDT$$SHW_CMD - SHOW line-mode command'
GLOBAL ROUTINE EDT$$SHW_CMD ! SHOW line-mode command
: NOVALUE =
!++
! FUNCTIONAL DESCRIPTION:
!
! Command processing routine for SHOW. The current command node
! field SET_TYPE gives an index for the type of SHOW which is
! being done. Case on this and put the stuff out.
!
! FORMAL PARAMETERS:
!
! NONE
!
! IMPLICIT INPUTS:
!
! TRN_TBLINIT
! BUF_LST
! CAS_FLG
! EDIT_DFLTMOD
! US_ENT
! CMD_NAM
! EXCT_MATCH
! FNF_MSGFLG
! US_TXT
! KPAD
! NOS
! QUIET
! SEA_BEG
! RPT
! SEA_BNDD
! SCR_LNS
! SCLL_BOT
! SCLL_TOP
! TAB_SIZ
! CUR_BUF
! TAB_LVL
! TRUN
! TI_TYP
! TI_WID
! VFY
! WD_WRAP
! EXE_CURCMD
! SUMRY
! ENB_AUTRPT
! PARTYP
! WRDTYP
! PMT_LINE
! PMT_KPD
! PMT_NOKPD
! PMT_HCCHG
! PMT_INS
! PMT_INSN
! PMT_QUERY
! CTRL_T
!
! IMPLICIT OUTPUTS:
!
! NONE
!
! ROUTINE VALUE:
!
! NONE
!
! SIDE EFFECTS:
!
! NONE
!
!--
BEGIN
EXTERNAL ROUTINE
EDT$$FMT_CRLF, ! Terminate an output line
EDT$$TI_WRSTR,
EDT$$SET_HLPFNAM,
EDT$$FMT_STRCNT,
EDT$$TST_BADK,
EDT$$FMT_CH,
EDT$$FMT_DCML,
EDT$$FMT_STR,
EDT$$OUT_FMTBUF,
EDT$$MSG_TOSTR,
EDT$$FIND_KEY, ! Find a key's definition
EDT$$DEF_DFLTK, ! Define the default keypad
EDT$$FMT_CHWID; ! Compute the width of a character
EXTERNAL LITERAL
EDT$M_NOOUTPUT;
EXTERNAL
OPTIONS : BITVECTOR [36], ! bit 3 = /NOOUTPUT
INP_NAM : BLOCK, ! Input file name
OUT_NAM : BLOCK, ! Output file name
TRN_TBLINIT, ! True if translation table has been initialized
BUF_LST,
CAS_FLG,
IGN_LEN, ! Ignore length
IGN_PTR, ! Ignore pointer
EDIT_DFLTMOD,
US_ENT : VECTOR,
EXCT_MATCH,
US_TXT : VECTOR, ! user defined text
FNF_MSGFLG,
KPAD,
NOS,
QUIET,
SEA_BEG,
RPT,
SEA_BNDD,
SCR_LNS,
SCLL_BOT,
SCLL_TOP,
TAB_SIZ,
CUR_BUF : REF TBCB_BLOCK,
TAB_LVL,
TRUN,
TI_TYP,
TI_WID,
VFY,
CTRL_T, ! Control-T flag
WD_WRAP,
HELP_NAM, ! help file name
HELP_NAMLEN, ! help file name length
HELP_SET, ! flag for help file name set
CMD_NAM : BLOCK, ! Name of command file
TI_SCROLL, ! 1 = terminal has scrolling regions
%IF SUPPORT_VT220
%THEN
EIGHT_BIT, ! 1 = this is an eight-bit terminal
%FI
TI_EDIT, ! 1 = this terminal has 'edit' features (ICM, DCH, IL, DL)
FMT_LNPOS, ! Current line position
SUMRY, ! summary flag
ENB_AUTRPT, ! 1 = manipulate autorepeat in VT100, 0 = don't
WRDTYP, ! type of word flag
PARTYP, ! type of para flag
EXE_CURCMD : REF NODE_BLOCK, ! Pointer to the current command.
PMT_LINE : VECTOR, ! Counted ASCII string of line-mode prompt
PMT_KPD : VECTOR, ! Counted ASCII string of keypad prompt
PMT_NOKPD : VECTOR, ! Counted ASCII string of nokeypad prompt
PMT_HCCHG : VECTOR, ! Counted ASCII string of hard copy change mode prompt
PMT_INS : VECTOR, ! Counted ASCII string of line-mode insert prompt
PMT_INSN : VECTOR, ! Counted ASCII string of line-mode insert nonumbers prompt
PMT_QUERY : VECTOR; ! Counted ASCII string of /QUERY prompt
MESSAGES ((KEYNOTDEF, NODEFN, INVPARFOR));
CASE .EXE_CURCMD [SET_TYPE] FROM SHO_BUFF TO MAX_SHO OF
SET
[SHO_BUFF] : ! Show buffers
BEGIN
LOCAL
BUF : REF TBCB_BLOCK;
!+
! Point to first buffer.
!-
BUF = .BUF_LST;
!+
! Loop through all buffers, displaying the number of lines
! in each.
!-
WHILE (.BUF NEQA 0) DO
BEGIN
!+
! Put an equal sign before the current buffer.
!-
IF (.BUF EQL .CUR_BUF) THEN EDT$$FMT_CH (%C'=') ELSE EDT$$FMT_CH (%C' ');
EDT$$FMT_STR (CH$PTR (BUF [TBCB_NAME],, BYTE_SIZE), .BUF [TBCB_NAME_LEN]);
EDT$$FMT_CH (ASC_K_TAB);
EDT$$FMT_STRCNT (BUF [TBCB_LINE_COUNT], CH$PTR (UPLIT (%C' ')), 0);
!+
! If the buffer still has a file attached to it, then print
! an asterisk after the count to indicate there may be more
! lines than we have indicated.
!-
IF (.BUF [TBCB_INPUT_RAB] NEQ 0) THEN EDT$$FMT_CH (%C'*');
EDT$$FMT_STR (CH$PTR (UPLIT(' lines')), 6);
EDT$$FMT_CRLF ();
BUF = .BUF [TBCB_NEXT_BUF];
END;
END;
[SHO_CASE] : ! Show case
BEGIN
!+
! The following code relies on there being 5 bytes for each case type
! and also that they are stored 5 bytes/word (ie. 10/20 only)
!-
BIND
CASE_STRING = UPLIT('None UpperLower') : VECTOR [3];
EDT$$FMT_STR (CH$PTR (CASE_STRING [.CAS_FLG]), 5);
EDT$$FMT_CRLF ();
END;
[SHO_CTRLT] : ! Show control-T
BEGIN
IF (.CTRL_T EQL 0)
THEN
EDT$$FMT_STR (CH$PTR (UPLIT ('nocontrol-T')), 11)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT ('control-T')), 9);
EDT$$FMT_CRLF ();
END;
[SHO_SRCH] : ! Show search
BEGIN
CASE .EXCT_MATCH FROM 0 TO 4 OF
SET
[0]:
EDT$$FMT_STR (CH$PTR (UPLIT ('general')), 7);
[1]:
EDT$$FMT_STR (CH$PTR (UPLIT ('exact')), 5);
[2]:
EDT$$FMT_STR (CH$PTR (UPLIT ('wps')), 3);
[3]:
EDT$$FMT_STR (CH$PTR (UPLIT ('case insensitive')), 16);
[4]:
EDT$$FMT_STR (CH$PTR (UPLIT ('diacritical insensitive')), 25);
[OUTRANGE]:
ASSERT (16, 0);
TES;
IF .SEA_BEG
THEN
EDT$$FMT_STR (CH$PTR (UPLIT(' begin ')), 7)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT(' end ')), 5);
IF (.SEA_BNDD EQL 0)
THEN
EDT$$FMT_STR (CH$PTR (UPLIT('unbounded')), 9)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT('bounded')), 7);
IF (.IGN_LEN NEQ 0)
THEN
BEGIN
EDT$$FMT_STR (CH$PTR (UPLIT (' ignore: "')), 10);
EDT$$FMT_STR (.IGN_PTR, .IGN_LEN);
EDT$$FMT_STR (CH$PTR (UPLIT ('"')), 1);
END;
EDT$$FMT_CRLF ();
END;
[SHO_TERM] : ! Show terminal
BEGIN
CASE .TI_TYP FROM 0 TO 3 OF
SET
[ 0 ] : EDT$$FMT_STR (CH$PTR (UPLIT ('Unknown')), 7);
[ 1 ] : EDT$$FMT_STR (CH$PTR (UPLIT ('VT52')), 4);
[ 2 ] : EDT$$FMT_STR (CH$PTR (UPLIT ('VT100')), 5);
[ 3 ] : EDT$$FMT_STR (CH$PTR (UPLIT ('Hardcopy')), 8);
TES;
IF .TI_SCROLL
THEN
EDT$$FMT_STR (CH$PTR (UPLIT (', scroll')), 8)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT (', noscroll')), 10);
%IF SUPPORT_VT220
%THEN
IF .EIGHT_BIT
THEN
EDT$$FMT_STR (CH$PTR (UPLIT (', eightbit')), 10)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT (', noeightbit')), 12);
%FI
IF .TI_EDIT
THEN
EDT$$FMT_STR (CH$PTR (UPLIT (', edit')), 6)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT (', noedit')), 8);
EDT$$FMT_CRLF ();
END;
[SHO_VERS] : ! Show version
BEGIN
EDT$$FMT_STR (CH$PTR (VERSION_TEXT), VERSION_TEXT_LEN);
!+
! Show the copyright statement. If we have an eightbit terminal, we use the
! international copyright symbol, otherwise we simulate it using (C). The
! copyright statement goes on the same line as the version number.
!-
%IF SUPPORT_VT220
%THEN
IF .EIGHT_BIT
THEN
EDT$$FMT_STR (CH$PTR (COPYRIGHT_TEXT_8,, BYTE_SIZE), COPYRIGHT_TEXT_8_LEN)
ELSE
%FI
EDT$$FMT_STR (CH$PTR (COPYRIGHT_TEXT_7), COPYRIGHT_TEXT_7_LEN);
EDT$$FMT_CRLF ();
END;
[SHO_NTITY] : ! Show entity
BEGIN
LOCAL
LEN,
ENT;
ENT = .US_ENT [.EXE_CURCMD [SET_VAL] - 1];
LEN = ..ENT;
EDT$$FMT_STR (CH$PTR (.ENT + 1,, BYTE_SIZE), .LEN);
EDT$$FMT_CRLF ();
END;
[SHO_KEY] : ! Show key
BEGIN
LOCAL
KEY_PTR : REF BLOCK FIELD (KEY_DEF_FIELD),
STATUS;
IF ( NOT .TRN_TBLINIT) THEN STATUS = EDT$$DEF_DFLTK () ELSE STATUS = 1;
IF .STATUS
THEN
BEGIN
!+
! Get a pointer to the key definition. If the key has been defined,
! show that; if the keypad has been defined already, the
! definition is in TRN_TBL ; otherwise use the appropriate
! default keypad tables.
!-
IF EDT$$TST_BADK (.EXE_CURCMD [KEY_VAL])
THEN
EDT$$MSG_TOSTR (EDT$_KEYNOTDEF)
ELSE
IF EDT$$FIND_KEY (.EXE_CURCMD [KEY_VAL], KEY_PTR)
THEN
BEGIN
!+
! If the key definition is long, show it in pieces.
!-
LOCAL
KEY_P,
KEY_L,
CH;
KEY_P = CH$PTR (KEY_PTR [KEY_DEF_TEXT],, BYTE_SIZE);
KEY_L = .KEY_PTR [KEY_DEF_LEN];
FMT_LNPOS = 0;
CH = CH$RCHAR_A (KEY_P);
KEY_L = .KEY_L - 1;
WHILE (.KEY_L GEQ 0) DO
BEGIN
IF ((.FMT_LNPOS + EDT$$FMT_CHWID (.CH, .FMT_LNPOS)) GEQ
.TI_WID)
THEN
EDT$$FMT_CRLF ();
EDT$$FMT_CH (.CH);
CH = CH$RCHAR_A (KEY_P);
KEY_L = .KEY_L - 1;
END;
END
ELSE
EDT$$MSG_TOSTR (EDT$_NODEFN);
END
ELSE
EDT$$MSG_TOSTR (.STATUS);
EDT$$FMT_CRLF ();
END;
[SHO_CURSR] : ! Show cursor
BEGIN
EDT$$FMT_DCML (.SCLL_TOP);
EDT$$FMT_CH (%C':');
EDT$$FMT_DCML (.SCLL_BOT);
EDT$$FMT_CRLF ();
END;
[SHO_SCRN] : ! Show screen.
BEGIN
EDT$$FMT_DCML (.TI_WID);
EDT$$OUT_FMTBUF ();
EDT$$FMT_CRLF ();
END;
[SHO_NUM] : ! Show numbers.
BEGIN
IF (.NOS EQL 1)
THEN
EDT$$FMT_STR (CH$PTR (UPLIT ('numbers')), 7)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT ('nonumbers')), 9);
EDT$$FMT_CRLF ();
END;
[SHO_VRFY] : ! Show verify
BEGIN
IF (.VFY EQL 1)
THEN
EDT$$FMT_STR (CH$PTR (UPLIT ('verify')), 6)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT ('noverify')), 8);
EDT$$FMT_CRLF ();
END;
[SHO_TRUNC] : ! Show truncate
BEGIN
IF (.TRUN EQL 1)
THEN
EDT$$FMT_STR (CH$PTR (UPLIT ('truncate')), 8)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT ('notruncate')), 10);
EDT$$FMT_CRLF ();
END;
[SHO_KEYPD] : ! Show keypad
BEGIN
IF (.KPAD EQL 1)
THEN
EDT$$FMT_STR (CH$PTR (UPLIT ('keypad')), 6)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT ('nokeypad')), 8);
EDT$$FMT_CRLF ();
END;
[SHO_WRAP] : ! Show wrap
BEGIN
IF (.WD_WRAP EQL 256)
THEN
EDT$$FMT_STR (CH$PTR (UPLIT('nowrap')), 6)
ELSE
EDT$$FMT_DCML (.WD_WRAP);
EDT$$FMT_CRLF ();
END;
[SHO_MODE] : ! Show mode
BEGIN
!+
! The following code relies on there being 10 bytes for each edit mode
! and also that they are stored 5 bytes/word (ie. 10/20 only)
!-
BIND
MODE_STRING = UPLIT('Change Line ') : BLOCKVECTOR [, 2];
EDT$$FMT_STR (CH$PTR (MODE_STRING [.EDIT_DFLTMOD, 0, 0, 0, 0]), 6);
EDT$$FMT_CRLF ();
END;
[SHO_LINES] : ! Show lines
BEGIN
EDT$$FMT_DCML (.SCR_LNS);
EDT$$FMT_CRLF ();
END;
[SHO_QUIET] : ! Show quiet
BEGIN
IF (.QUIET EQL 1)
THEN
EDT$$FMT_STR (CH$PTR (UPLIT ('quiet')), 5)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT ('noquiet')), 7);
EDT$$FMT_CRLF ();
END;
[SHO_TAB] : ! Show tab
BEGIN
IF (.TAB_SIZ EQL 0)
THEN
BEGIN
EDT$$FMT_STR (CH$PTR (UPLIT('notab')), 5);
EDT$$FMT_CRLF ();
END
ELSE
BEGIN
EDT$$FMT_STR (CH$PTR (UPLIT('tab size ')), 9);
EDT$$FMT_DCML (.TAB_SIZ);
EDT$$FMT_STR (CH$PTR (UPLIT('; tab level ')), 12);
EDT$$FMT_DCML (.TAB_LVL);
EDT$$FMT_CRLF ();
END;
END;
[SHO_REPT] : ! Show repeat
BEGIN
IF (.RPT EQL 1)
THEN
EDT$$FMT_STR (CH$PTR (UPLIT('repeat')), 6)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT('norepeat')), 8);
EDT$$FMT_CRLF ();
END;
[SHO_FNF] : ! Show file_not_found
BEGIN
IF (.FNF_MSGFLG EQL 1)
THEN
EDT$$FMT_STR (CH$PTR (UPLIT ('fnf')), 3)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT ('nofnf')), 5);
EDT$$FMT_CRLF ();
END;
[SHO_SUMM] : ! show summary
BEGIN
IF (.SUMRY EQL 1)
THEN
EDT$$FMT_STR (CH$PTR (UPLIT('summary')), 7)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT('nosummary')), 9);
EDT$$FMT_CRLF ();
END;
[SHO_PROMPT] : ! Show Prompt
BEGIN
LOCAL
LEN, ! Length of the string
TXT, ! Address of string contents
PROMPT_NUM; ! Which prompt string
PROMPT_NUM = .EXE_CURCMD [SET_VAL];
TXT = (CASE .PROMPT_NUM FROM SET_PLINE TO MAX_SET_PROMPT OF
SET
[SET_PLINE] : PMT_LINE;
[SET_PKEY] : PMT_KPD;
[SET_PNKEY] : PMT_NOKPD;
[SET_PHCCH] : PMT_HCCHG;
[SET_PINS] : PMT_INS;
[SET_PNINS] : PMT_INSN;
[SET_PQRY] : PMT_QUERY;
[OUTRANGE] :
BEGIN
ASSERT (16, 0);
0
END;
TES);
LEN = ..TXT;
EDT$$FMT_STR (CH$PTR (.TXT + 1,, BYTE_SIZE), .LEN);
EDT$$FMT_CRLF ();
END;
[SHO_TEXT] : ! show text
BEGIN
LOCAL
LEN,
TXT;
TXT = .US_TXT [.EXE_CURCMD [SET_VAL] - 1];
LEN = ..TXT;
EDT$$FMT_STR (CH$PTR (.TXT + 1,, BYTE_SIZE), .LEN);
EDT$$FMT_CRLF ();
END;
[SHO_WORD] : ! show word type
BEGIN
IF .WRDTYP
THEN
EDT$$FMT_STR (CH$PTR (UPLIT('nodelimiter ')), 12)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT('delimiter ')), 10);
EDT$$FMT_CRLF ();
END;
[SHO_PARA] : ! show word
BEGIN
IF .PARTYP
THEN
EDT$$FMT_STR (CH$PTR (UPLIT('nowps ')), 6)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT('wps ')), 4);
EDT$$FMT_CRLF ();
END;
[SHO_HELP] : ! Show Help File Name
BEGIN
LOCAL
STATUS;
!+
! If the help file name has not been parsed, call SET HELP so
! that the resultant file name will appear in the message.
!-
STATUS = 1;
IF (.HELP_SET EQL 0)
THEN
STATUS = EDT$$SET_HLPFNAM (CH$PTR (HELP_NAM), .HELP_NAMLEN);
IF (.STATUS)
THEN
BEGIN
EDT$$FMT_STR (CH$PTR (UPLIT ('Help file name : ')), 17);
EDT$$FMT_STR (CH$PTR (HELP_NAM), .HELP_NAMLEN);
EDT$$FMT_CRLF ();
END;
END;
[SHO_AUTO] : ! show autorepeat
BEGIN
IF (.ENB_AUTRPT EQL 1)
THEN
EDT$$FMT_STR (CH$PTR (UPLIT('autorepeat')), 10)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT('noautorepeat')), 12);
EDT$$FMT_CRLF ();
END;
[SHO_COMND] : ! show command
BEGIN
IF (.CMD_NAM [DSC$A_POINTER] NEQ 0) THEN
EDT$$FMT_STR (CH$PTR (.CMD_NAM [DSC$A_POINTER]), .CMD_NAM [DSC$W_LENGTH]);
EDT$$FMT_CRLF ();
END;
[SHO_FILES] :
BEGIN ! show input/output files
LOCAL
LEN,
TXT;
TXT = CH$PTR (.INP_NAM [DSC$A_POINTER]);
LEN = .INP_NAM [DSC$W_LENGTH];
EDT$$FMT_STR (CH$PTR (UPLIT ('Input file: ')), 13);
IF (.LEN NEQ 0)
THEN
EDT$$FMT_STR (.TXT, .LEN)
ELSE
EDT$$FMT_STR (CH$PTR (UPLIT ('**Creating new file**')), 21);
EDT$$FMT_CRLF ();
EDT$$FMT_STR (CH$PTR (UPLIT ('Output file: ')), 13);
IF (.OUT_NAM [DSC$W_LENGTH] EQL 0)
THEN
IF ((.OPTIONS AND EDT$M_NOOUTPUT) NEQ 0)
THEN
EDT$$FMT_STR (CH$PTR (UPLIT ('**Readonly**')), 12)
ELSE
EDT$$FMT_STR (.TXT, .LEN)
ELSE
EDT$$FMT_STR (CH$PTR (.OUT_NAM [DSC$A_POINTER]), .OUT_NAM [DSC$W_LENGTH]);
EDT$$FMT_CRLF ();
END;
[OUTRANGE] :
ASSERT (16, 0);
TES;
END; ! of routine EDT$$SHW_CMD
END
ELUDOM