Trailing-Edge
-
PDP-10 Archives
-
CFS_TSU04_19910205_1of1
-
update/t20src/data.bli
There are 12 other files named data.bli in the archive. Click here to see a list.
!GREEN:<ZBRAD.20808>DATA.BLI.2 20-Nov-85 13:34:38, Edit by MERRILL
!Edit 36 Add the global CR_FLAG for eating the LF of CRLF pair
%TITLE 'DATA - Common Data Definitions'
MODULE DATA ( ! Common Data Definitions
IDENT = '3-013' ! File: DATA.BLI Edit: CJG3013
) =
BEGIN
!COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1981, 1988. 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 THAT 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.
!-
CR_FLAG, ! CRLF pair flag, set on CR clear on LF
! or other chars
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