Trailing-Edge
-
PDP-10 Archives
-
BB-R775E-BM
-
sources/edt/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