(* VERSION 0006 *) VAR BUFSZ: INTEGER; (* SIZE OF BUFFER *) LASTLINE: INTEGER; (* POINTS TO END OF EDITED FILE *) CURRLINE: INTEGER; (* CURRENT LINE IN BUF BEING EDITED*) BEGINLINE: INTEGER; (* FIRST CHARACTER IN CURRLINE ? *) ENDFILE: INTEGER; (* LAST CHARACTER, OR ^Z ? *) BOF: BOOLEAN; (* BEGIN FILE *) CMD: INTEGER; (* READ COMMAND FROM KEYBOARD ?*) OLDCMD: INTEGER; (* HOLDS PREVIOUS COMMAND *) CH: CHAR; (* HOLDS CHARACTER FROM KEYBOARD ? *) CMDARR : ARRAY[0..CMDSZ] OF CHAR; (* HOLDS CHARACTR VALS OF CMMDS*) (* ELEMENTS ARE THE CONTROL FUNCTIONS FOR THE COMMANDS. THE INDEX *) (* INTO CMDARR IS THE NUMBER OF THE COMMAND *) NAME: FILENAME; (* NAME OF FILE *) F: FYLE; (* FILE POINTER FOR FILE BEING EDITED ?*) FILEOPEN: BOOLEAN; (* TRUE IF FILE IS SUCCESSFULLY OPENED *) NEWFILE: BOOLEAN; (* TRUE IF FILE IS NEW *) NOFILE: BOOLEAN; (* TRUE :USER LEAVES BEFORE OPENING FILE*) RESULT: INTEGER; (* FOR FILE COMMANDS: SCRATCH *) FCB5C: INTEGER; (* POINTS TO FILE CONTROL BLOCK AT HEX 5C *) LINE: PACKED ARRAY[0..MAXLNSIZE] OF CHAR; (* FOR EDITNG A LINE FROM BUF*) ORIGLEN, (* ORIGINAL LENGTH OF LINE IN 'LINE' *) LENLINE, (* NEW LENGTH OF LINE IN 'LINE'*) NUMBLANKS: INTEGER; (* DON'T KNOW IF USED ANY MORE ? *) X,Y: INTEGER; (* X AND Y CURSOR POSITION *) NUMLFS: INTEGER; (* SET BY FIND WHEN IT SEES LF *) NUMDELS: INTEGER; (*INCREMENTED IN DELETELINE, USED IN COPYBUF*) DELBUFSZ: INTEGER; (*SIZE OF DELETE BUFFER *) QUITFLG, (* TRUE IF DONE WITH EDIT *) NEWLINE, (* TRUE IF WRITING A NEW LINE FROM 'LINE'?*) LINEFLG, (* ? *) INSERTING, (* TRUE WHEN IN INSERT MODE *) CHANGED: BOOLEAN; (* TRUE IF LINE IN 'LINE' IS CHANGED *) STR: ARRAY[1..8] OF CHAR; (* USED IN STATUS LINE FOR MODE *) (* FOR GETTING FILE NAME FROM COMMAND BUFFER AT $80 *) CPMCMDBUF: ABSOLUTE[$80] PACKED ARRAY[0..CPMLINESZ] OF CHAR; CPMSTR: STRING[CPMLINESZ]; ANCHOR: INTEGER; (* POINTS TO CHARACTER BEFORE INSERT, DELETE,ADJUST*) CBP: INTEGER; (* COPY BUFFER POINTER FOR INSERTIONS, DELETIONS *) SRCHSTR: SSTRING; (* PUT STRING TO BE SEARCHED FOR HERE *) LAST_FIND, LAST_REPL: SSTRING; (* LAST DATA FOR SEARCH AND REPLACE *) FIRSTMARK, LASTMARK: INTEGER; BUF: ABSOLUTE[$A000] ARRAY[0..0] OF CHAR; (* EDIT BUFFER *)