perm filename EMAIN1.2[EAL,HE]1 blob
sn#674826 filedate 1982-09-27 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 {$NOMAIN Editor: initialization routine }
C00004 00003 procedure eEditInit external
C00006 ENDMK
C⊗;
{$NOMAIN Editor: initialization routine }
%include emain.hdr;
{ Externally defined routines from elsewhere: }
(* From ALLOC *)
function newStatement: statementp; external;
(* From PAUX1 *)
procedure appendEnd(s,so: statementp); external;
(* From EAUX2C *)
procedure displayLines(var pfrom: integer); external;
(* From EAUX3A *)
procedure setUpStmnt(which: integer); external;
(* From PP *)
procedure relLine(l: linerecp); external;
procedure ppLine; external;
procedure ppOutNow; external;
procedure ppChar(ch: ascii); external;
procedure pp5(ch: c5str; length: integer); external;
procedure pp10(ch: cstring; length: integer); external;
procedure pp10L(ch: cstring; length: integer); external;
procedure pp20(ch: c20str; length: integer); external;
procedure pp20L(ch: c20str; length: integer); external;
procedure ppInt(i: integer); external;
procedure ppReal(r: real); external;
procedure ppStrng(length: integer; s: strngp); external;
(* From DISP *)
procedure reInitScreen; external;
procedure echo(on: boolean); external;
procedure em1Get; external;
procedure em1Get; begin end;
procedure eEditInit; external;
procedure eEditInit;
var i:integer;
begin
dprog := newStatement;
with dprog↑ do
begin
stype := progtype;
pcode := newStatement;
with pcode↑ do
begin
stype := blocktype;
blkid := nil;
level := 1;
numvars := 0;
variables := nil;
bparent := nil;
end;
appendEnd(pcode,pcode);
with pcode↑ do bcode := next;
errors := 0;
appendEnd(dprog,pcode);
end;
setUpStmnt(0); (* Call setUpStmnt and tell it eEditInit called it *)
reInitScreen;
echo(false); (* turn off echoing *)
ppBufp := 0;
oppBufp := 0;
ppOffset := 1;
ppSize := 3;
dispHeight := screenHeight - 5;
for i := 1 to maxPPLines do
begin (* re-initialize page printer *)
relLine(ppLines[i]);
ppLines[i] := nil;
end;
setCursor := true;
cursorLine := 2;
lineNum := 1;
topDline := 0;
botDline := 0;
displayLines(lineNum); (* show first window *)
pp10L('Ready. ',6); ppLine;
end;