Google
 

Trailing-Edge - PDP-10 Archives - BB-H138E-BM - 6-1-sources/data.bli
There are 12 other files named data.bli in the archive. Click here to see a list.
 %TITLE 'DATA - Common Data Definitions'
MODULE DATA (				! Common Data Definitions
		IDENT = '3-013'			! File: DATA.BLI Edit: CJG3013
		) =
BEGIN
!
!		      COPYRIGHT (c) 1980, 1985, 1981 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 contains common data definitions used throughout
!	the editor.
!
! ENVIRONMENT:	Used in all EDT configurations.
!
! AUTHOR: Bob Kushlis, CREATION DATE:  6-AUG-1979
!
! MODIFIED BY:
!
! Dan Szymanski,  21-JUL-80,  01
!	As part of the expanded key definition facilities, the default
!	definitions for VT52 and VT100 keypads have been moved to KEYPAD.
!	The table TRN_TBL  now contains (relative) pointers to the strings
!	of nokeypad commands defining the keys.  The variable TRN_TBLINIT  was
!	added to indicate the initialization of the translation table.
!
! Dan Szymanski,  15-JAN-81,  02
!	Variable DEL_CHLEN  added to keep track of length of the deleted
!	character buffer.
!
! Dan Szymanski,  28-JAN-81,  03
!	Variable CAS_TYP  added to indicate type of changecase.
!
! 2-004	- Regularized the header and removed some symbols not being used.
!	   JBS 13-Feb-1981
! 2-005	- Added IOFI_NFND .  JBS 19-Feb-1981
! 2-006	- Fixed file name and module name.  JBS 04-Mar-1981
! 2-007	- Change EOB_LINE to EOB_LN .  JBS 30-Mar-1981
! 2-008	- Add REQUIRE for TRAROUNAM.REQ.  JBS 17-Apr-1981
! 2-009	- Correct a typo in a comment.  JBS 01-MAY-1981
! 2-010	- Make the journal buffer 256 bytes long.  JBS 18-Jun-1981
! 2-011	- Add more control C variables.  JBS 22-Jun-1981
! 2-012 - add REF_USER_ENTITIES vector  TMV 3-Aug-81
! 2-013	- Remove MAC_LST , no longer used.  JBS 07-Aug-1981
! 2-014	- Add PA_NOQUO .  JBS 26-Aug-1981
! 2-015 - Add RPT . STS 26-Aug-1981
! 2-016 - Add FNF_MSGFLG  TMV 10-Sep-1981
! 2-017 - Add DFLT_VERB for changecase mode.  STS 21-Sep-1981
! 2-018 - Add G_SUMRY to type out summary or not. STS 01-Oct-1981
! 2-019 - Add new variables for text strings. STS 06-Oct-1981
! 2-020	- Add strings for prompting.  JBS 20-Oct-1981
! 2-021 - Add variables for para and word types.  STS 21-Oct-1981
! 2-022	- Add four more prompts, amd make max length 31 chars.  JBS 23-Oct-1981
! 2-023	- Remove RNG_ALLRNG.  JBS 02-NOV-1981
! 2-024 - Remove all references to addresses to make sharable, and move
!	   all initialization out to EDT$INIT.  STS 05-Nov-1981
! 2-025	- Add a cell for /VAR and /STREAM.  JBS 28-Nov-1981
! 2-026 - Add variables for file i/o routine and environment. STS 11-Dec-1981
! 2-027	- Revise control C variables and add one more.  JBS 29-DEC-1981
! 2-028	- Add a flag and a counter for the 'working' message.  JBS 12-Jan-1982
! 2-029 - Add IO_VFCHD, (this was in IOMOD) STS 20-Jan-1982
! 2-030 - Line numbers declarations moved here from system specific routines.
!	  New line number globals added.  SMB 29-Jan-1982
! 2-031 - Change definition of maximum line number.  SMB 1-Feb-1982
! 2-032 - Add more line number globals.  SMB 3-Feb-1982
! 2-033 - Add a global for actual count of lines resequenced.  SMB 7-Feb-1982
! 2-034	- Add a global for enabling autorepeat manipulation.  JBS 09-Feb-1982
! 2-035 - Add globals for EDT$WORKIO address and environment. STS 10-Feb-1982
! 2-036 - Add global for workfile record descriptor.  STS 15-Feb-1982
! 2-037 - Add global to flag entering and leaving EXT command mode.  SMB 26-Feb-1982
! 2-038 - Add callable literals. STS 08-Mar-1982
! 2-039 - Change definition of EOB marker.  SMB 08-Mar-1982
! 2-040 - Add flag for re-entry. STS 11-Mar-1982
! 2-041	- Add OPTIONS.  This will replace CMD and JOU.  JBS 18-Mar-1982
! 2-042	- Remove the EDT$K_ symbols to EDT$FILEIO, and remove CMD and JOU.
!	   JBS 23-Mar-1982
! 2-043 - Add flags to indicate input file and/or command file open. STS 07-Apr-1982
! 2-044 - Add global to indicate quotes around key. STS 08-Apr-1982
! 2-045	- Add JOU_VALID.  JBS 09-Apr-1982
! 2-046	- Add COM_NAM.  JBS 04-May-1982
! 2-047	- Add CHAIN_INFO and CC_DONE.  JBS 24-May-1982
! 2-048 - Add MESSAGE_LINE for change mode messages. SMB 15-Jun-1982
! 2-049 - Add CHM_FRST_ENTERED for callable edt.   SMB 1-Jul-1982
! 2-050	- Add FMT_BOT, FMT_LCNT and LASTMSG, remove
!	   CHM_FRST_ENTRY.  JBS 05-Jul-1982
! 2-051 - Remove PMT_PRTC. STS 07-Jul-1982
! 2-052 - Add SAV_TIWID to save terminal width. STS 08-Jul-1982
! 2-053	- Remove EDT$$A_STR_CMP, add EDT$$B_CHAR_INFO.  JBS 19-Jul-1982
! 2-054 - Add descriptor for signalled filename.  STS 10-Jul-1982
! 2-055 - Initialize EDT$$G_PST_CNT to zero.  SMB 22-Jul-1982
! 2-056 - Add some new globals for terminal characteristics.  SMB 30-Jul-1982
! 2-057 - Add a flag to abort a write. STS 05-Aug-1982
! 2-058	- Revise key translation data base.  JBS 12-Aug-1982
! 2-058 - Add globals for xlate routine address and environment word. STS 13-Aug-1982
! 2-059	- Revise key translation data base.  JBS 12-Aug-1982
! 2-060 - Add global literals for options word masks. STS 17-Aug-1982
! 2-061	- Add EDT$$G_TI_SCROLL and EDT$$G_TI_EDIT.  JBS 01-Sep-1982
! 2-062	- Remove reference to EDT$$TI_WRLN, no longer used.  JBS 02-Sep-1982
! 2-063 - Add new screen package globals.  SMB 11-Sep-1982
! 2-064 - Change the definition of EDT$$Z_EOB_LN again.  SMB 20-Sep-1982
! 2-065 - Add a screen pointer global for EOB.  SMB 05-Oct-1982
! 2-066 - Add a flag to indicate we must! do a put to journal file. STS 06-Oct-1982
! 2-067	- Add EDT$$G_SCR_REBUILD.  JBS 09-Oct-1982
! 2-068 - Add new select buffer global.  SMB 11-Oct-1982
! 2-069	- Add EDT$$G_TI_DUMB.  JBS 16-Oct-1982
! 2-070 - Add memory allocation maximum global.  SMB 18-Oct-1982
! 2-071	- Add a counter for records inserted.  JBS 21-Oct-1982
! 2-072	- Make the counter also count records deleted.  JBS 27-Oct-1982
! 2-073	- Add EDT$$G_BOT_LINE.  JBS 02-Dec-1982
! 2-074	- Remove cells which appear to be unused.  JBS 14-Dec-1982
! 2-075	- Add EDT$$G_CS_OLDCHNO.  JBS 27-Dec-1982
! 2-076 - Add scrolling region globals.  SMB 11-Jan-1983
! 2-077	- Add EDT$$G_RECSCRUPD.  JBS 21-Jan-1983
! 2-078	- Add conditionals for WPS and VT220 support.  JBS 10-Feb-1983
! 2-079	- Add new value for EDT$$G_SCR_CHGD.  JBS 02-Mar-1983
! 2-080	- Add character names table.  JBS 04-Mar-1983
!
! 3-001 - Modify for LCG operation. CJG 08-Oct-1982
! 3-002 - Remove XLATE_?? locations because we don't use them. CJG 2-Jun-1983
! 3-003 - Change control-C counters. CJG 17-Jun-1983
! 3-004 - Change the way that filespecs are handled. CJG 22-Jun-1983
! 3-005 - Add new labels AAAAAA and ZZZZZZ so that everything can be zeroed
!	  in one go by INIT. CJG 22-Jun-1983
! 3-006 - Add EDT$M_NEWFILE flag to OPTION for CREATE command. CJG 12-Jul-1983
! 3-007 - Add CTRL_T for SET/SHOW CONTROL-T command. CJG 25-Sep-1983
! 3-008 - Add PROMPT_LENGTH for correct positioning of errors. CJG 7-Oct-1983
! 3-009 - Add IGN_LEN and IGN_PTR for SET SEARCH IGNORE. CJG 2-Nov-1983
! 3-010 - Add a flag for use with the PUSH command - PUSH_FLAG. CJG 22-Nov-1983
! 3-011 - Add CC_WAIT so that ^C can be seen during terminal I/O. CJG 5-Jan-1984
! 3-012 - Add FMT_FREE to improve speed of format routines. CJG 11-Jan-1984
! 3-013 - Add ERR_NUMBER for last TOPS20 error. GB 6-Aug-1984
!--

%SBTTL 'Declarations'
!
! TABLE OF CONTENTS:
!
!	NONE
!
! INCLUDE FILES:
!

REQUIRE 'EDTSRC:TRAROUNAM';

REQUIRE 'EDTSRC:EDTREQ';

LIBRARY 'EDTSRC:SUPPORTS';

LIBRARY 'EDTSRC:TRANSLATE';

LIBRARY 'EDTSRC:KEYPADDEF';

!
! MACROS:
!
!	NONE
!
! EQUATED SYMBOLS:
!

LITERAL
    NO_SELECT = -1;

!
! OWN STORAGE:
!
!	NONE
!
! EXTERNAL REFERENCES:
!
!	NONE
!<BLF/PAGE>
!+
! The remainder of this module defines storage used throughout the editor.
!-

!+
!************************************************************
!
! The following label must not be moved. All data beetween AAAAAA and
! ZZZZZZ will be set to zero by INIT. Any data which must retain its
! preset value should be placed after ZZZZZZ.
!
!************************************************************
!-

GLOBAL
    AAAAAA;

GLOBAL
!+
! Command buffer and pointers
!-
    CMD_BUF : BLOCK [CH$ALLOCATION (256, BYTE_SIZE)],	! Command line buffer
    CMD_PTR,				! Pointer into command buffer
    CMD_END,				! Pointer to end of command
    CMD_LEN,				! Length of command buffer
    TEMP_BUFFER : BLOCK [CH$ALLOCATION (260, BYTE_SIZE)],	! Temporary string buffer
    PROMPT_LENGTH,			! Length of prompt string
!+
! Line buffer and pointers
!-
    LN_BUF : BLOCK [CH$ALLOCATION (256, BYTE_SIZE)],	! Current line buffer
    LN_PTR,				! Pointer to char in current line
    LN_END,				! Pointer to end of line
    LN_LEN,				! Length of current line
!+
! Filespec descriptor blocks
!-
    INP_NAM : BLOCK [DSC$K_SIZE],	! Input file descriptor
    OUT_NAM : BLOCK [DSC$K_SIZE],	! Output file descriptor
    CMD_NAM : BLOCK [DSC$K_SIZE],	! Command file descriptor
    JOU_NAM : BLOCK [DSC$K_SIZE],	! Journal file descriptor
    WRT_NAM : BLOCK [DSC$K_SIZE],	! Write file descriptor
    INC_NAM : BLOCK [DSC$K_SIZE],	! Include file descriptor
    HELP_NAM : BLOCK [CH$ALLOCATION (80, BYTE_SIZE)],
    HELP_NAMLEN,			! Help file storage
    GETJFN_BLOCK : BLOCK [16],		! GTJFN block for everyone

!+
! Control-C and control-T handling
!-

    CC : VOLATILE,			! Set when control C is typed.
    CC_CNT1,				! Times tested since last journal record
    CC_CNT2,				! Second control C counter
    CC_FLAG,				! Second control C flag
    CC_DONE,				! Set if control C has been acted upon
    CC_WAIT,				! Set when ^C may occur in terminal I/O
    SECOND : VOLATILE,			! Set once a second (using an AST) for the 'working' message
    WORKCOUNT,				! Counter to support the 'working' message
    CTRL_T,				! Set if CTRL/T = Tab function

!+
! Text buffers
!-

    CUR_BUF : REF TBCB_BLOCK,		! The current text buffer control block
    PRV_BUF : REF TBCB_BLOCK,		! Previous tbcb address.
    MAC_BUF : REF TBCB_BLOCK,		! Pointer to current macro tbcb
    PST_BUF : REF TBCB_BLOCK,		! The paste text buffer control block
    BUF_LST,				! List of active text buffers.

!+
! Other flags etc.
!-

    INPUT_OPN,				! indicates main input file open
    CMD_OPN,				! indicates command file open
    EXT_MOD : INITIAL (0),		! 1 = in EXT command mode
    EDIT_MOD,				! Current editting mode
    EDIT_DFLTMOD,			! The mode to enter after startup.
    SAV_CNT,				! Flush count for audit trail.
    ABT_WRITE,				! abort any write being done
    EXITD,				! Set to indicate the editor has exited
    HELP_SET,				! Help-file JFN
    PUT_JOU,
    OPTIONS,				! Options bits
    NOS,				! Line numbers enabled flag
    CAS_FLG,				! Flag case (upper, lower none)
    EXCT_MATCH,				! Exact matches required?
    SEA_BEG,				! End searches at beginning?
    SEA_BNDD,				! Search bounded?
    IGN_LEN,				! Length of IGNORE string
    IGN_PTR,				! Pointer to IGNORE string
    QUIET,				! Quiet mode
    RPT,				! Allow repeat counts?
    FNF_MSGFLG,				! Print file not found message
    EIGHT_BIT,				! Eightbit mode
    VFY,				! Do we verify command files?
    JOU_VALID,				! 1 = journal record is valid, 0 = it isn't, don't write.
    ALT_BUF,				! Alternate buffer for copy etc.
    TI_TYP,				! Terminal type.
    TT_OPEN,				! Terminal status, 1 = open
    TI_PLEN,				! Terminal page length
    TI_RESET : INITIAL (0),		! Terminal char have been reset
    SAV_TIWID,				! original terminal width
    KPAD,				! Use the keypad?
    WD_WRAP,				! word wrap?
    US_ENT : VECTOR [4],		! Pointers to user defined entities.
    US_TXT : VECTOR [2],		! Address of user defined texts
    TAB_SIZ,				! Structured tab size.
    TAB_LVL,				! Structured tab level.
    TADJ,				! Tabs adjust level.
    INP_SRC,				! Source of command input.
    INP_CNT,				! Count since last flush.
    RCOV_MOD,				! Are we in recovery mode.
    PUSH_FLAG,				! Non-zero if PUSH was last command
    FORK_HANDLE,			! Fork handle for sub-fork
    RECSCRUPD;				! Counter for updating the screen in recovery mode

!+
! Change mode data declarations.
!+

GLOBAL
    LN_CHGD,				! Indicates current line has changed.
    COL,				! The column we should be on.
    DIRN,				! The current direction.
    DEL_LN : BLOCK 			! Deleted line buffer.
	[CH$ALLOCATION (257, BYTE_SIZE)],
    DEL_LNLEN,				! Length of deleted line.
    DEL_WD : BLOCK 			! Deleted word buffer.
	[CH$ALLOCATION (81, BYTE_SIZE)],
    DEL_WDLEN,				! Length of deleted word.
    DEL_CH : BLOCK 			! Deleted character buffer.
	[CH$ALLOCATION (2, BYTE_SIZE)],
    DEL_CHLEN,				! Length of deleted character.
    DIR_MOD,				! The directional mode:
					! -1 for backup, 1 for advance.
    EXI,
    REVID,				! reverse video on?
    VERT,				! was last entity VERT?
    PST_CNT : INITIAL (0),		! No. of characters pasted.
    SEA_PTR,				! search string address.
    SEA_LEN,				! search string length
    RPL_STR,				! replace string address
    RPL_LEN,				! replace string length
    CAS_TYP,				! Type of changecase being performed
    DFLT_VERB,				! Default verb (move, chgu, or chgl)
    SUMRY,				! type out summary or not on exit
    WRDTYP,				! delimiter a word or not flag
    PARTYP,				! wps para or regular para flag
    TRN_TBLINIT;			! True if translation table has been initialized

GLOBAL
    TRN_TBL : VECTOR [K_KPAD_HASHSIZ];	! Hash table of key definitions
!+
! Globals for the new screen updater.
!-

GLOBAL
    MEM_CNT,				! Memory allocation count
    OLD_SEL,				! Address of old select buffer
    TRUN,				! Truncate or wrap long lines?
    TI_WID,				! Width of terminal line
    TI_SCROLL,				! 1 = terminal has scrolling regions
    TI_EDIT,				! 1 = terminal has 'edit' features (DL, IL, DCH, ICM)
    TI_DUMB,	! 1 = terminal driver does not track escape sequences (needs CR to avoid wrap)
    TOP_SCREG,				! Top of current scrolling region
    BOT_SCREG,				! Bottom of current scrolling region
    SCLL_TOP,				! top limit of cursor before scrolling
    SCLL_BOT,				! bottom limit of cursor before scrolling
    SCR_LNS,				! number of screen lines to use
    SCR_CHGD,				! see below
!+
! 0 = screen OK,
! 1 = screen must be cleared and repainted,
! 2 = terminal must be initialized, then screen cleared and repainted.
!-
    SCR_REBUILD,			! The text area of the screen must be rebuilt from the work file
    TXT_ONSCR,				! command put text on screen.
    RECS_INSERTED,			! Count of records inserted and deleted since last screen update
    SHF,				! The number of columns shifted.
    SEL_LN : LN_BLOCK,			! Relative line number of select.
    SEL_BUF : REF TBCB_BLOCK,		! select buffer.
    SCR_BUF : REF TBCB_BLOCK,		! Screen text buffer control block
    MESSAGE_LINE,			! Change mode message line
    MSGFLG,				! Indicates a message has been displayed
    LASTMSG,				! Number of the last message displayed
    LN_NO,				! current line number.
    CUR_COL,				! current column
    CS_LNO,				! cursor line number
    CS_CHNO,				! character position of cursor
    CS_OLDCHNO,				! Previous character position of cursor
    CS_LN : LN_BLOCK,			! relative line number of cursor line.
    PRV_LN,				! Previous line number.
    PRV_COL,				! Previous column number.
    TOP_LN : LN_BLOCK,			! Line number of enforced top line.
    SEL_POS,				! select position.
    CUR_SCRLN : LN_BLOCK,		! Current screen record
    EOB_SCRPTR,				! EOB sceen pointer
    CSR_SCRPTR,				! Pointer to cursor screen line info
    FST_SCRPTR,				! Pointer to first screen line info buffer
    LST_SCRPTR,				! Pointer to last screen line info buffer
    CUR_SCRPTR,				! Pointer to current screen line info buffer
    TOP_SCRPTR,				! Pointer to the top screen line
    BOT_SCRPTR,				! Pointer to the bottom screen line
    BOT_LINE,				! All screen lines below this one have been erased
    FST_AVLN;				! Number available screen line blocks


GLOBAL
    ENB_AUTRPT,				! 1 = enable autorepeat manipulation.
    K_AUTRPT,				! auto repeat indicator.
    RDAHEDBF : BLOCK [CH$ALLOCATION (K_RDAHED_LEN, BYTE_SIZE)],	! Read-ahead buffer
    RDAHED;				! number of characters in the buffer

!+
! Global data used by EDTWF
!-

GLOBAL
    WK_AVAIL,
    WK_CURBUK,
    WK_GRTSTBUK,
    WK_MODFD,
    WK_NXTLNO : LN_BLOCK,		! Line number following an insert
    WK_STARTNO : LN_BLOCK,		! Line number of line preceding an insert
    WK_INSCNT : LN_BLOCK,		! The count of inserted lines
    WK_RESCNT : LN_BLOCK,		! The count of resequenced lines
    WK_LN : REF LIN_BLOCK,
    WK_BUK : REF BLOCK [WF_BUKT_SIZE] FIELD (WFB_FIELDS);

!+
! Data used by FORMAT
!-

GLOBAL
    FMT_BUF : BLOCK [CH$ALLOCATION (FMT_BUFLEN, BYTE_SIZE)],
    FMT_CUR,				! Current pointer
    FMT_FREE,				! Space left in format buffer
    FMT_LNPOS,				! Position on formatted line (on screen)
    FMT_WRRUT,				! Current write routine
    FMT_BOT,				! 1 = formatted output printed on bottom of screen
    FMT_LCNT;				! Number of lines printed at the bottom of the screen

!+
! Data used by EXEC
!-

GLOBAL
    EXE_SUBCNT,
    EXE_QRYQUIT,
    EXE_SBITS,
    EXE_SBLK : REF NODE_BLOCK,
    EXE_CURCMD : REF NODE_BLOCK;

!+
! Data used by line mode parser
!-

GLOBAL
    PA_ABO,				! flag indicating to abort parse
    DEFKEY,				! flag indicating getting a key
    PA_CURRNG : REF NODE_BLOCK,		! the current range node
    PA_THRURNG : REF NODE_BLOCK,	! The currently being built thru type range
    PA_MORE,				! More data on command line
    PA_ERRNO,				! Error number of parsing error.
    PA_SP,
    PA_BUFRNG : REF NODE_BLOCK,
    PA_ANDLSTHD : REF NODE_BLOCK,
    PA_CURTOK,				! start of the current token
    PA_CURTOKLEN,			! length of current token
    PA_CURCMD,
    PA_NUMVAL : LIN_BLOCK,		! the value of a numeric literal
    PA_STK : BLOCKVECTOR [NUM_NODES, NODE_SIZE] FIELD (NODE_FIELDS);

!+
! Data used by RANGE
!-

GLOBAL
    RNG_MORELN,				! Used by EDT$$NXT_LNRNG  to indicate more lines.
    RNG_FRSTLN,				! Indicates first line in a range.
    RNG_NOOFLN,				! Count of number of lines in a range.
    RNG_EOL : LN_BLOCK,			! The line number at which this range ends
    RNG_CURRNG : REF NODE_BLOCK,		! The current range node
    RNG_ORIGPOS : POS_BLOCK,			! To save the position at start of command.
    RNG_SAVPOS : POS_BLOCK;			! To save the beginning of range

!+
! Data used by TINPUT
!-

GLOBAL
    TIN_ECHOFLG,
    TIN_ECHOPOS,
    TIN_OBUFPOS,				! Next byte to store in journal buffer
    TIN_OBUF : VECTOR [CH$ALLOCATION (256, BYTE_SIZE)],	! Journal file buffer
    TIN_IBUFPTR,
    TIN_IRECLEN,
    TIN_IRECEND,
    TIN_INREC : BLOCK [CH$ALLOCATION (255, BYTE_SIZE)];

!+
! Data used by UTIL
!-

GLOBAL
    SEA_STR : BLOCK [CH$ALLOCATION (64, BYTE_SIZE)],	! Last search string.
    SEA_STRLEN,				! Length of above.
    SUB_STR : BLOCK [CH$ALLOCATION (64, BYTE_SIZE)],	! Last SUBSTITUTE string.
    SUB_STRLEN;				! Length of above.

!+
! Data used by IOMOD
!-

GLOBAL
    IO_VFCHD : BLOCK [CH$ALLOCATION (255, BYTE_SIZE)],
    WF_DESC : BLOCK [8],		! descriptor for workfile
    IO_FNAM,				! filename in signal arguments
    ERR_NUMBER,				! Last system error number
    IOFI_NFND;				! 1 = the open error was 'file not found'


!+
! define literals for the bit masks of the options word.
! These are made global so that we can make them accessible
! outside of EDT.
!-

GLOBAL LITERAL
    EDT$M_RECOVER = 1,
    EDT$M_COMMAND = 2,
    EDT$M_NOJOURNAL = 4,
    EDT$M_NOOUTPUT = 8,
    EDT$M_NOCOMMAND = 16,
    EDT$M_NOCREATE = 32,
    EDT$M_NEWFILE = 64;

!+
! Prompt strings:
!-

GLOBAL
    PMT_LINE : VECTOR [32],		! Line-mode prompt
    PMT_KPD : VECTOR [32],		! Keypad change-mode prompt
    PMT_NOKPD : VECTOR [32],		! Nokeypad change-mode prompt
    PMT_HCCHG : VECTOR [32],		! Hardcopy change mode prompt
    PMT_INS : VECTOR [32],		! Line-mode insert prompt
    PMT_INSN : VECTOR [32],		! Line-mode insert nonumbers prompt
    PMT_QUERY : VECTOR [32];		! /QUERY prompt

!+
!************************************************************
!
! All preceding data is cleared by INIT.
!
!************************************************************
!-

GLOBAL
    ZZZZZZ;

!+
! BPWORD contains the number of bytes in a 36-bit word.
!-

GLOBAL
    BPWORD : INITIAL (BYTES_PER_WORD);

!+
! Define the powers of ten as longword constants, these are used both
! by name, and as a vector having the powers from 0 to 14.  Also define
! other line number related globals.
!-

!+
! In the LCG version, line numbers are stored in one word and one
! half-word. The following table leaves the spare half-word empty.
!-

GLOBAL BIND
    MAX_LINES = UPLIT(10676257905, 1) : VECTOR [2],		! 45035996273
    LNO_VFCMAX = UPLIT(6553500000, 0) : VECTOR [2],		! 6553500000
    LNO_ZERO = UPLIT(0, 0) : VECTOR [2],
    LNO_BIG = UPLIT(34359667872, 1310171) : VECTOR [2],	! 4503599627300000
    LNO_EMPTY = UPLIT (-1, -1, -1) : VECTOR [3],	! An initialization

    LNO0 = UPLIT(1, 0) : VECTOR [2],
    LNO1 = UPLIT(10, 0) : VECTOR [2],
    LNO2 = UPLIT(100, 0) : VECTOR [2],
    LNO3 = UPLIT(1000, 0) : VECTOR [2],
    LNO4 = UPLIT(10000, 0) : VECTOR [2],
    LNO5 = UPLIT(100000, 0) : VECTOR [2],
    LNO6 = UPLIT(1000000, 0) : VECTOR [2],
    LNO7 = UPLIT(10000000, 0) : VECTOR [2],
    LNO8 = UPLIT(100000000, 0) : VECTOR [2],
    LNO9 = UPLIT(1000000000, 0) : VECTOR [2],
    LNO10 = UPLIT(10000000000, 0) : VECTOR [2],
    LNO11 = UPLIT(31280523264, 2) : VECTOR [2],
    LNO12 = UPLIT(3567587328, 29) : VECTOR [2],
    LNO13 = UPLIT(1316134912, 291) : VECTOR [2],
    LNO14 = UPLIT(13161349120, 2910) : VECTOR [2],
    LNO15 = UPLIT(28534276096, 29103) : VECTOR [2];

GLOBAL
    LN_PREV : INITIAL (0),		! Previous VFC line number
    LN_INCR : VECTOR [2] INITIAL (0, 0);	! Current input increment

!+
! GLOBAL BINDS
!

GLOBAL BIND
    CHAR_INFO = UPLIT (CHAR_INFO_TAB);

GLOBAL BIND
    CHAR_NAMES = UPLIT (CHAR_NAMES_TAB);	! Names of some characters

MACRO
    LENGTH (LIST) =
	%LENGTH %;

GLOBAL LITERAL
    CHAR_NAMES_LEN = LENGTH (CHAR_NAMES_TAB);

UNDECLARE %QUOTE
    LENGTH;
!+
! This literal is pointed to when we are at an end of buffer.
!-

GLOBAL BIND
    EOB_LN = UPLIT(0, REP 2 OF (-1), REP 2 OF (0));


END

ELUDOM