!* -*-TECO-*- *!

!* This is the TECO INIT for EMACS.  It sets up the EMACS environment
   necessary for dumping a new EMACS EJ file. *!

 -1fs^Idisablew		    !* do this first for comments!
 :ejDSK:EMACS;EMACS :EJu0	    !* load in the EMACS library!
 er ec fs if versionu2	    !* Save version number.!
 fs osteco"e fs i fileu1'
 "# fs i filefs d file	    !* Save filename.!
    etdsk:emacs;		    !* On twenex, stick in "emacs;' rather than the!
    fs d fileu1'		    !* actual directory on which it resides.!

 fs osteco"n			    !* Twenex!
    :ejDSK:<EMACS>TWENEX.:EJw    !* load in the TWENEX library!
    er ec
    fs i filefs d file
    et dsk:emacs;
    fs d fileu3		    !* save filename of TWENEX library!
    '
 :i*& Macro Get,q0m(q0+4)u.m	    !* call the loader in the EMACS library!
				    !* to find .M!
 f[ :ej page			    !* save :EJ page for flushing EINIT!
 :ejDSK:EMACS;EINIT :EJw	    !* load EINIT library!

 m(m.m& Load Essential Environment)

 q1m.vEMACS Library Filename	    !* save EMACS library filename!
 q2m.vEMACS Versionw		    !* version no. too!
 fs osteco"n			    !* Twenex!
   q3m.vTWENEX Library Filenamew'  !* save TWENEX library filename!

 q2:\u2
 m(m.m& Load Patches)emacs;pat2 > !* Load patches to this EMACS version.!
 m(m.m& Load Patches)patch >	    !* Load site-specific non-version-specific patches.!
 m(m.m& Load Default Environment)

 m(m.mPurify Variables)	    !* smash variable names to point to pure!
				    !* space if there is a copy there!
 f] :ej page			    !* flush EINIT!

!* All we should do when restarted is run ..L, which is & Toplevel ^R.!
 q..lm.vMM & Startup EMACS

!* The first entry to ^R will run the value of *Initialization*.
Here we define that to read in and process the user's init file.!

 fsosteco"e @:i*|		    !* ITS!
	etDSK:EMACS		    !* set device name and FN2!
	fs hsname fs dsnamew	    !* fill in directory!
	fs xuname fs dfn1w	    !* and FN1!
	1:<er>"l
	  1:<er*>"l
	    erEMACS;*''
	fs d file[2 et@ >
   !** end of system-dependent code!
        fs msname fs dsname
	qEMACS Version:\u1	    !* sigh, still need this!
	@y 1a-127"n ]2 :i*[..9     !* if init doesnt begin with rubout then!
		    m(hfx*( 0fsmodifiedw))' !* execute it as TECO commands!
	hk  0fsmodified
        1,m(m.mLoad Library)2 !* else load it as a library,!
				    !* saving the filename!
	
    |m.v*Initialization*'
 "# @:i*|			    !* Twenex!
	etDSK:EMACS.INIT fs hsname fs dsname
	1:<er>"l erDSK:<EMACS>'
	fs d file[2 et foo..
   !** end of system-dependent code!
	fs msname fs dsname
	qEMACS Version:\u1	    !* sigh, still need this!
	@y 1a-127"n ]2 :i*[..9     !* if init doesnt begin with rubout then!
		    m(hfx*( 0fsmodifiedw))' !* execute it as TECO commands!
	hk  0fsmodified
        1,m(m.mLoad Library)2 !* else load it as a library!
				    !* saving the filename!
	
    |m.v*Initialization*'

 0u0 0u1 0u2 0u3		    !* zero the q-regs we've used!

 hk
