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;